You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
712 lines
36 KiB
712 lines
36 KiB
// ===========================================================================
|
|
// WARNING:
|
|
// On PS4, texture/sampler declarations need to be outside of CBuffers
|
|
// Otherwise those parameters are not bound correctly at runtime.
|
|
// ===========================================================================
|
|
|
|
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
|
|
|
|
TEXTURE2D(_EmissiveColorMap);
|
|
SAMPLER(sampler_EmissiveColorMap);
|
|
|
|
#ifndef LAYERED_LIT_SHADER
|
|
|
|
TEXTURE2D(_DiffuseLightingMap);
|
|
SAMPLER(sampler_DiffuseLightingMap);
|
|
|
|
TEXTURE2D(_BaseColorMap);
|
|
SAMPLER(sampler_BaseColorMap);
|
|
|
|
TEXTURE2D(_MaskMap);
|
|
SAMPLER(sampler_MaskMap);
|
|
TEXTURE2D(_BentNormalMap); // Reuse sampler from normal map
|
|
SAMPLER(sampler_BentNormalMap);
|
|
TEXTURE2D(_BentNormalMapOS);
|
|
SAMPLER(sampler_BentNormalMapOS);
|
|
|
|
TEXTURE2D(_NormalMap);
|
|
SAMPLER(sampler_NormalMap);
|
|
TEXTURE2D(_NormalMapOS);
|
|
SAMPLER(sampler_NormalMapOS);
|
|
|
|
TEXTURE2D(_DetailMap);
|
|
SAMPLER(sampler_DetailMap);
|
|
|
|
TEXTURE2D(_HeightMap);
|
|
SAMPLER(sampler_HeightMap);
|
|
|
|
TEXTURE2D(_TangentMap);
|
|
SAMPLER(sampler_TangentMap);
|
|
TEXTURE2D(_TangentMapOS);
|
|
SAMPLER(sampler_TangentMapOS);
|
|
|
|
TEXTURE2D(_AnisotropyMap);
|
|
SAMPLER(sampler_AnisotropyMap);
|
|
|
|
TEXTURE2D(_SubsurfaceMaskMap);
|
|
SAMPLER(sampler_SubsurfaceMaskMap);
|
|
TEXTURE2D(_TransmissionMaskMap);
|
|
SAMPLER(sampler_TransmissionMaskMap);
|
|
TEXTURE2D(_ThicknessMap);
|
|
SAMPLER(sampler_ThicknessMap);
|
|
|
|
TEXTURE2D(_IridescenceThicknessMap);
|
|
SAMPLER(sampler_IridescenceThicknessMap);
|
|
|
|
TEXTURE2D(_IridescenceMaskMap);
|
|
SAMPLER(sampler_IridescenceMaskMap);
|
|
|
|
TEXTURE2D(_SpecularColorMap);
|
|
SAMPLER(sampler_SpecularColorMap);
|
|
|
|
TEXTURE2D(_TransmittanceColorMap);
|
|
SAMPLER(sampler_TransmittanceColorMap);
|
|
|
|
TEXTURE2D(_CoatMaskMap);
|
|
SAMPLER(sampler_CoatMaskMap);
|
|
|
|
#else
|
|
|
|
// Set of users variables
|
|
#define PROP_DECL(type, name) type name##0, name##1, name##2, name##3
|
|
// sampler are share by texture type inside a layered material but we need to support that a particualr layer have no texture, so we take the first sampler of available texture as the share one
|
|
// mean we must declare all sampler
|
|
#define PROP_DECL_TEX2D(name)\
|
|
TEXTURE2D(CALL_MERGE_NAME(name, 0)); \
|
|
SAMPLER(CALL_MERGE_NAME(CALL_MERGE_NAME(sampler, name), 0)); \
|
|
TEXTURE2D(CALL_MERGE_NAME(name, 1)); \
|
|
SAMPLER(CALL_MERGE_NAME(CALL_MERGE_NAME(sampler, name), 1)); \
|
|
TEXTURE2D(CALL_MERGE_NAME(name, 2)); \
|
|
SAMPLER(CALL_MERGE_NAME(CALL_MERGE_NAME(sampler, name), 2)); \
|
|
TEXTURE2D(CALL_MERGE_NAME(name, 3)); \
|
|
SAMPLER(CALL_MERGE_NAME(CALL_MERGE_NAME(sampler, name), 3))
|
|
|
|
|
|
PROP_DECL_TEX2D(_BaseColorMap);
|
|
PROP_DECL_TEX2D(_MaskMap);
|
|
PROP_DECL_TEX2D(_BentNormalMap);
|
|
PROP_DECL_TEX2D(_NormalMap);
|
|
PROP_DECL_TEX2D(_NormalMapOS);
|
|
PROP_DECL_TEX2D(_DetailMap);
|
|
PROP_DECL_TEX2D(_HeightMap);
|
|
|
|
PROP_DECL_TEX2D(_SubsurfaceMaskMap);
|
|
PROP_DECL_TEX2D(_TransmissionMaskMap);
|
|
PROP_DECL_TEX2D(_ThicknessMap);
|
|
|
|
TEXTURE2D(_LayerMaskMap);
|
|
SAMPLER(sampler_LayerMaskMap);
|
|
TEXTURE2D(_LayerInfluenceMaskMap);
|
|
SAMPLER(sampler_LayerInfluenceMaskMap);
|
|
|
|
#endif
|
|
|
|
CBUFFER_START(UnityPerMaterial)
|
|
|
|
// shared constant between lit and layered lit
|
|
float _AlphaCutoff;
|
|
float _UseShadowThreshold;
|
|
float _AlphaCutoffShadow;
|
|
float _AlphaCutoffPrepass;
|
|
float _AlphaCutoffPostpass;
|
|
float4 _DoubleSidedConstants;
|
|
float _BlendMode;
|
|
float _EnableBlendModePreserveSpecularLighting;
|
|
|
|
float _PPDMaxSamples;
|
|
float _PPDMinSamples;
|
|
float _PPDLodThreshold;
|
|
|
|
float3 _EmissiveColor;
|
|
float _AlbedoAffectEmissive;
|
|
float _EmissiveExposureWeight;
|
|
|
|
int _SpecularOcclusionMode;
|
|
|
|
// Transparency
|
|
float3 _TransmittanceColor;
|
|
float _Ior;
|
|
float _ATDistance;
|
|
|
|
// Caution: C# code in BaseLitUI.cs call LightmapEmissionFlagsProperty() which assume that there is an existing "_EmissionColor"
|
|
// value that exist to identify if the GI emission need to be enabled.
|
|
// In our case we don't use such a mechanism but need to keep the code quiet. We declare the value and always enable it.
|
|
// TODO: Fix the code in legacy unity so we can customize the beahvior for GI
|
|
float3 _EmissionColor;
|
|
float4 _EmissiveColorMap_ST;
|
|
float _TexWorldScaleEmissive;
|
|
float4 _UVMappingMaskEmissive;
|
|
float _ObjectSpaceUVMappingEmissive;
|
|
|
|
float4 _InvPrimScale; // Only XY are used
|
|
|
|
// Specular AA
|
|
float _EnableGeometricSpecularAA;
|
|
float _SpecularAAScreenSpaceVariance;
|
|
float _SpecularAAThreshold;
|
|
|
|
// Raytracing
|
|
float _RayTracing;
|
|
|
|
#ifndef LAYERED_LIT_SHADER
|
|
|
|
// Set of users variables
|
|
float4 _BaseColor;
|
|
float4 _BaseColorMap_ST;
|
|
float4 _BaseColorMap_TexelSize;
|
|
|
|
float _Metallic;
|
|
float _MetallicRemapMin;
|
|
float _MetallicRemapMax;
|
|
float _Smoothness;
|
|
float _SmoothnessRemapMin;
|
|
float _SmoothnessRemapMax;
|
|
float _AlphaRemapMin;
|
|
float _AlphaRemapMax;
|
|
float _AORemapMin;
|
|
float _AORemapMax;
|
|
|
|
float _NormalScale;
|
|
|
|
float4 _DetailMap_ST;
|
|
float _DetailAlbedoScale;
|
|
float _DetailNormalScale;
|
|
float _DetailSmoothnessScale;
|
|
|
|
float4 _HeightMap_TexelSize; // Unity facility. This will provide the size of the heightmap to the shader
|
|
|
|
float _HeightAmplitude;
|
|
float _HeightCenter;
|
|
|
|
float _Anisotropy;
|
|
|
|
float _DiffusionProfileHash;
|
|
float _SubsurfaceMask;
|
|
float _TransmissionMask;
|
|
float _Thickness;
|
|
float4 _ThicknessRemap;
|
|
|
|
|
|
float _IridescenceThickness;
|
|
float4 _IridescenceThicknessRemap;
|
|
float _IridescenceMask;
|
|
|
|
float _CoatMask;
|
|
|
|
float4 _SpecularColor;
|
|
float _EnergyConservingSpecularColor;
|
|
|
|
float _TexWorldScale;
|
|
float _InvTilingScale;
|
|
float4 _UVMappingMask;
|
|
float4 _UVDetailsMappingMask;
|
|
float _LinkDetailsWithBase;
|
|
float _ObjectSpaceUVMapping;
|
|
|
|
#else // LAYERED_LIT_SHADER
|
|
|
|
// Set of users variables
|
|
PROP_DECL(float4, _BaseColor);
|
|
float4 _BaseColorMap0_ST;
|
|
float4 _BaseColorMap1_ST;
|
|
float4 _BaseColorMap2_ST;
|
|
float4 _BaseColorMap3_ST;
|
|
|
|
float4 _BaseColorMap0_TexelSize;
|
|
|
|
PROP_DECL(float, _Metallic);
|
|
PROP_DECL(float, _MetallicRemapMin);
|
|
PROP_DECL(float, _MetallicRemapMax);
|
|
PROP_DECL(float, _Smoothness);
|
|
PROP_DECL(float, _SmoothnessRemapMin);
|
|
PROP_DECL(float, _SmoothnessRemapMax);
|
|
PROP_DECL(float, _AlphaRemapMin);
|
|
PROP_DECL(float, _AlphaRemapMax);
|
|
PROP_DECL(float, _AORemapMin);
|
|
PROP_DECL(float, _AORemapMax);
|
|
|
|
PROP_DECL(float, _NormalScale);
|
|
float4 _NormalMap0_TexelSize; // Unity facility. This will provide the size of the base normal to the shader
|
|
|
|
float4 _HeightMap0_TexelSize;
|
|
float4 _HeightMap1_TexelSize;
|
|
float4 _HeightMap2_TexelSize;
|
|
float4 _HeightMap3_TexelSize;
|
|
|
|
float4 _DetailMap0_ST;
|
|
float4 _DetailMap1_ST;
|
|
float4 _DetailMap2_ST;
|
|
float4 _DetailMap3_ST;
|
|
PROP_DECL(float, _UVDetail);
|
|
PROP_DECL(float, _DetailAlbedoScale);
|
|
PROP_DECL(float, _DetailNormalScale);
|
|
PROP_DECL(float, _DetailSmoothnessScale);
|
|
|
|
PROP_DECL(float, _HeightAmplitude);
|
|
PROP_DECL(float, _HeightCenter);
|
|
|
|
PROP_DECL(float, _DiffusionProfileHash);
|
|
PROP_DECL(float, _SubsurfaceMask);
|
|
PROP_DECL(float, _TransmissionMask);
|
|
PROP_DECL(float, _Thickness);
|
|
PROP_DECL(float4, _ThicknessRemap);
|
|
|
|
PROP_DECL(float, _OpacityAsDensity);
|
|
float _InheritBaseNormal1;
|
|
float _InheritBaseNormal2;
|
|
float _InheritBaseNormal3;
|
|
float _InheritBaseHeight1;
|
|
float _InheritBaseHeight2;
|
|
float _InheritBaseHeight3;
|
|
float _InheritBaseColor1;
|
|
float _InheritBaseColor2;
|
|
float _InheritBaseColor3;
|
|
PROP_DECL(float, _HeightOffset);
|
|
float _HeightTransition;
|
|
|
|
float4 _LayerMaskMap_ST;
|
|
float _TexWorldScaleBlendMask;
|
|
PROP_DECL(float, _TexWorldScale);
|
|
PROP_DECL(float, _InvTilingScale);
|
|
float4 _UVMappingMaskBlendMask;
|
|
PROP_DECL(float4, _UVMappingMask);
|
|
PROP_DECL(float4, _UVDetailsMappingMask);
|
|
PROP_DECL(float, _LinkDetailsWithBase);
|
|
|
|
#endif // LAYERED_LIT_SHADER
|
|
|
|
// Tessellation specific
|
|
|
|
#ifdef TESSELLATION_ON
|
|
float _TessellationFactor;
|
|
float _TessellationFactorMinDistance;
|
|
float _TessellationFactorMaxDistance;
|
|
float _TessellationFactorTriangleSize;
|
|
float _TessellationShapeFactor;
|
|
float _TessellationBackFaceCullEpsilon;
|
|
#endif
|
|
|
|
// Mipmap Streaming Debug
|
|
UNITY_TEXTURE_STREAMING_DEBUG_VARS;
|
|
|
|
CBUFFER_END
|
|
|
|
// Following three variables are feeded by the C++ Editor for Scene selection
|
|
// It need to be outside the UnityPerMaterial buffer to have Material compatible with SRP Batcher
|
|
int _ObjectId;
|
|
int _PassValue;
|
|
float4 _SelectionID;
|
|
|
|
#if defined(UNITY_DOTS_INSTANCING_ENABLED)
|
|
#if defined(LAYERED_LIT_SHADER)
|
|
|
|
UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _BaseColor0)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _BaseColor1)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _BaseColor2)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _BaseColor3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Metallic0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Metallic1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Metallic2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Metallic3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMin0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMin1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMin2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMin3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMax0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMax1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMax2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMax3)
|
|
UNITY_DOTS_INSTANCED_PROP(float3, _EmissiveColor)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaCutoff)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Smoothness0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Smoothness1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Smoothness2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Smoothness3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMin0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMin1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMin2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMin3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMax0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMax1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMax2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMax3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMin0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMin1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMin2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMin3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMax0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMax1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMax2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMax3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMin0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMin1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMin2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMin3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMax0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMax1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMax2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMax3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailAlbedoScale0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailAlbedoScale1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailAlbedoScale2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailAlbedoScale3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailNormalScale0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailNormalScale1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailNormalScale2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailNormalScale3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailSmoothnessScale0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailSmoothnessScale1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailSmoothnessScale2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailSmoothnessScale3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DiffusionProfileHash0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DiffusionProfileHash1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DiffusionProfileHash2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DiffusionProfileHash3)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Thickness0)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Thickness1)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Thickness2)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Thickness3)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _ThicknessRemap0)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _ThicknessRemap1)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _ThicknessRemap2)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _ThicknessRemap3)
|
|
UNITY_DOTS_INSTANCING_END(MaterialPropertyMetadata)
|
|
|
|
// Here, we want to avoid overriding a property like e.g. _BaseColor0 with something like this:
|
|
// #define _BaseColor0 UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _BaseColor0)
|
|
//
|
|
// It would be simpler, but it can cause the compiler to regenerate the property loading code for each use of _BaseColor0.
|
|
//
|
|
// To avoid this, the property loads are cached in some static values at the beginning of the shader.
|
|
// The properties such as _BaseColor0 are then overridden so that it expand directly to the static value like this:
|
|
// #define _BaseColor0 unity_DOTS_Sampled_BaseColor0
|
|
//
|
|
// This simple fix happened to improve GPU performances by ~10% on Meta Quest 2 with URP on some scenes.
|
|
static float4 unity_DOTS_Sampled_BaseColor0;
|
|
static float4 unity_DOTS_Sampled_BaseColor1;
|
|
static float4 unity_DOTS_Sampled_BaseColor2;
|
|
static float4 unity_DOTS_Sampled_BaseColor3;
|
|
static float unity_DOTS_Sampled_Metallic0;
|
|
static float unity_DOTS_Sampled_Metallic1;
|
|
static float unity_DOTS_Sampled_Metallic2;
|
|
static float unity_DOTS_Sampled_Metallic3;
|
|
static float unity_DOTS_Sampled_MetallicRemapMin0;
|
|
static float unity_DOTS_Sampled_MetallicRemapMin1;
|
|
static float unity_DOTS_Sampled_MetallicRemapMin2;
|
|
static float unity_DOTS_Sampled_MetallicRemapMin3;
|
|
static float unity_DOTS_Sampled_MetallicRemapMax0;
|
|
static float unity_DOTS_Sampled_MetallicRemapMax1;
|
|
static float unity_DOTS_Sampled_MetallicRemapMax2;
|
|
static float unity_DOTS_Sampled_MetallicRemapMax3;
|
|
static float3 unity_DOTS_Sampled_EmissiveColor;
|
|
static float unity_DOTS_Sampled_AlphaCutoff;
|
|
static float unity_DOTS_Sampled_Smoothness0;
|
|
static float unity_DOTS_Sampled_Smoothness1;
|
|
static float unity_DOTS_Sampled_Smoothness2;
|
|
static float unity_DOTS_Sampled_Smoothness3;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMin0;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMin1;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMin2;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMin3;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMax0;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMax1;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMax2;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMax3;
|
|
static float unity_DOTS_Sampled_AlphaRemapMin0;
|
|
static float unity_DOTS_Sampled_AlphaRemapMin1;
|
|
static float unity_DOTS_Sampled_AlphaRemapMin2;
|
|
static float unity_DOTS_Sampled_AlphaRemapMin3;
|
|
static float unity_DOTS_Sampled_AlphaRemapMax0;
|
|
static float unity_DOTS_Sampled_AlphaRemapMax1;
|
|
static float unity_DOTS_Sampled_AlphaRemapMax2;
|
|
static float unity_DOTS_Sampled_AlphaRemapMax3;
|
|
static float unity_DOTS_Sampled_AORemapMin0;
|
|
static float unity_DOTS_Sampled_AORemapMin1;
|
|
static float unity_DOTS_Sampled_AORemapMin2;
|
|
static float unity_DOTS_Sampled_AORemapMin3;
|
|
static float unity_DOTS_Sampled_AORemapMax0;
|
|
static float unity_DOTS_Sampled_AORemapMax1;
|
|
static float unity_DOTS_Sampled_AORemapMax2;
|
|
static float unity_DOTS_Sampled_AORemapMax3;
|
|
static float unity_DOTS_Sampled_DetailAlbedoScale0;
|
|
static float unity_DOTS_Sampled_DetailAlbedoScale1;
|
|
static float unity_DOTS_Sampled_DetailAlbedoScale2;
|
|
static float unity_DOTS_Sampled_DetailAlbedoScale3;
|
|
static float unity_DOTS_Sampled_DetailNormalScale0;
|
|
static float unity_DOTS_Sampled_DetailNormalScale1;
|
|
static float unity_DOTS_Sampled_DetailNormalScale2;
|
|
static float unity_DOTS_Sampled_DetailNormalScale3;
|
|
static float unity_DOTS_Sampled_DetailSmoothnessScale0;
|
|
static float unity_DOTS_Sampled_DetailSmoothnessScale1;
|
|
static float unity_DOTS_Sampled_DetailSmoothnessScale2;
|
|
static float unity_DOTS_Sampled_DetailSmoothnessScale3;
|
|
static float unity_DOTS_Sampled_DiffusionProfileHash0;
|
|
static float unity_DOTS_Sampled_DiffusionProfileHash1;
|
|
static float unity_DOTS_Sampled_DiffusionProfileHash2;
|
|
static float unity_DOTS_Sampled_DiffusionProfileHash3;
|
|
static float unity_DOTS_Sampled_Thickness0;
|
|
static float unity_DOTS_Sampled_Thickness1;
|
|
static float unity_DOTS_Sampled_Thickness2;
|
|
static float unity_DOTS_Sampled_Thickness3;
|
|
static float4 unity_DOTS_Sampled_ThicknessRemap0;
|
|
static float4 unity_DOTS_Sampled_ThicknessRemap1;
|
|
static float4 unity_DOTS_Sampled_ThicknessRemap2;
|
|
static float4 unity_DOTS_Sampled_ThicknessRemap3;
|
|
|
|
void SetupDOTSLayeredLitMaterialPropertyCaches()
|
|
{
|
|
unity_DOTS_Sampled_BaseColor0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _BaseColor0);
|
|
unity_DOTS_Sampled_BaseColor1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _BaseColor1);
|
|
unity_DOTS_Sampled_BaseColor2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _BaseColor2);
|
|
unity_DOTS_Sampled_BaseColor3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _BaseColor3);
|
|
unity_DOTS_Sampled_Metallic0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Metallic0);
|
|
unity_DOTS_Sampled_Metallic1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Metallic1);
|
|
unity_DOTS_Sampled_Metallic2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Metallic2);
|
|
unity_DOTS_Sampled_Metallic3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Metallic3);
|
|
unity_DOTS_Sampled_MetallicRemapMin0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMin0);
|
|
unity_DOTS_Sampled_MetallicRemapMin1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMin1);
|
|
unity_DOTS_Sampled_MetallicRemapMin2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMin2);
|
|
unity_DOTS_Sampled_MetallicRemapMin3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMin3);
|
|
unity_DOTS_Sampled_MetallicRemapMax0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMax0);
|
|
unity_DOTS_Sampled_MetallicRemapMax1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMax1);
|
|
unity_DOTS_Sampled_MetallicRemapMax2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMax2);
|
|
unity_DOTS_Sampled_MetallicRemapMax3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMax3);
|
|
unity_DOTS_Sampled_EmissiveColor = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float3, _EmissiveColor);
|
|
unity_DOTS_Sampled_AlphaCutoff = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaCutoff);
|
|
unity_DOTS_Sampled_Smoothness0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Smoothness0);
|
|
unity_DOTS_Sampled_Smoothness1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Smoothness1);
|
|
unity_DOTS_Sampled_Smoothness2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Smoothness2);
|
|
unity_DOTS_Sampled_Smoothness3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Smoothness3);
|
|
unity_DOTS_Sampled_SmoothnessRemapMin0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMin0);
|
|
unity_DOTS_Sampled_SmoothnessRemapMin1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMin1);
|
|
unity_DOTS_Sampled_SmoothnessRemapMin2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMin2);
|
|
unity_DOTS_Sampled_SmoothnessRemapMin3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMin3);
|
|
unity_DOTS_Sampled_SmoothnessRemapMax0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMax0);
|
|
unity_DOTS_Sampled_SmoothnessRemapMax1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMax1);
|
|
unity_DOTS_Sampled_SmoothnessRemapMax2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMax2);
|
|
unity_DOTS_Sampled_SmoothnessRemapMax3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMax3);
|
|
unity_DOTS_Sampled_AlphaRemapMin0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMin0);
|
|
unity_DOTS_Sampled_AlphaRemapMin1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMin1);
|
|
unity_DOTS_Sampled_AlphaRemapMin2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMin2);
|
|
unity_DOTS_Sampled_AlphaRemapMin3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMin3);
|
|
unity_DOTS_Sampled_AlphaRemapMax0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMax0);
|
|
unity_DOTS_Sampled_AlphaRemapMax1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMax1);
|
|
unity_DOTS_Sampled_AlphaRemapMax2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMax2);
|
|
unity_DOTS_Sampled_AlphaRemapMax3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMax3);
|
|
unity_DOTS_Sampled_AORemapMin0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMin0);
|
|
unity_DOTS_Sampled_AORemapMin1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMin1);
|
|
unity_DOTS_Sampled_AORemapMin2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMin2);
|
|
unity_DOTS_Sampled_AORemapMin3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMin3);
|
|
unity_DOTS_Sampled_AORemapMax0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMax0);
|
|
unity_DOTS_Sampled_AORemapMax1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMax1);
|
|
unity_DOTS_Sampled_AORemapMax2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMax2);
|
|
unity_DOTS_Sampled_AORemapMax3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMax3);
|
|
unity_DOTS_Sampled_DetailAlbedoScale0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailAlbedoScale0);
|
|
unity_DOTS_Sampled_DetailAlbedoScale1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailAlbedoScale1);
|
|
unity_DOTS_Sampled_DetailAlbedoScale2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailAlbedoScale2);
|
|
unity_DOTS_Sampled_DetailAlbedoScale3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailAlbedoScale3);
|
|
unity_DOTS_Sampled_DetailNormalScale0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailNormalScale0);
|
|
unity_DOTS_Sampled_DetailNormalScale1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailNormalScale1);
|
|
unity_DOTS_Sampled_DetailNormalScale2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailNormalScale2);
|
|
unity_DOTS_Sampled_DetailNormalScale3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailNormalScale3);
|
|
unity_DOTS_Sampled_DetailSmoothnessScale0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailSmoothnessScale0);
|
|
unity_DOTS_Sampled_DetailSmoothnessScale1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailSmoothnessScale1);
|
|
unity_DOTS_Sampled_DetailSmoothnessScale2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailSmoothnessScale2);
|
|
unity_DOTS_Sampled_DetailSmoothnessScale3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailSmoothnessScale3);
|
|
unity_DOTS_Sampled_DiffusionProfileHash0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DiffusionProfileHash0);
|
|
unity_DOTS_Sampled_DiffusionProfileHash1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DiffusionProfileHash1);
|
|
unity_DOTS_Sampled_DiffusionProfileHash2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DiffusionProfileHash2);
|
|
unity_DOTS_Sampled_DiffusionProfileHash3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DiffusionProfileHash3);
|
|
unity_DOTS_Sampled_Thickness0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Thickness0);
|
|
unity_DOTS_Sampled_Thickness1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Thickness1);
|
|
unity_DOTS_Sampled_Thickness2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Thickness2);
|
|
unity_DOTS_Sampled_Thickness3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Thickness3);
|
|
unity_DOTS_Sampled_ThicknessRemap0 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _ThicknessRemap0);
|
|
unity_DOTS_Sampled_ThicknessRemap1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _ThicknessRemap1);
|
|
unity_DOTS_Sampled_ThicknessRemap2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _ThicknessRemap2);
|
|
unity_DOTS_Sampled_ThicknessRemap3 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _ThicknessRemap3);
|
|
}
|
|
|
|
#undef UNITY_SETUP_DOTS_MATERIAL_PROPERTY_CACHES
|
|
#define UNITY_SETUP_DOTS_MATERIAL_PROPERTY_CACHES() SetupDOTSLayeredLitMaterialPropertyCaches()
|
|
|
|
#define _BaseColor0 unity_DOTS_Sampled_BaseColor0
|
|
#define _BaseColor1 unity_DOTS_Sampled_BaseColor1
|
|
#define _BaseColor2 unity_DOTS_Sampled_BaseColor2
|
|
#define _BaseColor3 unity_DOTS_Sampled_BaseColor3
|
|
#define _Metallic0 unity_DOTS_Sampled_Metallic0
|
|
#define _Metallic1 unity_DOTS_Sampled_Metallic1
|
|
#define _Metallic2 unity_DOTS_Sampled_Metallic2
|
|
#define _Metallic3 unity_DOTS_Sampled_Metallic3
|
|
#define _MetallicRemapMin0 unity_DOTS_Sampled_MetallicRemapMin0
|
|
#define _MetallicRemapMin1 unity_DOTS_Sampled_MetallicRemapMin1
|
|
#define _MetallicRemapMin2 unity_DOTS_Sampled_MetallicRemapMin2
|
|
#define _MetallicRemapMin3 unity_DOTS_Sampled_MetallicRemapMin3
|
|
#define _MetallicRemapMax0 unity_DOTS_Sampled_MetallicRemapMax0
|
|
#define _MetallicRemapMax1 unity_DOTS_Sampled_MetallicRemapMax1
|
|
#define _MetallicRemapMax2 unity_DOTS_Sampled_MetallicRemapMax2
|
|
#define _MetallicRemapMax3 unity_DOTS_Sampled_MetallicRemapMax3
|
|
#define _EmissiveColor unity_DOTS_Sampled_EmissiveColor
|
|
#define _AlphaCutoff unity_DOTS_Sampled_AlphaCutoff
|
|
#define _Smoothness0 unity_DOTS_Sampled_Smoothness0
|
|
#define _Smoothness1 unity_DOTS_Sampled_Smoothness1
|
|
#define _Smoothness2 unity_DOTS_Sampled_Smoothness2
|
|
#define _Smoothness3 unity_DOTS_Sampled_Smoothness3
|
|
#define _SmoothnessRemapMin0 unity_DOTS_Sampled_SmoothnessRemapMin0
|
|
#define _SmoothnessRemapMin1 unity_DOTS_Sampled_SmoothnessRemapMin1
|
|
#define _SmoothnessRemapMin2 unity_DOTS_Sampled_SmoothnessRemapMin2
|
|
#define _SmoothnessRemapMin3 unity_DOTS_Sampled_SmoothnessRemapMin3
|
|
#define _SmoothnessRemapMax0 unity_DOTS_Sampled_SmoothnessRemapMax0
|
|
#define _SmoothnessRemapMax1 unity_DOTS_Sampled_SmoothnessRemapMax1
|
|
#define _SmoothnessRemapMax2 unity_DOTS_Sampled_SmoothnessRemapMax2
|
|
#define _SmoothnessRemapMax3 unity_DOTS_Sampled_SmoothnessRemapMax3
|
|
#define _AlphaRemapMin0 unity_DOTS_Sampled_AlphaRemapMin0
|
|
#define _AlphaRemapMin1 unity_DOTS_Sampled_AlphaRemapMin1
|
|
#define _AlphaRemapMin2 unity_DOTS_Sampled_AlphaRemapMin2
|
|
#define _AlphaRemapMin3 unity_DOTS_Sampled_AlphaRemapMin3
|
|
#define _AlphaRemapMax0 unity_DOTS_Sampled_AlphaRemapMax0
|
|
#define _AlphaRemapMax1 unity_DOTS_Sampled_AlphaRemapMax1
|
|
#define _AlphaRemapMax2 unity_DOTS_Sampled_AlphaRemapMax2
|
|
#define _AlphaRemapMax3 unity_DOTS_Sampled_AlphaRemapMax3
|
|
#define _AORemapMin0 unity_DOTS_Sampled_AORemapMin0
|
|
#define _AORemapMin1 unity_DOTS_Sampled_AORemapMin1
|
|
#define _AORemapMin2 unity_DOTS_Sampled_AORemapMin2
|
|
#define _AORemapMin3 unity_DOTS_Sampled_AORemapMin3
|
|
#define _AORemapMax0 unity_DOTS_Sampled_AORemapMax0
|
|
#define _AORemapMax1 unity_DOTS_Sampled_AORemapMax1
|
|
#define _AORemapMax2 unity_DOTS_Sampled_AORemapMax2
|
|
#define _AORemapMax3 unity_DOTS_Sampled_AORemapMax3
|
|
#define _DetailAlbedoScale0 unity_DOTS_Sampled_DetailAlbedoScale0
|
|
#define _DetailAlbedoScale1 unity_DOTS_Sampled_DetailAlbedoScale1
|
|
#define _DetailAlbedoScale2 unity_DOTS_Sampled_DetailAlbedoScale2
|
|
#define _DetailAlbedoScale3 unity_DOTS_Sampled_DetailAlbedoScale3
|
|
#define _DetailNormalScale0 unity_DOTS_Sampled_DetailNormalScale0
|
|
#define _DetailNormalScale1 unity_DOTS_Sampled_DetailNormalScale1
|
|
#define _DetailNormalScale2 unity_DOTS_Sampled_DetailNormalScale2
|
|
#define _DetailNormalScale3 unity_DOTS_Sampled_DetailNormalScale3
|
|
#define _DetailSmoothnessScale0 unity_DOTS_Sampled_DetailSmoothnessScale0
|
|
#define _DetailSmoothnessScale1 unity_DOTS_Sampled_DetailSmoothnessScale1
|
|
#define _DetailSmoothnessScale2 unity_DOTS_Sampled_DetailSmoothnessScale2
|
|
#define _DetailSmoothnessScale3 unity_DOTS_Sampled_DetailSmoothnessScale3
|
|
#define _DiffusionProfileHash0 unity_DOTS_Sampled_DiffusionProfileHash0
|
|
#define _DiffusionProfileHash1 unity_DOTS_Sampled_DiffusionProfileHash1
|
|
#define _DiffusionProfileHash2 unity_DOTS_Sampled_DiffusionProfileHash2
|
|
#define _DiffusionProfileHash3 unity_DOTS_Sampled_DiffusionProfileHash3
|
|
#define _Thickness0 unity_DOTS_Sampled_Thickness0
|
|
#define _Thickness1 unity_DOTS_Sampled_Thickness1
|
|
#define _Thickness2 unity_DOTS_Sampled_Thickness2
|
|
#define _Thickness3 unity_DOTS_Sampled_Thickness3
|
|
#define _ThicknessRemap0 unity_DOTS_Sampled_ThicknessRemap0
|
|
#define _ThicknessRemap1 unity_DOTS_Sampled_ThicknessRemap1
|
|
#define _ThicknessRemap2 unity_DOTS_Sampled_ThicknessRemap2
|
|
#define _ThicknessRemap3 unity_DOTS_Sampled_ThicknessRemap3
|
|
|
|
#else
|
|
|
|
UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _BaseColor)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Metallic)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMin)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _MetallicRemapMax)
|
|
UNITY_DOTS_INSTANCED_PROP(float3, _EmissiveColor)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _SpecularColor)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaCutoff);
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Smoothness)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMin)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _SmoothnessRemapMax)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMin)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AlphaRemapMax)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMin)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _AORemapMax)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailAlbedoScale)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailNormalScale)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DetailSmoothnessScale)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _DiffusionProfileHash)
|
|
UNITY_DOTS_INSTANCED_PROP(float , _Thickness)
|
|
UNITY_DOTS_INSTANCED_PROP(float4, _ThicknessRemap)
|
|
UNITY_DOTS_INSTANCING_END(MaterialPropertyMetadata)
|
|
|
|
// Here, we want to avoid overriding a property like e.g. _BaseColor with something like this:
|
|
// #define _BaseColor UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _BaseColor0)
|
|
//
|
|
// It would be simpler, but it can cause the compiler to regenerate the property loading code for each use of _BaseColor.
|
|
//
|
|
// To avoid this, the property loads are cached in some static values at the beginning of the shader.
|
|
// The properties such as _BaseColor are then overridden so that it expand directly to the static value like this:
|
|
// #define _BaseColor unity_DOTS_Sampled_BaseColor
|
|
//
|
|
// This simple fix happened to improve GPU performances by ~10% on Meta Quest 2 with URP on some scenes.
|
|
static float4 unity_DOTS_Sampled_BaseColor;
|
|
static float unity_DOTS_Sampled_Metallic;
|
|
static float unity_DOTS_Sampled_MetallicRemapMin;
|
|
static float unity_DOTS_Sampled_MetallicRemapMax;
|
|
static float3 unity_DOTS_Sampled_EmissiveColor;
|
|
static float4 unity_DOTS_Sampled_SpecularColor;
|
|
static float unity_DOTS_Sampled_AlphaCutoff;;
|
|
static float unity_DOTS_Sampled_Smoothness;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMin;
|
|
static float unity_DOTS_Sampled_SmoothnessRemapMax;
|
|
static float unity_DOTS_Sampled_AlphaRemapMin;
|
|
static float unity_DOTS_Sampled_AlphaRemapMax;
|
|
static float unity_DOTS_Sampled_AORemapMin;
|
|
static float unity_DOTS_Sampled_AORemapMax;
|
|
static float unity_DOTS_Sampled_DetailAlbedoScale;
|
|
static float unity_DOTS_Sampled_DetailNormalScale;
|
|
static float unity_DOTS_Sampled_DetailSmoothnessScale;
|
|
static float unity_DOTS_Sampled_DiffusionProfileHash;
|
|
static float unity_DOTS_Sampled_Thickness;
|
|
static float4 unity_DOTS_Sampled_ThicknessRemap;
|
|
|
|
void SetupDOTSLitMaterialPropertyCaches()
|
|
{
|
|
unity_DOTS_Sampled_BaseColor = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _BaseColor);
|
|
unity_DOTS_Sampled_Metallic = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Metallic);
|
|
unity_DOTS_Sampled_MetallicRemapMin = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMin);
|
|
unity_DOTS_Sampled_MetallicRemapMax = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _MetallicRemapMax);
|
|
unity_DOTS_Sampled_Smoothness = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Smoothness);
|
|
unity_DOTS_Sampled_EmissiveColor = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float3, _EmissiveColor);
|
|
unity_DOTS_Sampled_SpecularColor = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _SpecularColor);
|
|
unity_DOTS_Sampled_AlphaCutoff = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaCutoff);
|
|
unity_DOTS_Sampled_Smoothness = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Smoothness);
|
|
unity_DOTS_Sampled_SmoothnessRemapMin = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMin);
|
|
unity_DOTS_Sampled_SmoothnessRemapMax = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _SmoothnessRemapMax);
|
|
unity_DOTS_Sampled_AlphaRemapMin = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMin);
|
|
unity_DOTS_Sampled_AlphaRemapMax = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AlphaRemapMax);
|
|
unity_DOTS_Sampled_AORemapMin = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMin);
|
|
unity_DOTS_Sampled_AORemapMax = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _AORemapMax);
|
|
unity_DOTS_Sampled_DetailAlbedoScale = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailAlbedoScale);
|
|
unity_DOTS_Sampled_DetailNormalScale = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailNormalScale);
|
|
unity_DOTS_Sampled_DetailSmoothnessScale = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DetailSmoothnessScale);
|
|
unity_DOTS_Sampled_DiffusionProfileHash = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _DiffusionProfileHash);
|
|
unity_DOTS_Sampled_Thickness = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Thickness);
|
|
unity_DOTS_Sampled_ThicknessRemap = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, _ThicknessRemap);
|
|
}
|
|
|
|
#undef UNITY_SETUP_DOTS_MATERIAL_PROPERTY_CACHES
|
|
#define UNITY_SETUP_DOTS_MATERIAL_PROPERTY_CACHES() SetupDOTSLitMaterialPropertyCaches()
|
|
|
|
#define _BaseColor unity_DOTS_Sampled_BaseColor
|
|
#define _Metallic unity_DOTS_Sampled_Metallic
|
|
#define _MetallicRemapMin unity_DOTS_Sampled_MetallicRemapMin
|
|
#define _MetallicRemapMax unity_DOTS_Sampled_MetallicRemapMax
|
|
#define _Smoothness unity_DOTS_Sampled_Smoothness
|
|
#define _EmissiveColor unity_DOTS_Sampled_EmissiveColor
|
|
#define _SpecularColor unity_DOTS_Sampled_SpecularColor
|
|
#define _AlphaCutoff unity_DOTS_Sampled_AlphaCutoff
|
|
#define _Smoothness unity_DOTS_Sampled_Smoothness
|
|
#define _SmoothnessRemapMin unity_DOTS_Sampled_SmoothnessRemapMin
|
|
#define _SmoothnessRemapMax unity_DOTS_Sampled_SmoothnessRemapMax
|
|
#define _AlphaRemapMin unity_DOTS_Sampled_AlphaRemapMin
|
|
#define _AlphaRemapMax unity_DOTS_Sampled_AlphaRemapMax
|
|
#define _AORemapMin unity_DOTS_Sampled_AORemapMin
|
|
#define _AORemapMax unity_DOTS_Sampled_AORemapMax
|
|
#define _DetailAlbedoScale unity_DOTS_Sampled_DetailAlbedoScale
|
|
#define _DetailNormalScale unity_DOTS_Sampled_DetailNormalScale
|
|
#define _DetailSmoothnessScale unity_DOTS_Sampled_DetailSmoothnessScale
|
|
#define _DiffusionProfileHash unity_DOTS_Sampled_DiffusionProfileHash
|
|
#define _Thickness unity_DOTS_Sampled_Thickness
|
|
#define _ThicknessRemap unity_DOTS_Sampled_ThicknessRemap
|
|
|
|
#endif
|
|
#endif
|