1198 lines
35 KiB
C#
1198 lines
35 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
namespace UnityStandardAssets.CinematicEffects
|
|
{
|
|
// Token: 0x02000039 RID: 57
|
|
[ExecuteInEditMode]
|
|
[RequireComponent(typeof(Camera))]
|
|
[AddComponentMenu("Image Effects/Cinematic/Tonemapping and Color Grading")]
|
|
[ImageEffectAllowedInSceneView]
|
|
public class TonemappingColorGrading : MonoBehaviour
|
|
{
|
|
// Token: 0x1700003B RID: 59
|
|
// (get) Token: 0x06000092 RID: 146 RVA: 0x00005D61 File Offset: 0x00004161
|
|
// (set) Token: 0x06000093 RID: 147 RVA: 0x00005D69 File Offset: 0x00004169
|
|
public TonemappingColorGrading.EyeAdaptationSettings eyeAdaptation
|
|
{
|
|
get
|
|
{
|
|
return this.m_EyeAdaptation;
|
|
}
|
|
set
|
|
{
|
|
this.m_EyeAdaptation = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700003C RID: 60
|
|
// (get) Token: 0x06000094 RID: 148 RVA: 0x00005D72 File Offset: 0x00004172
|
|
// (set) Token: 0x06000095 RID: 149 RVA: 0x00005D7A File Offset: 0x0000417A
|
|
public TonemappingColorGrading.TonemappingSettings tonemapping
|
|
{
|
|
get
|
|
{
|
|
return this.m_Tonemapping;
|
|
}
|
|
set
|
|
{
|
|
this.m_Tonemapping = value;
|
|
this.SetTonemapperDirty();
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700003D RID: 61
|
|
// (get) Token: 0x06000096 RID: 150 RVA: 0x00005D89 File Offset: 0x00004189
|
|
// (set) Token: 0x06000097 RID: 151 RVA: 0x00005D91 File Offset: 0x00004191
|
|
public TonemappingColorGrading.LUTSettings lut
|
|
{
|
|
get
|
|
{
|
|
return this.m_Lut;
|
|
}
|
|
set
|
|
{
|
|
this.m_Lut = value;
|
|
this.SetDirty();
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700003E RID: 62
|
|
// (get) Token: 0x06000098 RID: 152 RVA: 0x00005DA0 File Offset: 0x000041A0
|
|
// (set) Token: 0x06000099 RID: 153 RVA: 0x00005DA8 File Offset: 0x000041A8
|
|
public TonemappingColorGrading.ColorGradingSettings colorGrading
|
|
{
|
|
get
|
|
{
|
|
return this.m_ColorGrading;
|
|
}
|
|
set
|
|
{
|
|
this.m_ColorGrading = value;
|
|
this.SetDirty();
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700003F RID: 63
|
|
// (get) Token: 0x0600009A RID: 154 RVA: 0x00005DB8 File Offset: 0x000041B8
|
|
private Texture2D identityLut
|
|
{
|
|
get
|
|
{
|
|
if (this.m_IdentityLut == null || this.m_IdentityLut.height != this.lutSize)
|
|
{
|
|
global::UnityEngine.Object.DestroyImmediate(this.m_IdentityLut);
|
|
this.m_IdentityLut = TonemappingColorGrading.GenerateIdentityLut(this.lutSize);
|
|
}
|
|
return this.m_IdentityLut;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000040 RID: 64
|
|
// (get) Token: 0x0600009B RID: 155 RVA: 0x00005E10 File Offset: 0x00004210
|
|
private RenderTexture internalLutRt
|
|
{
|
|
get
|
|
{
|
|
if (this.m_InternalLut == null || !this.m_InternalLut.IsCreated() || this.m_InternalLut.height != this.lutSize)
|
|
{
|
|
global::UnityEngine.Object.DestroyImmediate(this.m_InternalLut);
|
|
this.m_InternalLut = new RenderTexture(this.lutSize * this.lutSize, this.lutSize, 0, RenderTextureFormat.ARGB32)
|
|
{
|
|
name = "Internal LUT",
|
|
filterMode = FilterMode.Bilinear,
|
|
anisoLevel = 0,
|
|
hideFlags = HideFlags.DontSave
|
|
};
|
|
}
|
|
return this.m_InternalLut;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000041 RID: 65
|
|
// (get) Token: 0x0600009C RID: 156 RVA: 0x00005EA8 File Offset: 0x000042A8
|
|
private Texture2D curveTexture
|
|
{
|
|
get
|
|
{
|
|
if (this.m_CurveTexture == null)
|
|
{
|
|
this.m_CurveTexture = new Texture2D(256, 1, TextureFormat.ARGB32, false, true)
|
|
{
|
|
name = "Curve texture",
|
|
wrapMode = TextureWrapMode.Clamp,
|
|
filterMode = FilterMode.Bilinear,
|
|
anisoLevel = 0,
|
|
hideFlags = HideFlags.DontSave
|
|
};
|
|
}
|
|
return this.m_CurveTexture;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000042 RID: 66
|
|
// (get) Token: 0x0600009D RID: 157 RVA: 0x00005F0C File Offset: 0x0000430C
|
|
private Texture2D tonemapperCurve
|
|
{
|
|
get
|
|
{
|
|
if (this.m_TonemapperCurve == null)
|
|
{
|
|
TextureFormat textureFormat = TextureFormat.RGB24;
|
|
if (SystemInfo.SupportsTextureFormat(TextureFormat.RFloat))
|
|
{
|
|
textureFormat = TextureFormat.RFloat;
|
|
}
|
|
else if (SystemInfo.SupportsTextureFormat(TextureFormat.RHalf))
|
|
{
|
|
textureFormat = TextureFormat.RHalf;
|
|
}
|
|
this.m_TonemapperCurve = new Texture2D(256, 1, textureFormat, false, true)
|
|
{
|
|
name = "Tonemapper curve texture",
|
|
wrapMode = TextureWrapMode.Clamp,
|
|
filterMode = FilterMode.Bilinear,
|
|
anisoLevel = 0,
|
|
hideFlags = HideFlags.DontSave
|
|
};
|
|
}
|
|
return this.m_TonemapperCurve;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000043 RID: 67
|
|
// (get) Token: 0x0600009E RID: 158 RVA: 0x00005F93 File Offset: 0x00004393
|
|
public Shader shader
|
|
{
|
|
get
|
|
{
|
|
if (this.m_Shader == null)
|
|
{
|
|
this.m_Shader = Shader.Find("Hidden/TonemappingColorGrading");
|
|
}
|
|
return this.m_Shader;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000044 RID: 68
|
|
// (get) Token: 0x0600009F RID: 159 RVA: 0x00005FBC File Offset: 0x000043BC
|
|
public Material material
|
|
{
|
|
get
|
|
{
|
|
if (this.m_Material == null)
|
|
{
|
|
this.m_Material = ImageEffectHelper.CheckShaderAndCreateMaterial(this.shader);
|
|
}
|
|
return this.m_Material;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000045 RID: 69
|
|
// (get) Token: 0x060000A0 RID: 160 RVA: 0x00005FE6 File Offset: 0x000043E6
|
|
public bool isGammaColorSpace
|
|
{
|
|
get
|
|
{
|
|
return QualitySettings.activeColorSpace == ColorSpace.Gamma;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000046 RID: 70
|
|
// (get) Token: 0x060000A1 RID: 161 RVA: 0x00005FF0 File Offset: 0x000043F0
|
|
public int lutSize
|
|
{
|
|
get
|
|
{
|
|
return (int)this.colorGrading.precision;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000047 RID: 71
|
|
// (get) Token: 0x060000A2 RID: 162 RVA: 0x0000600B File Offset: 0x0000440B
|
|
// (set) Token: 0x060000A3 RID: 163 RVA: 0x00006013 File Offset: 0x00004413
|
|
public bool validRenderTextureFormat { get; private set; }
|
|
|
|
// Token: 0x17000048 RID: 72
|
|
// (get) Token: 0x060000A4 RID: 164 RVA: 0x0000601C File Offset: 0x0000441C
|
|
// (set) Token: 0x060000A5 RID: 165 RVA: 0x00006024 File Offset: 0x00004424
|
|
public bool validUserLutSize { get; private set; }
|
|
|
|
// Token: 0x060000A6 RID: 166 RVA: 0x0000602D File Offset: 0x0000442D
|
|
public void SetDirty()
|
|
{
|
|
this.m_Dirty = true;
|
|
}
|
|
|
|
// Token: 0x060000A7 RID: 167 RVA: 0x00006036 File Offset: 0x00004436
|
|
public void SetTonemapperDirty()
|
|
{
|
|
this.m_TonemapperDirty = true;
|
|
}
|
|
|
|
// Token: 0x060000A8 RID: 168 RVA: 0x0000603F File Offset: 0x0000443F
|
|
private void OnEnable()
|
|
{
|
|
if (!ImageEffectHelper.IsSupported(this.shader, false, true, this))
|
|
{
|
|
base.enabled = false;
|
|
return;
|
|
}
|
|
this.SetDirty();
|
|
this.SetTonemapperDirty();
|
|
}
|
|
|
|
// Token: 0x060000A9 RID: 169 RVA: 0x00006068 File Offset: 0x00004468
|
|
private void OnDisable()
|
|
{
|
|
if (this.m_Material != null)
|
|
{
|
|
global::UnityEngine.Object.DestroyImmediate(this.m_Material);
|
|
}
|
|
if (this.m_IdentityLut != null)
|
|
{
|
|
global::UnityEngine.Object.DestroyImmediate(this.m_IdentityLut);
|
|
}
|
|
if (this.m_InternalLut != null)
|
|
{
|
|
global::UnityEngine.Object.DestroyImmediate(this.internalLutRt);
|
|
}
|
|
if (this.m_SmallAdaptiveRt != null)
|
|
{
|
|
global::UnityEngine.Object.DestroyImmediate(this.m_SmallAdaptiveRt);
|
|
}
|
|
if (this.m_CurveTexture != null)
|
|
{
|
|
global::UnityEngine.Object.DestroyImmediate(this.m_CurveTexture);
|
|
}
|
|
if (this.m_TonemapperCurve != null)
|
|
{
|
|
global::UnityEngine.Object.DestroyImmediate(this.m_TonemapperCurve);
|
|
}
|
|
this.m_Material = null;
|
|
this.m_IdentityLut = null;
|
|
this.m_InternalLut = null;
|
|
this.m_SmallAdaptiveRt = null;
|
|
this.m_CurveTexture = null;
|
|
this.m_TonemapperCurve = null;
|
|
}
|
|
|
|
// Token: 0x060000AA RID: 170 RVA: 0x00006147 File Offset: 0x00004547
|
|
private void OnValidate()
|
|
{
|
|
this.SetDirty();
|
|
this.SetTonemapperDirty();
|
|
}
|
|
|
|
// Token: 0x060000AB RID: 171 RVA: 0x00006158 File Offset: 0x00004558
|
|
private static Texture2D GenerateIdentityLut(int dim)
|
|
{
|
|
Color[] array = new Color[dim * dim * dim];
|
|
float num = 1f / ((float)dim - 1f);
|
|
for (int i = 0; i < dim; i++)
|
|
{
|
|
for (int j = 0; j < dim; j++)
|
|
{
|
|
for (int k = 0; k < dim; k++)
|
|
{
|
|
array[i + j * dim + k * dim * dim] = new Color((float)i * num, Mathf.Abs((float)k * num), (float)j * num, 1f);
|
|
}
|
|
}
|
|
}
|
|
Texture2D texture2D = new Texture2D(dim * dim, dim, TextureFormat.RGB24, false, true)
|
|
{
|
|
name = "Identity LUT",
|
|
filterMode = FilterMode.Bilinear,
|
|
anisoLevel = 0,
|
|
hideFlags = HideFlags.DontSave
|
|
};
|
|
texture2D.SetPixels(array);
|
|
texture2D.Apply();
|
|
return texture2D;
|
|
}
|
|
|
|
// Token: 0x060000AC RID: 172 RVA: 0x00006234 File Offset: 0x00004634
|
|
private float StandardIlluminantY(float x)
|
|
{
|
|
return 2.87f * x - 3f * x * x - 0.27509508f;
|
|
}
|
|
|
|
// Token: 0x060000AD RID: 173 RVA: 0x00006250 File Offset: 0x00004650
|
|
private Vector3 CIExyToLMS(float x, float y)
|
|
{
|
|
float num = 1f;
|
|
float num2 = num * x / y;
|
|
float num3 = num * (1f - x - y) / y;
|
|
float num4 = 0.7328f * num2 + 0.4296f * num - 0.1624f * num3;
|
|
float num5 = -0.7036f * num2 + 1.6975f * num + 0.0061f * num3;
|
|
float num6 = 0.003f * num2 + 0.0136f * num + 0.9834f * num3;
|
|
return new Vector3(num4, num5, num6);
|
|
}
|
|
|
|
// Token: 0x060000AE RID: 174 RVA: 0x000062CC File Offset: 0x000046CC
|
|
private Vector3 GetWhiteBalance()
|
|
{
|
|
float temperatureShift = this.colorGrading.basics.temperatureShift;
|
|
float tint = this.colorGrading.basics.tint;
|
|
float num = 0.31271f - temperatureShift * ((temperatureShift >= 0f) ? 0.05f : 0.1f);
|
|
float num2 = this.StandardIlluminantY(num) + tint * 0.05f;
|
|
Vector3 vector = new Vector3(0.949237f, 1.03542f, 1.08728f);
|
|
Vector3 vector2 = this.CIExyToLMS(num, num2);
|
|
return new Vector3(vector.x / vector2.x, vector.y / vector2.y, vector.z / vector2.z);
|
|
}
|
|
|
|
// Token: 0x060000AF RID: 175 RVA: 0x0000638C File Offset: 0x0000478C
|
|
private static Color NormalizeColor(Color c)
|
|
{
|
|
float num = (c.r + c.g + c.b) / 3f;
|
|
if (Mathf.Approximately(num, 0f))
|
|
{
|
|
return new Color(1f, 1f, 1f, 1f);
|
|
}
|
|
return new Color
|
|
{
|
|
r = c.r / num,
|
|
g = c.g / num,
|
|
b = c.b / num,
|
|
a = 1f
|
|
};
|
|
}
|
|
|
|
// Token: 0x060000B0 RID: 176 RVA: 0x00006428 File Offset: 0x00004828
|
|
private void GenerateLiftGammaGain(out Color lift, out Color gamma, out Color gain)
|
|
{
|
|
Color color = TonemappingColorGrading.NormalizeColor(this.colorGrading.colorWheels.shadows);
|
|
Color color2 = TonemappingColorGrading.NormalizeColor(this.colorGrading.colorWheels.midtones);
|
|
Color color3 = TonemappingColorGrading.NormalizeColor(this.colorGrading.colorWheels.highlights);
|
|
float num = (color.r + color.g + color.b) / 3f;
|
|
float num2 = (color2.r + color2.g + color2.b) / 3f;
|
|
float num3 = (color3.r + color3.g + color3.b) / 3f;
|
|
float num4 = (color.r - num) * 0.1f;
|
|
float num5 = (color.g - num) * 0.1f;
|
|
float num6 = (color.b - num) * 0.1f;
|
|
float num7 = Mathf.Pow(2f, (color2.r - num2) * 0.5f);
|
|
float num8 = Mathf.Pow(2f, (color2.g - num2) * 0.5f);
|
|
float num9 = Mathf.Pow(2f, (color2.b - num2) * 0.5f);
|
|
float num10 = Mathf.Pow(2f, (color3.r - num3) * 0.5f);
|
|
float num11 = Mathf.Pow(2f, (color3.g - num3) * 0.5f);
|
|
float num12 = Mathf.Pow(2f, (color3.b - num3) * 0.5f);
|
|
float num13 = 1f / Mathf.Max(0.01f, num7);
|
|
float num14 = 1f / Mathf.Max(0.01f, num8);
|
|
float num15 = 1f / Mathf.Max(0.01f, num9);
|
|
lift = new Color(num4, num5, num6);
|
|
gamma = new Color(num13, num14, num15);
|
|
gain = new Color(num10, num11, num12);
|
|
}
|
|
|
|
// Token: 0x060000B1 RID: 177 RVA: 0x00006620 File Offset: 0x00004A20
|
|
private void GenCurveTexture()
|
|
{
|
|
AnimationCurve master = this.colorGrading.curves.master;
|
|
AnimationCurve red = this.colorGrading.curves.red;
|
|
AnimationCurve green = this.colorGrading.curves.green;
|
|
AnimationCurve blue = this.colorGrading.curves.blue;
|
|
Color[] array = new Color[256];
|
|
for (float num = 0f; num <= 1f; num += 0.003921569f)
|
|
{
|
|
float num2 = Mathf.Clamp(master.Evaluate(num), 0f, 1f);
|
|
float num3 = Mathf.Clamp(red.Evaluate(num), 0f, 1f);
|
|
float num4 = Mathf.Clamp(green.Evaluate(num), 0f, 1f);
|
|
float num5 = Mathf.Clamp(blue.Evaluate(num), 0f, 1f);
|
|
array[(int)Mathf.Floor(num * 255f)] = new Color(num3, num4, num5, num2);
|
|
}
|
|
this.curveTexture.SetPixels(array);
|
|
this.curveTexture.Apply();
|
|
}
|
|
|
|
// Token: 0x060000B2 RID: 178 RVA: 0x00006754 File Offset: 0x00004B54
|
|
private bool CheckUserLut()
|
|
{
|
|
this.validUserLutSize = this.IsLutSizeValid(this.lut.texture);
|
|
return this.validUserLutSize;
|
|
}
|
|
|
|
// Token: 0x060000B3 RID: 179 RVA: 0x00006781 File Offset: 0x00004B81
|
|
private bool IsLutSizeValid(Texture texture)
|
|
{
|
|
return texture.height == (int)Mathf.Sqrt((float)texture.width);
|
|
}
|
|
|
|
// Token: 0x060000B4 RID: 180 RVA: 0x00006798 File Offset: 0x00004B98
|
|
private bool CheckSmallAdaptiveRt()
|
|
{
|
|
if (this.m_SmallAdaptiveRt != null)
|
|
{
|
|
return false;
|
|
}
|
|
this.m_AdaptiveRtFormat = RenderTextureFormat.ARGBHalf;
|
|
if (SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RGHalf))
|
|
{
|
|
this.m_AdaptiveRtFormat = RenderTextureFormat.RGHalf;
|
|
}
|
|
this.m_SmallAdaptiveRt = new RenderTexture(1, 1, 0, this.m_AdaptiveRtFormat);
|
|
this.m_SmallAdaptiveRt.hideFlags = HideFlags.DontSave;
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x060000B5 RID: 181 RVA: 0x000067F8 File Offset: 0x00004BF8
|
|
[ImageEffectTransformsToLDR]
|
|
private void OnRenderImage(RenderTexture source, RenderTexture destination)
|
|
{
|
|
this.material.shaderKeywords = null;
|
|
Texture texture = null;
|
|
float num = 1f;
|
|
RenderTexture renderTexture = null;
|
|
RenderTexture[] array = null;
|
|
if (this.eyeAdaptation.enabled)
|
|
{
|
|
bool flag = this.CheckSmallAdaptiveRt();
|
|
int num2 = ((source.width >= source.height) ? source.height : source.width);
|
|
int num3 = num2;
|
|
num3 |= num3 >> 1;
|
|
num3 |= num3 >> 2;
|
|
num3 |= num3 >> 4;
|
|
num3 |= num3 >> 8;
|
|
num3 |= num3 >> 16;
|
|
num3 -= num3 >> 1;
|
|
renderTexture = RenderTexture.GetTemporary(num3, num3, 0, this.m_AdaptiveRtFormat);
|
|
Graphics.Blit(source, renderTexture);
|
|
int num4 = (int)Mathf.Log((float)renderTexture.width, 2f);
|
|
int num5 = 2;
|
|
array = new RenderTexture[num4];
|
|
for (int i = 0; i < num4; i++)
|
|
{
|
|
array[i] = RenderTexture.GetTemporary(renderTexture.width / num5, renderTexture.width / num5, 0, this.m_AdaptiveRtFormat);
|
|
num5 <<= 1;
|
|
}
|
|
RenderTexture renderTexture2 = array[num4 - 1];
|
|
Graphics.Blit(renderTexture, array[0], this.material, 1);
|
|
for (int j = 0; j < num4 - 1; j++)
|
|
{
|
|
Graphics.Blit(array[j], array[j + 1]);
|
|
renderTexture2 = array[j + 1];
|
|
}
|
|
this.m_SmallAdaptiveRt.MarkRestoreExpected();
|
|
this.material.SetFloat("_AdaptationSpeed", Mathf.Max(this.eyeAdaptation.speed, 0.001f));
|
|
Graphics.Blit(renderTexture2, this.m_SmallAdaptiveRt, this.material, (!flag) ? 2 : 3);
|
|
this.material.SetFloat("_MiddleGrey", this.eyeAdaptation.middleGrey);
|
|
this.material.SetFloat("_AdaptationMin", Mathf.Pow(2f, this.eyeAdaptation.min));
|
|
this.material.SetFloat("_AdaptationMax", Mathf.Pow(2f, this.eyeAdaptation.max));
|
|
this.material.SetTexture("_LumTex", this.m_SmallAdaptiveRt);
|
|
this.material.EnableKeyword("ENABLE_EYE_ADAPTATION");
|
|
}
|
|
int num6 = 4;
|
|
if (this.tonemapping.enabled)
|
|
{
|
|
if (this.tonemapping.tonemapper == TonemappingColorGrading.Tonemapper.Curve)
|
|
{
|
|
if (this.m_TonemapperDirty)
|
|
{
|
|
float num7 = 1f;
|
|
if (this.tonemapping.curve.length > 0)
|
|
{
|
|
num7 = this.tonemapping.curve[this.tonemapping.curve.length - 1].time;
|
|
for (float num8 = 0f; num8 <= 1f; num8 += 0.003921569f)
|
|
{
|
|
float num9 = this.tonemapping.curve.Evaluate(num8 * num7);
|
|
this.tonemapperCurve.SetPixel(Mathf.FloorToInt(num8 * 255f), 0, new Color(num9, num9, num9));
|
|
}
|
|
this.tonemapperCurve.Apply();
|
|
}
|
|
this.m_TonemapperCurveRange = 1f / num7;
|
|
this.m_TonemapperDirty = false;
|
|
}
|
|
this.material.SetFloat("_ToneCurveRange", this.m_TonemapperCurveRange);
|
|
this.material.SetTexture("_ToneCurve", this.tonemapperCurve);
|
|
}
|
|
else if (this.tonemapping.tonemapper == TonemappingColorGrading.Tonemapper.Neutral)
|
|
{
|
|
float num10 = this.tonemapping.neutralBlackIn * 20f + 1f;
|
|
float num11 = this.tonemapping.neutralBlackOut * 10f + 1f;
|
|
float num12 = this.tonemapping.neutralWhiteIn / 20f;
|
|
float num13 = 1f - this.tonemapping.neutralWhiteOut / 20f;
|
|
float num14 = num10 / num11;
|
|
float num15 = num12 / num13;
|
|
float num16 = Mathf.Max(0f, Mathf.LerpUnclamped(0.57f, 0.37f, num14));
|
|
float num17 = Mathf.LerpUnclamped(0.01f, 0.24f, num15);
|
|
float num18 = Mathf.Max(0f, Mathf.LerpUnclamped(0.02f, 0.2f, num14));
|
|
this.material.SetVector("_NeutralTonemapperParams1", new Vector4(0.2f, num16, num17, num18));
|
|
this.material.SetVector("_NeutralTonemapperParams2", new Vector4(0.02f, 0.3f, this.tonemapping.neutralWhiteLevel, this.tonemapping.neutralWhiteClip / 10f));
|
|
}
|
|
this.material.SetFloat("_Exposure", this.tonemapping.exposure);
|
|
num6 = (int)(num6 + (this.tonemapping.tonemapper + 1));
|
|
}
|
|
if (this.lut.enabled)
|
|
{
|
|
Texture texture2 = this.lut.texture;
|
|
if (this.lut.texture == null || !this.CheckUserLut())
|
|
{
|
|
texture2 = this.identityLut;
|
|
}
|
|
texture = texture2;
|
|
num = this.lut.contribution;
|
|
this.material.EnableKeyword("ENABLE_COLOR_GRADING");
|
|
}
|
|
if (this.colorGrading.enabled)
|
|
{
|
|
if (this.m_Dirty || !this.m_InternalLut.IsCreated())
|
|
{
|
|
if (texture == null)
|
|
{
|
|
this.material.SetVector("_UserLutParams", new Vector4(1f / (float)this.identityLut.width, 1f / (float)this.identityLut.height, (float)this.identityLut.height - 1f, 1f));
|
|
this.material.SetTexture("_UserLutTex", this.identityLut);
|
|
}
|
|
else
|
|
{
|
|
this.material.SetVector("_UserLutParams", new Vector4(1f / (float)texture.width, 1f / (float)texture.height, (float)texture.height - 1f, this.lut.contribution));
|
|
this.material.SetTexture("_UserLutTex", texture);
|
|
}
|
|
Color color;
|
|
Color color2;
|
|
Color color3;
|
|
this.GenerateLiftGammaGain(out color, out color2, out color3);
|
|
this.GenCurveTexture();
|
|
this.material.SetVector("_WhiteBalance", this.GetWhiteBalance());
|
|
this.material.SetVector("_Lift", color);
|
|
this.material.SetVector("_Gamma", color2);
|
|
this.material.SetVector("_Gain", color3);
|
|
this.material.SetVector("_ContrastGainGamma", new Vector3(this.colorGrading.basics.contrast, this.colorGrading.basics.gain, 1f / this.colorGrading.basics.gamma));
|
|
this.material.SetFloat("_Vibrance", this.colorGrading.basics.vibrance);
|
|
this.material.SetVector("_HSV", new Vector4(this.colorGrading.basics.hue, this.colorGrading.basics.saturation, this.colorGrading.basics.value));
|
|
this.material.SetVector("_ChannelMixerRed", this.colorGrading.channelMixer.channels[0]);
|
|
this.material.SetVector("_ChannelMixerGreen", this.colorGrading.channelMixer.channels[1]);
|
|
this.material.SetVector("_ChannelMixerBlue", this.colorGrading.channelMixer.channels[2]);
|
|
this.material.SetTexture("_CurveTex", this.curveTexture);
|
|
this.internalLutRt.MarkRestoreExpected();
|
|
Graphics.Blit(this.identityLut, this.internalLutRt, this.material, 0);
|
|
this.m_Dirty = false;
|
|
}
|
|
texture = this.internalLutRt;
|
|
num = 1f;
|
|
this.material.EnableKeyword("ENABLE_COLOR_GRADING");
|
|
if (this.colorGrading.useDithering)
|
|
{
|
|
this.material.EnableKeyword("ENABLE_DITHERING");
|
|
}
|
|
}
|
|
if (texture != null)
|
|
{
|
|
this.material.SetTexture("_LutTex", texture);
|
|
this.material.SetVector("_LutParams", new Vector4(1f / (float)texture.width, 1f / (float)texture.height, (float)texture.height - 1f, num));
|
|
}
|
|
if (this.LutOverrideTexture != null)
|
|
{
|
|
if (this.IsLutSizeValid(this.LutOverrideTexture))
|
|
{
|
|
this.material.SetTexture("_OverrideLutTex", this.LutOverrideTexture);
|
|
this.material.SetVector("_OverrideLutParams", new Vector4(1f / (float)this.LutOverrideTexture.width, 1f / (float)this.LutOverrideTexture.height, (float)this.LutOverrideTexture.height - 1f, this.LutOverrideAmount));
|
|
}
|
|
else
|
|
{
|
|
Debug.LogWarningFormat("Override texture {0} has invalid size to be used as LUT.", new object[] { this.LutOverrideTexture.name });
|
|
}
|
|
}
|
|
this.material.SetFloat("_MonochromeAmount", this.MonochromeAmount);
|
|
Graphics.Blit(source, destination, this.material, num6);
|
|
if (this.eyeAdaptation.enabled)
|
|
{
|
|
for (int k = 0; k < array.Length; k++)
|
|
{
|
|
RenderTexture.ReleaseTemporary(array[k]);
|
|
}
|
|
RenderTexture.ReleaseTemporary(renderTexture);
|
|
}
|
|
}
|
|
|
|
// Token: 0x060000B6 RID: 182 RVA: 0x00007234 File Offset: 0x00005634
|
|
public Texture2D BakeLUT()
|
|
{
|
|
Texture2D texture2D = new Texture2D(this.internalLutRt.width, this.internalLutRt.height, TextureFormat.RGB24, false, true);
|
|
RenderTexture.active = this.internalLutRt;
|
|
texture2D.ReadPixels(new Rect(0f, 0f, (float)texture2D.width, (float)texture2D.height), 0, 0);
|
|
RenderTexture.active = null;
|
|
return texture2D;
|
|
}
|
|
|
|
// Token: 0x040000FE RID: 254
|
|
[SerializeField]
|
|
[TonemappingColorGrading.SettingsGroup]
|
|
private TonemappingColorGrading.EyeAdaptationSettings m_EyeAdaptation = TonemappingColorGrading.EyeAdaptationSettings.defaultSettings;
|
|
|
|
// Token: 0x040000FF RID: 255
|
|
[SerializeField]
|
|
[TonemappingColorGrading.SettingsGroup]
|
|
private TonemappingColorGrading.TonemappingSettings m_Tonemapping = TonemappingColorGrading.TonemappingSettings.defaultSettings;
|
|
|
|
// Token: 0x04000100 RID: 256
|
|
[SerializeField]
|
|
[TonemappingColorGrading.SettingsGroup]
|
|
private TonemappingColorGrading.LUTSettings m_Lut = TonemappingColorGrading.LUTSettings.defaultSettings;
|
|
|
|
// Token: 0x04000101 RID: 257
|
|
[SerializeField]
|
|
[TonemappingColorGrading.SettingsGroup]
|
|
private TonemappingColorGrading.ColorGradingSettings m_ColorGrading = TonemappingColorGrading.ColorGradingSettings.defaultSettings;
|
|
|
|
// Token: 0x04000102 RID: 258
|
|
[NonSerialized]
|
|
public float MonochromeAmount;
|
|
|
|
// Token: 0x04000103 RID: 259
|
|
[NonSerialized]
|
|
public Texture LutOverrideTexture;
|
|
|
|
// Token: 0x04000104 RID: 260
|
|
[NonSerialized]
|
|
public float LutOverrideAmount;
|
|
|
|
// Token: 0x04000105 RID: 261
|
|
private Texture2D m_IdentityLut;
|
|
|
|
// Token: 0x04000106 RID: 262
|
|
private RenderTexture m_InternalLut;
|
|
|
|
// Token: 0x04000107 RID: 263
|
|
private Texture2D m_CurveTexture;
|
|
|
|
// Token: 0x04000108 RID: 264
|
|
private Texture2D m_TonemapperCurve;
|
|
|
|
// Token: 0x04000109 RID: 265
|
|
private float m_TonemapperCurveRange;
|
|
|
|
// Token: 0x0400010A RID: 266
|
|
[SerializeField]
|
|
private Shader m_Shader;
|
|
|
|
// Token: 0x0400010B RID: 267
|
|
private Material m_Material;
|
|
|
|
// Token: 0x0400010E RID: 270
|
|
private bool m_Dirty = true;
|
|
|
|
// Token: 0x0400010F RID: 271
|
|
private bool m_TonemapperDirty = true;
|
|
|
|
// Token: 0x04000110 RID: 272
|
|
private RenderTexture m_SmallAdaptiveRt;
|
|
|
|
// Token: 0x04000111 RID: 273
|
|
private RenderTextureFormat m_AdaptiveRtFormat;
|
|
|
|
// Token: 0x0200003A RID: 58
|
|
[AttributeUsage(AttributeTargets.Field)]
|
|
public class SettingsGroup : Attribute
|
|
{
|
|
}
|
|
|
|
// Token: 0x0200003B RID: 59
|
|
public class IndentedGroup : PropertyAttribute
|
|
{
|
|
}
|
|
|
|
// Token: 0x0200003C RID: 60
|
|
public class ChannelMixer : PropertyAttribute
|
|
{
|
|
}
|
|
|
|
// Token: 0x0200003D RID: 61
|
|
public class ColorWheelGroup : PropertyAttribute
|
|
{
|
|
// Token: 0x060000BA RID: 186 RVA: 0x000072AF File Offset: 0x000056AF
|
|
public ColorWheelGroup()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060000BB RID: 187 RVA: 0x000072CA File Offset: 0x000056CA
|
|
public ColorWheelGroup(int minSizePerWheel, int maxSizePerWheel)
|
|
{
|
|
this.minSizePerWheel = minSizePerWheel;
|
|
this.maxSizePerWheel = maxSizePerWheel;
|
|
}
|
|
|
|
// Token: 0x04000112 RID: 274
|
|
public int minSizePerWheel = 60;
|
|
|
|
// Token: 0x04000113 RID: 275
|
|
public int maxSizePerWheel = 150;
|
|
}
|
|
|
|
// Token: 0x0200003E RID: 62
|
|
public class Curve : PropertyAttribute
|
|
{
|
|
// Token: 0x060000BC RID: 188 RVA: 0x000072F3 File Offset: 0x000056F3
|
|
public Curve()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060000BD RID: 189 RVA: 0x00007306 File Offset: 0x00005706
|
|
public Curve(float r, float g, float b, float a)
|
|
{
|
|
this.color = new Color(r, g, b, a);
|
|
}
|
|
|
|
// Token: 0x04000114 RID: 276
|
|
public Color color = Color.white;
|
|
}
|
|
|
|
// Token: 0x0200003F RID: 63
|
|
[Serializable]
|
|
public struct EyeAdaptationSettings
|
|
{
|
|
// Token: 0x17000049 RID: 73
|
|
// (get) Token: 0x060000BE RID: 190 RVA: 0x0000732C File Offset: 0x0000572C
|
|
public static TonemappingColorGrading.EyeAdaptationSettings defaultSettings
|
|
{
|
|
get
|
|
{
|
|
return new TonemappingColorGrading.EyeAdaptationSettings
|
|
{
|
|
enabled = false,
|
|
showDebug = false,
|
|
middleGrey = 0.5f,
|
|
min = -3f,
|
|
max = 3f,
|
|
speed = 1.5f
|
|
};
|
|
}
|
|
}
|
|
|
|
// Token: 0x04000115 RID: 277
|
|
public bool enabled;
|
|
|
|
// Token: 0x04000116 RID: 278
|
|
[Min(0f)]
|
|
[Tooltip("Midpoint Adjustment.")]
|
|
public float middleGrey;
|
|
|
|
// Token: 0x04000117 RID: 279
|
|
[Tooltip("The lowest possible exposure value; adjust this value to modify the brightest areas of your level.")]
|
|
public float min;
|
|
|
|
// Token: 0x04000118 RID: 280
|
|
[Tooltip("The highest possible exposure value; adjust this value to modify the darkest areas of your level.")]
|
|
public float max;
|
|
|
|
// Token: 0x04000119 RID: 281
|
|
[Min(0f)]
|
|
[Tooltip("Speed of linear adaptation. Higher is faster.")]
|
|
public float speed;
|
|
|
|
// Token: 0x0400011A RID: 282
|
|
[Tooltip("Displays a luminosity helper in the GameView.")]
|
|
public bool showDebug;
|
|
}
|
|
|
|
// Token: 0x02000040 RID: 64
|
|
public enum Tonemapper
|
|
{
|
|
// Token: 0x0400011C RID: 284
|
|
ACES,
|
|
// Token: 0x0400011D RID: 285
|
|
Curve,
|
|
// Token: 0x0400011E RID: 286
|
|
Hable,
|
|
// Token: 0x0400011F RID: 287
|
|
HejlDawson,
|
|
// Token: 0x04000120 RID: 288
|
|
Photographic,
|
|
// Token: 0x04000121 RID: 289
|
|
Reinhard,
|
|
// Token: 0x04000122 RID: 290
|
|
Neutral
|
|
}
|
|
|
|
// Token: 0x02000041 RID: 65
|
|
[Serializable]
|
|
public struct TonemappingSettings
|
|
{
|
|
// Token: 0x1700004A RID: 74
|
|
// (get) Token: 0x060000BF RID: 191 RVA: 0x00007384 File Offset: 0x00005784
|
|
public static TonemappingColorGrading.TonemappingSettings defaultSettings
|
|
{
|
|
get
|
|
{
|
|
return new TonemappingColorGrading.TonemappingSettings
|
|
{
|
|
enabled = false,
|
|
tonemapper = TonemappingColorGrading.Tonemapper.Neutral,
|
|
exposure = 1f,
|
|
curve = TonemappingColorGrading.CurvesSettings.defaultCurve,
|
|
neutralBlackIn = 0.02f,
|
|
neutralWhiteIn = 10f,
|
|
neutralBlackOut = 0f,
|
|
neutralWhiteOut = 10f,
|
|
neutralWhiteLevel = 5.3f,
|
|
neutralWhiteClip = 10f
|
|
};
|
|
}
|
|
}
|
|
|
|
// Token: 0x04000123 RID: 291
|
|
public bool enabled;
|
|
|
|
// Token: 0x04000124 RID: 292
|
|
[Tooltip("Tonemapping technique to use. ACES is the recommended one.")]
|
|
public TonemappingColorGrading.Tonemapper tonemapper;
|
|
|
|
// Token: 0x04000125 RID: 293
|
|
[Min(0f)]
|
|
[Tooltip("Adjusts the overall exposure of the scene.")]
|
|
public float exposure;
|
|
|
|
// Token: 0x04000126 RID: 294
|
|
[Tooltip("Custom tonemapping curve.")]
|
|
public AnimationCurve curve;
|
|
|
|
// Token: 0x04000127 RID: 295
|
|
[Range(-0.1f, 0.1f)]
|
|
public float neutralBlackIn;
|
|
|
|
// Token: 0x04000128 RID: 296
|
|
[Range(1f, 20f)]
|
|
public float neutralWhiteIn;
|
|
|
|
// Token: 0x04000129 RID: 297
|
|
[Range(-0.09f, 0.1f)]
|
|
public float neutralBlackOut;
|
|
|
|
// Token: 0x0400012A RID: 298
|
|
[Range(1f, 19f)]
|
|
public float neutralWhiteOut;
|
|
|
|
// Token: 0x0400012B RID: 299
|
|
[Range(0.1f, 20f)]
|
|
public float neutralWhiteLevel;
|
|
|
|
// Token: 0x0400012C RID: 300
|
|
[Range(1f, 10f)]
|
|
public float neutralWhiteClip;
|
|
}
|
|
|
|
// Token: 0x02000042 RID: 66
|
|
[Serializable]
|
|
public struct LUTSettings
|
|
{
|
|
// Token: 0x1700004B RID: 75
|
|
// (get) Token: 0x060000C0 RID: 192 RVA: 0x0000740C File Offset: 0x0000580C
|
|
public static TonemappingColorGrading.LUTSettings defaultSettings
|
|
{
|
|
get
|
|
{
|
|
return new TonemappingColorGrading.LUTSettings
|
|
{
|
|
enabled = false,
|
|
texture = null,
|
|
contribution = 1f
|
|
};
|
|
}
|
|
}
|
|
|
|
// Token: 0x0400012D RID: 301
|
|
public bool enabled;
|
|
|
|
// Token: 0x0400012E RID: 302
|
|
[Tooltip("Custom lookup texture (strip format, e.g. 256x16).")]
|
|
public Texture texture;
|
|
|
|
// Token: 0x0400012F RID: 303
|
|
[Range(0f, 1f)]
|
|
[Tooltip("Blending factor.")]
|
|
public float contribution;
|
|
}
|
|
|
|
// Token: 0x02000043 RID: 67
|
|
[Serializable]
|
|
public struct ColorWheelsSettings
|
|
{
|
|
// Token: 0x1700004C RID: 76
|
|
// (get) Token: 0x060000C1 RID: 193 RVA: 0x00007440 File Offset: 0x00005840
|
|
public static TonemappingColorGrading.ColorWheelsSettings defaultSettings
|
|
{
|
|
get
|
|
{
|
|
return new TonemappingColorGrading.ColorWheelsSettings
|
|
{
|
|
shadows = Color.white,
|
|
midtones = Color.white,
|
|
highlights = Color.white
|
|
};
|
|
}
|
|
}
|
|
|
|
// Token: 0x04000130 RID: 304
|
|
[ColorUsage(false)]
|
|
public Color shadows;
|
|
|
|
// Token: 0x04000131 RID: 305
|
|
[ColorUsage(false)]
|
|
public Color midtones;
|
|
|
|
// Token: 0x04000132 RID: 306
|
|
[ColorUsage(false)]
|
|
public Color highlights;
|
|
}
|
|
|
|
// Token: 0x02000044 RID: 68
|
|
[Serializable]
|
|
public struct BasicsSettings
|
|
{
|
|
// Token: 0x1700004D RID: 77
|
|
// (get) Token: 0x060000C2 RID: 194 RVA: 0x0000747C File Offset: 0x0000587C
|
|
public static TonemappingColorGrading.BasicsSettings defaultSettings
|
|
{
|
|
get
|
|
{
|
|
return new TonemappingColorGrading.BasicsSettings
|
|
{
|
|
temperatureShift = 0f,
|
|
tint = 0f,
|
|
contrast = 1f,
|
|
hue = 0f,
|
|
saturation = 1f,
|
|
value = 1f,
|
|
vibrance = 0f,
|
|
gain = 1f,
|
|
gamma = 1f
|
|
};
|
|
}
|
|
}
|
|
|
|
// Token: 0x04000133 RID: 307
|
|
[Range(-2f, 2f)]
|
|
[Tooltip("Sets the white balance to a custom color temperature.")]
|
|
public float temperatureShift;
|
|
|
|
// Token: 0x04000134 RID: 308
|
|
[Range(-2f, 2f)]
|
|
[Tooltip("Sets the white balance to compensate for a green or magenta tint.")]
|
|
public float tint;
|
|
|
|
// Token: 0x04000135 RID: 309
|
|
[Space]
|
|
[Range(-0.5f, 0.5f)]
|
|
[Tooltip("Shift the hue of all colors.")]
|
|
public float hue;
|
|
|
|
// Token: 0x04000136 RID: 310
|
|
[Range(0f, 2f)]
|
|
[Tooltip("Pushes the intensity of all colors.")]
|
|
public float saturation;
|
|
|
|
// Token: 0x04000137 RID: 311
|
|
[Range(-1f, 1f)]
|
|
[Tooltip("Adjusts the saturation so that clipping is minimized as colors approach full saturation.")]
|
|
public float vibrance;
|
|
|
|
// Token: 0x04000138 RID: 312
|
|
[Range(0f, 10f)]
|
|
[Tooltip("Brightens or darkens all colors.")]
|
|
public float value;
|
|
|
|
// Token: 0x04000139 RID: 313
|
|
[Space]
|
|
[Range(0f, 2f)]
|
|
[Tooltip("Expands or shrinks the overall range of tonal values.")]
|
|
public float contrast;
|
|
|
|
// Token: 0x0400013A RID: 314
|
|
[Range(0.01f, 5f)]
|
|
[Tooltip("Contrast gain curve. Controls the steepness of the curve.")]
|
|
public float gain;
|
|
|
|
// Token: 0x0400013B RID: 315
|
|
[Range(0.01f, 5f)]
|
|
[Tooltip("Applies a pow function to the source.")]
|
|
public float gamma;
|
|
}
|
|
|
|
// Token: 0x02000045 RID: 69
|
|
[Serializable]
|
|
public struct ChannelMixerSettings
|
|
{
|
|
// Token: 0x1700004E RID: 78
|
|
// (get) Token: 0x060000C3 RID: 195 RVA: 0x00007500 File Offset: 0x00005900
|
|
public static TonemappingColorGrading.ChannelMixerSettings defaultSettings
|
|
{
|
|
get
|
|
{
|
|
return new TonemappingColorGrading.ChannelMixerSettings
|
|
{
|
|
currentChannel = 0,
|
|
channels = new Vector3[]
|
|
{
|
|
new Vector3(1f, 0f, 0f),
|
|
new Vector3(0f, 1f, 0f),
|
|
new Vector3(0f, 0f, 1f)
|
|
}
|
|
};
|
|
}
|
|
}
|
|
|
|
// Token: 0x0400013C RID: 316
|
|
public int currentChannel;
|
|
|
|
// Token: 0x0400013D RID: 317
|
|
public Vector3[] channels;
|
|
}
|
|
|
|
// Token: 0x02000046 RID: 70
|
|
[Serializable]
|
|
public struct CurvesSettings
|
|
{
|
|
// Token: 0x1700004F RID: 79
|
|
// (get) Token: 0x060000C4 RID: 196 RVA: 0x0000758C File Offset: 0x0000598C
|
|
public static TonemappingColorGrading.CurvesSettings defaultSettings
|
|
{
|
|
get
|
|
{
|
|
return new TonemappingColorGrading.CurvesSettings
|
|
{
|
|
master = TonemappingColorGrading.CurvesSettings.defaultCurve,
|
|
red = TonemappingColorGrading.CurvesSettings.defaultCurve,
|
|
green = TonemappingColorGrading.CurvesSettings.defaultCurve,
|
|
blue = TonemappingColorGrading.CurvesSettings.defaultCurve
|
|
};
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000050 RID: 80
|
|
// (get) Token: 0x060000C5 RID: 197 RVA: 0x000075D4 File Offset: 0x000059D4
|
|
public static AnimationCurve defaultCurve
|
|
{
|
|
get
|
|
{
|
|
return new AnimationCurve(new Keyframe[]
|
|
{
|
|
new Keyframe(0f, 0f, 1f, 1f),
|
|
new Keyframe(1f, 1f, 1f, 1f)
|
|
});
|
|
}
|
|
}
|
|
|
|
// Token: 0x0400013E RID: 318
|
|
[TonemappingColorGrading.Curve]
|
|
public AnimationCurve master;
|
|
|
|
// Token: 0x0400013F RID: 319
|
|
[TonemappingColorGrading.Curve(1f, 0f, 0f, 1f)]
|
|
public AnimationCurve red;
|
|
|
|
// Token: 0x04000140 RID: 320
|
|
[TonemappingColorGrading.Curve(0f, 1f, 0f, 1f)]
|
|
public AnimationCurve green;
|
|
|
|
// Token: 0x04000141 RID: 321
|
|
[TonemappingColorGrading.Curve(0f, 1f, 1f, 1f)]
|
|
public AnimationCurve blue;
|
|
}
|
|
|
|
// Token: 0x02000047 RID: 71
|
|
public enum ColorGradingPrecision
|
|
{
|
|
// Token: 0x04000143 RID: 323
|
|
Normal = 16,
|
|
// Token: 0x04000144 RID: 324
|
|
High = 32
|
|
}
|
|
|
|
// Token: 0x02000048 RID: 72
|
|
[Serializable]
|
|
public struct ColorGradingSettings
|
|
{
|
|
// Token: 0x17000051 RID: 81
|
|
// (get) Token: 0x060000C6 RID: 198 RVA: 0x00007638 File Offset: 0x00005A38
|
|
public static TonemappingColorGrading.ColorGradingSettings defaultSettings
|
|
{
|
|
get
|
|
{
|
|
return new TonemappingColorGrading.ColorGradingSettings
|
|
{
|
|
enabled = false,
|
|
useDithering = false,
|
|
showDebug = false,
|
|
precision = TonemappingColorGrading.ColorGradingPrecision.Normal,
|
|
colorWheels = TonemappingColorGrading.ColorWheelsSettings.defaultSettings,
|
|
basics = TonemappingColorGrading.BasicsSettings.defaultSettings,
|
|
channelMixer = TonemappingColorGrading.ChannelMixerSettings.defaultSettings,
|
|
curves = TonemappingColorGrading.CurvesSettings.defaultSettings
|
|
};
|
|
}
|
|
}
|
|
|
|
// Token: 0x060000C7 RID: 199 RVA: 0x0000769F File Offset: 0x00005A9F
|
|
internal void Reset()
|
|
{
|
|
this.curves = TonemappingColorGrading.CurvesSettings.defaultSettings;
|
|
}
|
|
|
|
// Token: 0x04000145 RID: 325
|
|
public bool enabled;
|
|
|
|
// Token: 0x04000146 RID: 326
|
|
[Tooltip("Internal LUT precision. \"Normal\" is 256x16, \"High\" is 1024x32. Prefer \"Normal\" on mobile devices.")]
|
|
public TonemappingColorGrading.ColorGradingPrecision precision;
|
|
|
|
// Token: 0x04000147 RID: 327
|
|
[Space]
|
|
[TonemappingColorGrading.ColorWheelGroup]
|
|
public TonemappingColorGrading.ColorWheelsSettings colorWheels;
|
|
|
|
// Token: 0x04000148 RID: 328
|
|
[Space]
|
|
[TonemappingColorGrading.IndentedGroup]
|
|
public TonemappingColorGrading.BasicsSettings basics;
|
|
|
|
// Token: 0x04000149 RID: 329
|
|
[Space]
|
|
[TonemappingColorGrading.ChannelMixer]
|
|
public TonemappingColorGrading.ChannelMixerSettings channelMixer;
|
|
|
|
// Token: 0x0400014A RID: 330
|
|
[Space]
|
|
[TonemappingColorGrading.IndentedGroup]
|
|
public TonemappingColorGrading.CurvesSettings curves;
|
|
|
|
// Token: 0x0400014B RID: 331
|
|
[Space]
|
|
[Tooltip("Use dithering to try and minimize color banding in dark areas.")]
|
|
public bool useDithering;
|
|
|
|
// Token: 0x0400014C RID: 332
|
|
[Tooltip("Displays the generated LUT in the top left corner of the GameView.")]
|
|
public bool showDebug;
|
|
}
|
|
|
|
// Token: 0x02000049 RID: 73
|
|
private enum Pass
|
|
{
|
|
// Token: 0x0400014E RID: 334
|
|
LutGen,
|
|
// Token: 0x0400014F RID: 335
|
|
AdaptationLog,
|
|
// Token: 0x04000150 RID: 336
|
|
AdaptationExpBlend,
|
|
// Token: 0x04000151 RID: 337
|
|
AdaptationExp,
|
|
// Token: 0x04000152 RID: 338
|
|
TonemappingOff,
|
|
// Token: 0x04000153 RID: 339
|
|
TonemappingACES,
|
|
// Token: 0x04000154 RID: 340
|
|
TonemappingCurve,
|
|
// Token: 0x04000155 RID: 341
|
|
TonemappingHable,
|
|
// Token: 0x04000156 RID: 342
|
|
TonemappingHejlDawson,
|
|
// Token: 0x04000157 RID: 343
|
|
TonemappingPhotographic,
|
|
// Token: 0x04000158 RID: 344
|
|
TonemappingReinhard,
|
|
// Token: 0x04000159 RID: 345
|
|
TonemappingNeutral,
|
|
// Token: 0x0400015A RID: 346
|
|
AdaptationDebug
|
|
}
|
|
}
|
|
}
|