public override void Read(EndianBinaryReader reader, ISection section = null)
        {
            var paramReader = new ParameterReader(reader);

            while (paramReader.Read())
            {
                switch (paramReader.HeadToken)
                {
                case "exposure":
                    Exposure = paramReader.ReadSingle();
                    break;

                case "gamma":
                    Gamma = paramReader.ReadSingle();
                    break;

                case "saturate_power":
                    SaturatePower = paramReader.ReadUInt32();
                    break;

                case "saturate_coef":
                    SaturateCoefficient = paramReader.ReadSingle();
                    break;

                case "flare":
                    FlarePower = paramReader.ReadSingle();
                    FlareShaft = paramReader.ReadSingle();
                    FlareGhost = paramReader.ReadSingle();
                    break;

                case "sigma":
                    GlareRadius = paramReader.ReadVector3();
                    break;

                case "intensity":
                    GlareIntensity = paramReader.ReadVector3();
                    break;

                case "auto_exposure":
                    AutoExposure = paramReader.ReadBoolean();
                    break;

                case "tone_map_type":
                    ToneMapType = ( ToneMapType )paramReader.ReadInt32();
                    break;

                case "fade_color":
                    FadeColor     = paramReader.ReadVector3();
                    FadeBlendFunc = ( FadeBlendFunc )paramReader.ReadInt32();
                    break;

                case "tone_transform":
                    ToneTransStart = paramReader.ReadVector3();
                    ToneTransEnd   = paramReader.ReadVector3();
                    break;
                }
            }
        }