OSDN Git Service

Added Assets for main menu
[mindgames/Mindgames_main.git] / Mindgames / Library / PackageCache / com.unity.render-pipelines.high-definition@6.9.0-preview / Runtime / Material / SubsurfaceScattering / ShaderVariablesSubsurfaceScattering.cs
1
2 namespace UnityEngine.Experimental.Rendering.HDPipeline
3 {
4     [GenerateHLSL(needAccessors = false, omitStructDeclaration = true)]
5     public unsafe struct ShaderVariablesSubsurfaceScattering
6     {
7         // Use float4 to avoid any packing issue between compute and pixel shaders
8         [HLSLArray(DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT, typeof(Vector4))]
9         public fixed float _ThicknessRemaps[DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT * 4];   // R: start, G = end - start, BA unused
10         [HLSLArray(DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT, typeof(Vector4))]
11         public fixed float _ShapeParams[DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT * 4];        // RGB = S = 1 / D, A = filter radius
12         [HLSLArray(DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT, typeof(Vector4))]
13         public fixed float _TransmissionTintsAndFresnel0[DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT * 4];  // RGB = 1/4 * color, A = fresnel0
14         [HLSLArray(DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT, typeof(Vector4))]
15         public fixed float _WorldScales[DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT * 4];        // X = meters per world unit; Y = world units per meter
16         [HLSLArray(DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT, typeof(float))]
17         public fixed uint _DiffusionProfileHashTable[DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT]; // TODO: constant
18
19         // Warning: Unity is not able to losslessly transfer integers larger than 2^24 to the shader system.
20         // Therefore, we bitcast uint to float in C#, and bitcast back to uint in the shader.
21         public uint   _EnableSubsurfaceScattering; // Globally toggles subsurface and transmission scattering on/off
22         public float  _TexturingModeFlags;         // 1 bit/profile; 0 = PreAndPostScatter, 1 = PostScatter
23         public float  _TransmissionFlags;          // 1 bit/profile; 0 = regular, 1 = thin
24         public uint   _DiffusionProfileCount;
25     }
26 }