using System;
using Cpp2IlInjected;

namespace UnityEngine.PostProcessing
{
	// Token: 0x02000561 RID: 1377
	[Token(Token = "0x2000561")]
	[Serializable]
	public class ScreenSpaceReflectionModel : PostProcessingModel
	{
		// Token: 0x17000360 RID: 864
		// (get) Token: 0x06002DD3 RID: 11731 RVA: 0x000020D3 File Offset: 0x000002D3
		// (set) Token: 0x06002DD4 RID: 11732 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000360")]
		public ScreenSpaceReflectionModel.Settings settings
		{
			[Token(Token = "0x6002DD3")]
			[Address(RVA = "0x43D3C0", Offset = "0x43C1C0", VA = "0x18043D3C0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
			[Token(Token = "0x6002DD4")]
			[Address(RVA = "0x43D3F0", Offset = "0x43C1F0", VA = "0x18043D3F0")]
			set
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002DD5 RID: 11733 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002DD5")]
		[Address(RVA = "0x43D330", Offset = "0x43C130", VA = "0x18043D330", Slot = "4")]
		public override void Reset()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002DD6 RID: 11734 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002DD6")]
		[Address(RVA = "0x43D370", Offset = "0x43C170", VA = "0x18043D370")]
		public ScreenSpaceReflectionModel()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x040036A1 RID: 13985
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x40036A1")]
		[SerializeField]
		private ScreenSpaceReflectionModel.Settings m_Settings;

		// Token: 0x02000562 RID: 1378
		[Token(Token = "0x2000562")]
		public enum SSRResolution
		{
			// Token: 0x040036A3 RID: 13987
			[Token(Token = "0x40036A3")]
			High,
			// Token: 0x040036A4 RID: 13988
			[Token(Token = "0x40036A4")]
			Low = 2
		}

		// Token: 0x02000563 RID: 1379
		[Token(Token = "0x2000563")]
		public enum SSRReflectionBlendType
		{
			// Token: 0x040036A6 RID: 13990
			[Token(Token = "0x40036A6")]
			PhysicallyBased,
			// Token: 0x040036A7 RID: 13991
			[Token(Token = "0x40036A7")]
			Additive
		}

		// Token: 0x02000564 RID: 1380
		[Token(Token = "0x2000564")]
		[Serializable]
		public struct IntensitySettings
		{
			// Token: 0x040036A8 RID: 13992
			[FieldOffset(Offset = "0x0")]
			[Token(Token = "0x40036A8")]
			[Attribute(Name = "RangeAttribute", RVA = "0xDCE90", Offset = "0xDC290")]
			[Tooltip("Nonphysical multiplier for the SSR reflections. 1.0 is physically based.")]
			public float reflectionMultiplier;

			// Token: 0x040036A9 RID: 13993
			[FieldOffset(Offset = "0x4")]
			[Token(Token = "0x40036A9")]
			[Tooltip("How far away from the maxDistance to begin fading SSR.")]
			[Range(0f, 1000f)]
			public float fadeDistance;

			// Token: 0x040036AA RID: 13994
			[FieldOffset(Offset = "0x8")]
			[Token(Token = "0x40036AA")]
			[Tooltip("Amplify Fresnel fade out. Increase if floor reflections look good close to the surface and bad farther 'under' the floor.")]
			[Range(0f, 1f)]
			public float fresnelFade;

			// Token: 0x040036AB RID: 13995
			[FieldOffset(Offset = "0xC")]
			[Token(Token = "0x40036AB")]
			[Range(0.1f, 10f)]
			[Tooltip("Higher values correspond to a faster Fresnel fade as the reflection changes from the grazing angle.")]
			public float fresnelFadePower;
		}

		// Token: 0x02000565 RID: 1381
		[Token(Token = "0x2000565")]
		[Serializable]
		public struct ReflectionSettings
		{
			// Token: 0x040036AC RID: 13996
			[FieldOffset(Offset = "0x0")]
			[Token(Token = "0x40036AC")]
			[Tooltip("How the reflections are blended into the render.")]
			public ScreenSpaceReflectionModel.SSRReflectionBlendType blendType;

			// Token: 0x040036AD RID: 13997
			[FieldOffset(Offset = "0x4")]
			[Token(Token = "0x40036AD")]
			[Tooltip("Half resolution SSRR is much faster, but less accurate.")]
			public ScreenSpaceReflectionModel.SSRResolution reflectionQuality;

			// Token: 0x040036AE RID: 13998
			[FieldOffset(Offset = "0x8")]
			[Token(Token = "0x40036AE")]
			[Range(0.1f, 300f)]
			[Tooltip("Maximum reflection distance in world units.")]
			public float maxDistance;

			// Token: 0x040036AF RID: 13999
			[FieldOffset(Offset = "0xC")]
			[Token(Token = "0x40036AF")]
			[Range(16f, 1024f)]
			[Tooltip("Max raytracing length.")]
			public int iterationCount;

			// Token: 0x040036B0 RID: 14000
			[FieldOffset(Offset = "0x10")]
			[Token(Token = "0x40036B0")]
			[Range(1f, 16f)]
			[Tooltip("Log base 2 of ray tracing coarse step size. Higher traces farther, lower gives better quality silhouettes.")]
			public int stepSize;

			// Token: 0x040036B1 RID: 14001
			[FieldOffset(Offset = "0x14")]
			[Token(Token = "0x40036B1")]
			[Range(0.01f, 10f)]
			[Tooltip("Typical thickness of columns, walls, furniture, and other objects that reflection rays might pass behind.")]
			public float widthModifier;

			// Token: 0x040036B2 RID: 14002
			[FieldOffset(Offset = "0x18")]
			[Token(Token = "0x40036B2")]
			[Tooltip("Blurriness of reflections.")]
			[Range(0.1f, 8f)]
			public float reflectionBlur;

			// Token: 0x040036B3 RID: 14003
			[FieldOffset(Offset = "0x1C")]
			[Token(Token = "0x40036B3")]
			[Tooltip("Disable for a performance gain in scenes where most glossy objects are horizontal, like floors, water, and tables. Leave on for scenes with glossy vertical objects.")]
			public bool reflectBackfaces;
		}

		// Token: 0x02000566 RID: 1382
		[Token(Token = "0x2000566")]
		[Serializable]
		public struct ScreenEdgeMask
		{
			// Token: 0x040036B4 RID: 14004
			[FieldOffset(Offset = "0x0")]
			[Token(Token = "0x40036B4")]
			[Tooltip("Higher = fade out SSRR near the edge of the screen so that reflections don't pop under camera motion.")]
			[Range(0f, 1f)]
			public float intensity;
		}

		// Token: 0x02000567 RID: 1383
		[Token(Token = "0x2000567")]
		[Serializable]
		public struct Settings
		{
			// Token: 0x17000361 RID: 865
			// (get) Token: 0x06002DD7 RID: 11735 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x17000361")]
			public static ScreenSpaceReflectionModel.Settings defaultSettings
			{
				[Token(Token = "0x6002DD7")]
				[Address(RVA = "0x6A1920", Offset = "0x6A0720", VA = "0x1806A1920")]
				get
				{
					throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
				}
			}

			// Token: 0x040036B5 RID: 14005
			[FieldOffset(Offset = "0x0")]
			[Token(Token = "0x40036B5")]
			public ScreenSpaceReflectionModel.ReflectionSettings reflection;

			// Token: 0x040036B6 RID: 14006
			[FieldOffset(Offset = "0x20")]
			[Token(Token = "0x40036B6")]
			public ScreenSpaceReflectionModel.IntensitySettings intensity;

			// Token: 0x040036B7 RID: 14007
			[FieldOffset(Offset = "0x30")]
			[Token(Token = "0x40036B7")]
			public ScreenSpaceReflectionModel.ScreenEdgeMask screenEdgeMask;
		}
	}
}
