@@ -34,6 +34,10 @@ DEFINES_START
34
34
#pragma shader_feature_local _NORMALMAP
35
35
DEFINES_END
36
36
37
+ DEFINES_SHADOWCASTER_START
38
+ #pragma skip_variants _MASKMAP
39
+ #pragma skip_variants _NORMALMAP
40
+ DEFINES_SHADOWCASTER_END
37
41
38
42
CBUFFER_START
39
43
half4 _Color;
@@ -75,39 +79,46 @@ CODE_START
75
79
half3 normalTS_X = half3(0,0,1), normalTS_Y = half3(0,0,1), normalTS_Z = half3(0,0,1);
76
80
half4 maskMap_X = 1, maskMap_Y = 1, maskMap_Z = 1;
77
81
82
+ float2 dxX = ddx(uvX);
83
+ float2 dyX = ddy(uvX);
84
+ float2 dxY = ddx(uvY);
85
+ float2 dyY = ddy(uvY);
86
+ float2 dxZ = ddx(uvZ);
87
+ float2 dyZ = ddy(uvZ);
88
+
78
89
UNITY_BRANCH
79
90
if (weight.x > 0)
80
91
{
81
- albedo_X = SAMPLE_TEXTURE2D (_MainTex, sampler_MainTex, uvX);
92
+ albedo_X = SAMPLE_TEXTURE2D_GRAD (_MainTex, sampler_MainTex, uvX, dxX, dyX );
82
93
#ifdef _NORMALMAP
83
- normalTS_X = UnpackNormalScale(SAMPLE_TEXTURE2D (_BumpMap, sampler_BumpMap, uvX), _BumpScale);
94
+ normalTS_X = UnpackNormalScale(SAMPLE_TEXTURE2D_GRAD (_BumpMap, sampler_BumpMap, uvX, dxX, dyX ), _BumpScale);
84
95
#endif
85
96
#ifdef _MASKMAP
86
- maskMap_X = SAMPLE_TEXTURE2D (_MaskMap, sampler_MaskMap, uvX);
97
+ maskMap_X = SAMPLE_TEXTURE2D_GRAD (_MaskMap, sampler_MaskMap, uvX, dxX, dyX );
87
98
#endif
88
99
}
89
100
90
101
UNITY_BRANCH
91
102
if (weight.y > 0)
92
103
{
93
- albedo_Y = SAMPLE_TEXTURE2D (_MainTex, sampler_MainTex, uvY);
104
+ albedo_Y = SAMPLE_TEXTURE2D_GRAD (_MainTex, sampler_MainTex, uvY, dxY, dyY );
94
105
#ifdef _NORMALMAP
95
- normalTS_Y = UnpackNormalScale(SAMPLE_TEXTURE2D (_BumpMap, sampler_BumpMap, uvY), _BumpScale);
106
+ normalTS_Y = UnpackNormalScale(SAMPLE_TEXTURE2D_GRAD (_BumpMap, sampler_BumpMap, uvY, dxY, dyY ), _BumpScale);
96
107
#endif
97
108
#ifdef _MASKMAP
98
- maskMap_Y = SAMPLE_TEXTURE2D (_MaskMap, sampler_MaskMap, uvY);
109
+ maskMap_Y = SAMPLE_TEXTURE2D_GRAD (_MaskMap, sampler_MaskMap, uvY, dxY, dyY );
99
110
#endif
100
111
}
101
112
102
113
UNITY_BRANCH
103
114
if (weight.z > 0)
104
115
{
105
- albedo_Z = SAMPLE_TEXTURE2D (_MainTex, sampler_MainTex, uvZ);
116
+ albedo_Z = SAMPLE_TEXTURE2D_GRAD (_MainTex, sampler_MainTex, uvZ, dxZ, dyZ );
106
117
#ifdef _NORMALMAP
107
- normalTS_Z = UnpackNormalScale(SAMPLE_TEXTURE2D (_BumpMap, sampler_BumpMap, uvZ), _BumpScale);
118
+ normalTS_Z = UnpackNormalScale(SAMPLE_TEXTURE2D_GRAD (_BumpMap, sampler_BumpMap, uvZ, dxZ, dyZ ), _BumpScale);
108
119
#endif
109
120
#ifdef _MASKMAP
110
- maskMap_Z = SAMPLE_TEXTURE2D (_MaskMap, sampler_MaskMap, uvZ);
121
+ maskMap_Z = SAMPLE_TEXTURE2D_GRAD (_MaskMap, sampler_MaskMap, uvZ, dxZ, dyZ );
111
122
#endif
112
123
}
113
124
0 commit comments