#ifndef UNIVERSAL_TERRAIN_LIT_INPUT_INCLUDED #define UNIVERSAL_TERRAIN_LIT_INPUT_INCLUDED #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl" CBUFFER_START(_Terrain) half _NormalScale0, _NormalScale1, _NormalScale2, _NormalScale3; half _Metallic0, _Metallic1, _Metallic2, _Metallic3; half _Smoothness0, _Smoothness1, _Smoothness2, _Smoothness3; half4 _DiffuseRemapScale0, _DiffuseRemapScale1, _DiffuseRemapScale2, _DiffuseRemapScale3; half4 _MaskMapRemapOffset0, _MaskMapRemapOffset1, _MaskMapRemapOffset2, _MaskMapRemapOffset3; half4 _MaskMapRemapScale0, _MaskMapRemapScale1, _MaskMapRemapScale2, _MaskMapRemapScale3; float4 _Control_ST; float4 _Control_TexelSize; half _DiffuseHasAlpha0, _DiffuseHasAlpha1, _DiffuseHasAlpha2, _DiffuseHasAlpha3; half _LayerHasMask0, _LayerHasMask1, _LayerHasMask2, _LayerHasMask3; half4 _Splat0_ST, _Splat1_ST, _Splat2_ST, _Splat3_ST; half _HeightTransition; CBUFFER_END TEXTURE2D(_Control); SAMPLER(sampler_Control); TEXTURE2D(_Splat0); SAMPLER(sampler_Splat0); TEXTURE2D(_Splat1); TEXTURE2D(_Splat2); TEXTURE2D(_Splat3); #ifdef _NORMALMAP TEXTURE2D(_Normal0); SAMPLER(sampler_Normal0); TEXTURE2D(_Normal1); TEXTURE2D(_Normal2); TEXTURE2D(_Normal3); #endif #ifdef _MASKMAP TEXTURE2D(_Mask0); SAMPLER(sampler_Mask0); TEXTURE2D(_Mask1); TEXTURE2D(_Mask2); TEXTURE2D(_Mask3); #endif TEXTURE2D(_MainTex); SAMPLER(sampler_MainTex); TEXTURE2D(_SpecGlossMap); SAMPLER(sampler_SpecGlossMap); CBUFFER_START(UnityPerMaterial) float4 _MainTex_ST; half4 _BaseColor; half _Cutoff; CBUFFER_END TEXTURE2D(_MetallicTex); SAMPLER(sampler_MetallicTex); half4 SampleMetallicSpecGloss(float2 uv, half albedoAlpha) { half4 specGloss; specGloss = SAMPLE_TEXTURE2D(_MetallicTex, sampler_MetallicTex, uv); specGloss.a = albedoAlpha; return specGloss; } inline void InitializeStandardLitSurfaceData(float2 uv, out SurfaceData outSurfaceData) { half4 albedoSmoothness = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, uv); outSurfaceData.alpha = 1; half4 specGloss = SampleMetallicSpecGloss(uv, albedoSmoothness.a); outSurfaceData.albedo = albedoSmoothness.rgb; outSurfaceData.metallic = specGloss.r; outSurfaceData.specular = half3(0.0h, 0.0h, 0.0h); outSurfaceData.smoothness = specGloss.a; outSurfaceData.normalTS = SampleNormal(uv, TEXTURE2D_ARGS(_BumpMap, sampler_BumpMap)); outSurfaceData.occlusion = 1; outSurfaceData.emission = 0; } #endif