#ifndef __GLOBALS_INC #define __GLOBALS_INC #include "features.cginc" SamplerState point_repeat_s; SamplerState linear_repeat_s; SamplerState aniso4_trilinear_repeat_s; SamplerState aniso4_trilinear_mirror_s; SamplerState aniso4_trilinear_clamp_s; SamplerState bilinear_repeat_s; SamplerState linear_clamp_s; SamplerState bilinear_clamp_s; SamplerState trilinear_repeat_s; int _Mode; // opaque, cutout, transparent, etc. texture2D _MainTex; float4 _MainTex_ST; float4 _Color; texture2D _BumpMap; float4 _BumpMap_ST; float _BumpScale; texture2D _MetallicGlossMap; float4 _MetallicGlossMap_ST; float _Glossiness; float _Metallic; texture2D _DFG_LUT; float _Specular_AA_Variance; float _Specular_AA_Threshold; float _BRDF_Specular_Min_Denom; #if defined(_EMISSIONS) texture2D _EmissionMap; float4 _EmissionMap_ST; texture2D _EmissionMask; float4 _EmissionMask_ST; float3 _EmissionColor; #endif // _EMISSIONS #if defined(_OUTLINES) float4 _Outlines_Color; float _Outlines_Width; texture2D _Outlines_Thickness; #endif // _OUTLINES #if defined(_SHADOWS) float4 _Shadow_0_Color; float _Shadow_0_Threshold; float _Shadow_0_Blur; #if defined(_SHADOW_1) float4 _Shadow_1_Color; float _Shadow_1_Threshold; float _Shadow_1_Blur; #endif // _SHADOW_1 #endif // _SHADOWS #if defined(_BRIGHTNESS_CLAMP) float _Brightness_Clamp_Min; float _Brightness_Clamp_Max; #endif // _BRIGHTNESS_CLAMP #if defined(_WRAPPED_LIGHTING) float _Wrapped_Lighting_Amount; #endif // _WRAPPED_LIGHTING #if defined(_AMBIENT_OCCLUSION) texture2D _OcclusionMap; float4 _OcclusionMap_ST; float _OcclusionStrength; #endif // __AMBIENT_OCCLUSION #if defined(_BENT_NORMALS) texture2D _Bent_Normals_Map; float4 _Bent_Normals_Map_ST; float _Bent_Normals_Strength; #endif // _BENT_NORMALS #if defined(_MARBLE) texture2D _Marble_U_Ramp; texture2D _Marble_V_Ramp; texture2D _Marble_W_Ramp; float3 _Marble_Scale; float _Marble_Octaves; float _Marble_Strength; #endif // _MARBLE #if defined(_TESSELLATION) float _Tessellation_Factor; float _Tessellation_Frustum_Culling_Bias; float _Tessellation_Falloff_Factor; #endif // _TESSELLATION #if defined(_CLEARCOAT) float _Clearcoat_Strength; float _Clearcoat_Roughness; #endif // _CLEARCOAT #if defined(_CLEARCOAT_MASK) texture2D _Clearcoat_Mask; float4 _Clearcoat_Mask_ST; float _Clearcoat_Mask_Strength; #endif // _CLEARCOAT_MASK #if defined(_DETAILS) texture2D _DetailNormalMap; float4 _DetailNormalMap_ST; float _DetailNormalMapScale; texture2D _DetailMask; float4 _DetailMask_ST; int _Details_UV_Channel; #endif // _DETAILS #if defined(_UV_SCROLL) float2 _UV_Scroll_Speed; #endif // _UV_SCROLL #if defined(_CENTER_OFFSET) texture2D _Center_Offset_Heightmap; float4 _Center_Offset_Heightmap_ST; float _Center_Offset_Factor; #endif // _CENTER_OFFSET #if defined(_LOGICAL_TIME) float _Logical_Time; #endif // _LOGICAL_TIME float getTime() { #if defined(_LOGICAL_TIME) return _Logical_Time; #else return _Time[0]; #endif // _LOGICAL_TIME } #if defined(_RAY_MARCHING) float _Ray_Marching_Max_Dist; float _Ray_Marching_Min_Dist; float _Ray_Marching_Max_Iter; #endif // _RAY_MARCHING #if defined(_RAY_MARCHING_OVERSTEP) float _Ray_Marching_Overstepping_Factor; #endif // _RAY_MARCHING_OVERSTEP #if defined(_RAY_MARCHING_BAKED_ORIGINS) int _Baked_Origins_UV_Channel_Index; #endif // _RAY_MARCHING_BAKED_ORIGINS #if defined(_RAY_MARCHING_CART_INSTANCING) float _Ray_Marching_Cart_Instancing_Count_X; float _Ray_Marching_Cart_Instancing_Count_Y; float _Ray_Marching_Cart_Instancing_Count_Z; float _Ray_Marching_Cart_Instancing_Span_X; float _Ray_Marching_Cart_Instancing_Span_Y; float _Ray_Marching_Cart_Instancing_Span_Z; #endif // _RAY_MARCHING_CART_INSTANCING #if defined(_RAY_MARCHING_CART_INSTANCING_OFFSETS) float _Ray_Marching_Cart_Instancing_Offsets_X_Every_Y; float _Ray_Marching_Cart_Instancing_Offsets_X_Every_Z; float _Ray_Marching_Cart_Instancing_Offsets_Y_Every_X; float _Ray_Marching_Cart_Instancing_Offsets_Y_Every_Z; float _Ray_Marching_Cart_Instancing_Offsets_Z_Every_X; float _Ray_Marching_Cart_Instancing_Offsets_Z_Every_Y; #endif // _RAY_MARCHING_CART_INSTANCING_OFFSETS #if defined(_RAY_MARCHING_CART_GRID) float _Ray_Marching_Cart_Grid_Radius; float _Ray_Marching_Cart_Grid_Count_X; float _Ray_Marching_Cart_Grid_Count_Y; float _Ray_Marching_Cart_Grid_Count_Z; float _Ray_Marching_Cart_Grid_Span_X; float _Ray_Marching_Cart_Grid_Span_Y; float _Ray_Marching_Cart_Grid_Span_Z; #endif // _RAY_MARCHING_CART_GRID #if defined(_RAY_MARCHING_HEX_GRID) float _Ray_Marching_Hex_Grid_Radius; float _Ray_Marching_Hex_Grid_Count; #endif // _RAY_MARCHING_HEX_GRID #if defined(_RAY_MARCHING_SCALING) float _Ray_Marching_Scaling_Factor_X; float _Ray_Marching_Scaling_Factor_Y; float _Ray_Marching_Scaling_Factor_Z; #endif // _RAY_MARCHING_SCALING #if defined(_RAY_MARCHING_BALL_GRID) float _Ray_Marching_Ball_Grid_Radius; float _Ray_Marching_Ball_Grid_Count_X; float _Ray_Marching_Ball_Grid_Count_Y; float _Ray_Marching_Ball_Grid_Count_Z; #endif // _RAY_MARCHING_BALL_GRID #if defined(_RAY_MARCHING_BALL) float _Ray_Marching_Ball_Radius; #endif // _RAY_MARCHING_BALL #if defined(_RAY_MARCHING_HEXAGON) float _Ray_Marching_Hexagon_Radius; float _Ray_Marching_Hexagon_Height; #endif // _RAY_MARCHING_HEXAGON #if defined(_INSTANCE_DISTANCE_CULLING) float _Instance_Distance_Culling_Min_Distance; float _Instance_Distance_Culling_Max_Distance; #endif // _INSTANCE_DISTANCE_CULLING #if defined(_INSTANCE_TEXTURE_OFFSET) texture2D _Instance_Texture_Offset_Data_Tex; float4 _Instance_Texture_Offset_Data_Tex_TexelSize; float3 _Instance_Texture_Offset_Cell_Dimensions; float3 _Instance_Texture_Offset_Angle_Randomization; float _Instance_Texture_Offset_Scale_Randomization; float3 _Instance_Texture_Offset_Base_Scale; float4 _Instance_Texture_Offset_Base_Rotation; #endif // _INSTANCE_TEXTURE_OFFSET // Instancing buffer must be declared at global scope for D3D11 compatibility #if defined(_INSTANCE_TEXTURE_OFFSET) && defined(UNITY_INSTANCING_ENABLED) UNITY_INSTANCING_BUFFER_START(InstanceProps) UNITY_DEFINE_INSTANCED_PROP(float, _Instance_ID) #define _Instance_ID_arr InstanceProps UNITY_INSTANCING_BUFFER_END(InstanceProps) #endif // _INSTANCE_TEXTURE_OFFSET && UNITY_INSTANCING_ENABLED #if defined(_PARALLAX_HEIGHTMAP) texture2D _Parallax_Heightmap; float4 _Parallax_Heightmap_ST; float _Parallax_Heightmap_Scale; float _Parallax_Heightmap_Bias; #endif // _PARALLAX_HEIGHTMAP #if defined(_PARALLAX_HEIGHTMAP_RAY_MARCHING) float _Parallax_Heightmap_Ray_Marching_Steps; #endif // _PARALLAX_HEIGHTMAP_RAY_MARCHING #define DECAL_UV_MODE_REPEAT 0 #define DECAL_UV_MODE_MIRROR 1 #define DECAL_UV_MODE_CLAMP 2 #define DECAL_MIX_MODE_ALPHA_BLEND 0 #define DECAL_MIX_MODE_MULTIPLY 1 #define DECAL_MIX_MODE_ADD_PRODUCT 2 #if defined(_DECAL0) float4 _Decal0_Color; texture2D _Decal0_MainTex; float4 _Decal0_MainTex_ST; float _Decal0_Opacity; int _Decal0_UV_Mode; int _Decal0_UV_Channel; int _Decal0_Mix_Mode; #if defined(_DECAL0_ROTATION) float _Decal0_Rotation; #endif // _DECAL0_ROTATION #if defined(_DECAL0_MASK) texture2D _Decal0_Mask; float4 _Decal0_Mask_ST; int _Decal0_Mask_UV_Channel; #endif // _DECAL0_MASK #if defined(_DECAL0_METALLIC_GLOSS) texture2D _Decal0_Metallic_Gloss; float4 _Decal0_Metallic_Gloss_ST; #endif // _DECAL0_METALLIC_GLOSS #endif // _DECAL0 #if defined(_DECAL1) float4 _Decal1_Color; texture2D _Decal1_MainTex; float4 _Decal1_MainTex_ST; float _Decal1_Opacity; int _Decal1_UV_Mode; int _Decal1_UV_Channel; int _Decal1_Mix_Mode; #if defined(_DECAL1_ROTATION) float _Decal1_Rotation; #endif // _DECAL1_ROTATION #if defined(_DECAL1_MASK) texture2D _Decal1_Mask; float4 _Decal1_Mask_ST; int _Decal1_Mask_UV_Channel; #endif // _DECAL1_MASK #if defined(_DECAL1_METALLIC_GLOSS) texture2D _Decal1_Metallic_Gloss; float4 _Decal1_Metallic_Gloss_ST; #endif // _DECAL1_METALLIC_GLOSS #endif // _DECAL1 #if defined(_DECAL2) float4 _Decal2_Color; texture2D _Decal2_MainTex; float4 _Decal2_MainTex_ST; float _Decal2_Opacity; int _Decal2_UV_Mode; int _Decal2_UV_Channel; int _Decal2_Mix_Mode; #if defined(_DECAL2_ROTATION) float _Decal2_Rotation; #endif // _DECAL2_ROTATION #if defined(_DECAL2_MASK) texture2D _Decal2_Mask; float4 _Decal2_Mask_ST; int _Decal2_Mask_UV_Channel; #endif // _DECAL2_MASK #if defined(_DECAL2_METALLIC_GLOSS) texture2D _Decal2_Metallic_Gloss; float4 _Decal2_Metallic_Gloss_ST; #endif // _DECAL2_METALLIC_GLOSS #endif // _DECAL2 #if defined(_DECAL3) float4 _Decal3_Color; texture2D _Decal3_MainTex; float4 _Decal3_MainTex_ST; float _Decal3_Opacity; int _Decal3_UV_Mode; int _Decal3_UV_Channel; int _Decal3_Mix_Mode; #if defined(_DECAL3_ROTATION) float _Decal3_Rotation; #endif // _DECAL3_ROTATION #if defined(_DECAL3_MASK) texture2D _Decal3_Mask; float4 _Decal3_Mask_ST; int _Decal3_Mask_UV_Channel; #endif // _DECAL3_MASK #if defined(_DECAL3_METALLIC_GLOSS) texture2D _Decal3_Metallic_Gloss; float4 _Decal3_Metallic_Gloss_ST; #endif // _DECAL3_METALLIC_GLOSS #endif // _DECAL3 #define MATCAP_MODE_REPLACE 0 #define MATCAP_MODE_ADD 1 #define MATCAP_MODE_MULTIPLY 2 #define MATCAP_MODE_SUBTRACT 3 #define MATCAP_MODE_ADD_PRODUCT 4 #if defined(_MATCAP0) texture2D _Matcap0; float _Matcap0_Strength; int _Matcap0_Mode; float _Matcap0_Invert; #if defined(_MATCAP0_QUANTIZATION) float _Matcap0_Quantization_Steps; #endif // _MATCAP0_QUANTIZATION #if defined(_MATCAP0_MASK) texture2D _Matcap0_Mask; float4 _Matcap0_Mask_ST; #endif // _MATCAP0_MASK #endif // _MATCAP0 #if defined(_MATCAP1) texture2D _Matcap1; float _Matcap1_Strength; int _Matcap1_Mode; float _Matcap1_Invert; #if defined(_MATCAP1_QUANTIZATION) float _Matcap1_Quantization_Steps; #endif // _MATCAP1_QUANTIZATION #if defined(_MATCAP1_MASK) texture2D _Matcap1_Mask; float4 _Matcap1_Mask_ST; #endif // _MATCAP1_MASK #endif // _MATCAP1 #if defined(_RIM_LIGHTING0) float4 _Rim_Lighting0_Color; float _Rim_Lighting0_Center; float _Rim_Lighting0_Blur; int _Rim_Lighting0_Mode; #if defined(_RIM_LIGHTING0_QUANTIZATION) float _Rim_Lighting0_Quantization_Steps; #endif // _RIM_LIGHTING0_QUANTIZATION #if defined(_RIM_LIGHTING0_MASK) texture2D _Rim_Lighting0_Mask; float4 _Rim_Lighting0_Mask_ST; #endif // _RIM_LIGHTING0_MASK #endif // _RIM_LIGHTING0 #if defined(_VERTEX_DEFORMATION) float _Vertex_Deformation_Slot_0_Enabled; int _Vertex_Deformation_Slot_0_Opcode; float _Vertex_Deformation_Slot_0_Float_0; float _Vertex_Deformation_Slot_0_Float_1; float _Vertex_Deformation_Slot_0_Float_2; float _Vertex_Deformation_Slot_0_Float_3; float4 _Vertex_Deformation_Slot_0_Vector_0; float4 _Vertex_Deformation_Slot_0_Vector_1; float4 _Vertex_Deformation_Slot_0_Vector_2; float4 _Vertex_Deformation_Slot_0_Vector_3; float _Vertex_Deformation_Slot_1_Enabled; int _Vertex_Deformation_Slot_1_Opcode; float _Vertex_Deformation_Slot_1_Float_0; float _Vertex_Deformation_Slot_1_Float_1; float _Vertex_Deformation_Slot_1_Float_2; float _Vertex_Deformation_Slot_1_Float_3; float4 _Vertex_Deformation_Slot_1_Vector_0; float4 _Vertex_Deformation_Slot_1_Vector_1; float4 _Vertex_Deformation_Slot_1_Vector_2; float4 _Vertex_Deformation_Slot_1_Vector_3; float _Vertex_Deformation_Slot_2_Enabled; int _Vertex_Deformation_Slot_2_Opcode; float _Vertex_Deformation_Slot_2_Float_0; float _Vertex_Deformation_Slot_2_Float_1; float _Vertex_Deformation_Slot_2_Float_2; float _Vertex_Deformation_Slot_2_Float_3; float4 _Vertex_Deformation_Slot_2_Vector_0; float4 _Vertex_Deformation_Slot_2_Vector_1; float4 _Vertex_Deformation_Slot_2_Vector_2; float4 _Vertex_Deformation_Slot_2_Vector_3; float _Vertex_Deformation_Slot_3_Enabled; int _Vertex_Deformation_Slot_3_Opcode; float _Vertex_Deformation_Slot_3_Float_0; float _Vertex_Deformation_Slot_3_Float_1; float _Vertex_Deformation_Slot_3_Float_2; float _Vertex_Deformation_Slot_3_Float_3; float4 _Vertex_Deformation_Slot_3_Vector_0; float4 _Vertex_Deformation_Slot_3_Vector_1; float4 _Vertex_Deformation_Slot_3_Vector_2; float4 _Vertex_Deformation_Slot_3_Vector_3; float _Vertex_Deformation_Slot_4_Enabled; int _Vertex_Deformation_Slot_4_Opcode; float _Vertex_Deformation_Slot_4_Float_0; float _Vertex_Deformation_Slot_4_Float_1; float _Vertex_Deformation_Slot_4_Float_2; float _Vertex_Deformation_Slot_4_Float_3; float4 _Vertex_Deformation_Slot_4_Vector_0; float4 _Vertex_Deformation_Slot_4_Vector_1; float4 _Vertex_Deformation_Slot_4_Vector_2; float4 _Vertex_Deformation_Slot_4_Vector_3; float _Vertex_Deformation_Slot_5_Enabled; int _Vertex_Deformation_Slot_5_Opcode; float _Vertex_Deformation_Slot_5_Float_0; float _Vertex_Deformation_Slot_5_Float_1; float _Vertex_Deformation_Slot_5_Float_2; float _Vertex_Deformation_Slot_5_Float_3; float4 _Vertex_Deformation_Slot_5_Vector_0; float4 _Vertex_Deformation_Slot_5_Vector_1; float4 _Vertex_Deformation_Slot_5_Vector_2; float4 _Vertex_Deformation_Slot_5_Vector_3; float _Vertex_Deformation_Slot_6_Enabled; int _Vertex_Deformation_Slot_6_Opcode; float _Vertex_Deformation_Slot_6_Float_0; float _Vertex_Deformation_Slot_6_Float_1; float _Vertex_Deformation_Slot_6_Float_2; float _Vertex_Deformation_Slot_6_Float_3; float4 _Vertex_Deformation_Slot_6_Vector_0; float4 _Vertex_Deformation_Slot_6_Vector_1; float4 _Vertex_Deformation_Slot_6_Vector_2; float4 _Vertex_Deformation_Slot_6_Vector_3; float _Vertex_Deformation_Slot_7_Enabled; int _Vertex_Deformation_Slot_7_Opcode; float _Vertex_Deformation_Slot_7_Float_0; float _Vertex_Deformation_Slot_7_Float_1; float _Vertex_Deformation_Slot_7_Float_2; float _Vertex_Deformation_Slot_7_Float_3; float4 _Vertex_Deformation_Slot_7_Vector_0; float4 _Vertex_Deformation_Slot_7_Vector_1; float4 _Vertex_Deformation_Slot_7_Vector_2; float4 _Vertex_Deformation_Slot_7_Vector_3; float _Vertex_Deformation_Slot_8_Enabled; int _Vertex_Deformation_Slot_8_Opcode; float _Vertex_Deformation_Slot_8_Float_0; float _Vertex_Deformation_Slot_8_Float_1; float _Vertex_Deformation_Slot_8_Float_2; float _Vertex_Deformation_Slot_8_Float_3; float4 _Vertex_Deformation_Slot_8_Vector_0; float4 _Vertex_Deformation_Slot_8_Vector_1; float4 _Vertex_Deformation_Slot_8_Vector_2; float4 _Vertex_Deformation_Slot_8_Vector_3; float _Vertex_Deformation_Slot_9_Enabled; int _Vertex_Deformation_Slot_9_Opcode; float _Vertex_Deformation_Slot_9_Float_0; float _Vertex_Deformation_Slot_9_Float_1; float _Vertex_Deformation_Slot_9_Float_2; float _Vertex_Deformation_Slot_9_Float_3; float4 _Vertex_Deformation_Slot_9_Vector_0; float4 _Vertex_Deformation_Slot_9_Vector_1; float4 _Vertex_Deformation_Slot_9_Vector_2; float4 _Vertex_Deformation_Slot_9_Vector_3; float _Vertex_Deformation_Slot_10_Enabled; int _Vertex_Deformation_Slot_10_Opcode; float _Vertex_Deformation_Slot_10_Float_0; float _Vertex_Deformation_Slot_10_Float_1; float _Vertex_Deformation_Slot_10_Float_2; float _Vertex_Deformation_Slot_10_Float_3; float4 _Vertex_Deformation_Slot_10_Vector_0; float4 _Vertex_Deformation_Slot_10_Vector_1; float4 _Vertex_Deformation_Slot_10_Vector_2; float4 _Vertex_Deformation_Slot_10_Vector_3; float _Vertex_Deformation_Slot_11_Enabled; int _Vertex_Deformation_Slot_11_Opcode; float _Vertex_Deformation_Slot_11_Float_0; float _Vertex_Deformation_Slot_11_Float_1; float _Vertex_Deformation_Slot_11_Float_2; float _Vertex_Deformation_Slot_11_Float_3; float4 _Vertex_Deformation_Slot_11_Vector_0; float4 _Vertex_Deformation_Slot_11_Vector_1; float4 _Vertex_Deformation_Slot_11_Vector_2; float4 _Vertex_Deformation_Slot_11_Vector_3; float _Vertex_Deformation_Slot_12_Enabled; int _Vertex_Deformation_Slot_12_Opcode; float _Vertex_Deformation_Slot_12_Float_0; float _Vertex_Deformation_Slot_12_Float_1; float _Vertex_Deformation_Slot_12_Float_2; float _Vertex_Deformation_Slot_12_Float_3; float4 _Vertex_Deformation_Slot_12_Vector_0; float4 _Vertex_Deformation_Slot_12_Vector_1; float4 _Vertex_Deformation_Slot_12_Vector_2; float4 _Vertex_Deformation_Slot_12_Vector_3; float _Vertex_Deformation_Slot_13_Enabled; int _Vertex_Deformation_Slot_13_Opcode; float _Vertex_Deformation_Slot_13_Float_0; float _Vertex_Deformation_Slot_13_Float_1; float _Vertex_Deformation_Slot_13_Float_2; float _Vertex_Deformation_Slot_13_Float_3; float4 _Vertex_Deformation_Slot_13_Vector_0; float4 _Vertex_Deformation_Slot_13_Vector_1; float4 _Vertex_Deformation_Slot_13_Vector_2; float4 _Vertex_Deformation_Slot_13_Vector_3; float _Vertex_Deformation_Slot_14_Enabled; int _Vertex_Deformation_Slot_14_Opcode; float _Vertex_Deformation_Slot_14_Float_0; float _Vertex_Deformation_Slot_14_Float_1; float _Vertex_Deformation_Slot_14_Float_2; float _Vertex_Deformation_Slot_14_Float_3; float4 _Vertex_Deformation_Slot_14_Vector_0; float4 _Vertex_Deformation_Slot_14_Vector_1; float4 _Vertex_Deformation_Slot_14_Vector_2; float4 _Vertex_Deformation_Slot_14_Vector_3; float _Vertex_Deformation_Slot_15_Enabled; int _Vertex_Deformation_Slot_15_Opcode; float _Vertex_Deformation_Slot_15_Float_0; float _Vertex_Deformation_Slot_15_Float_1; float _Vertex_Deformation_Slot_15_Float_2; float _Vertex_Deformation_Slot_15_Float_3; float4 _Vertex_Deformation_Slot_15_Vector_0; float4 _Vertex_Deformation_Slot_15_Vector_1; float4 _Vertex_Deformation_Slot_15_Vector_2; float4 _Vertex_Deformation_Slot_15_Vector_3; #endif // _VERTEX_DEFORMATION #endif // __GLOBALS_INC