33
44Shader "Maps SDK/Standard Terrain"
55{
6- Properties
7- {
8- _Color( "Color" , Color ) = (1 ,1 ,1 ,1 )
9- _MainTex0( "Albedo (RGB)" , 2D ) = "white" {}
10- _MainTex1( "Color" , Color ) = (1 ,1 ,1 ,1 )
11- _MainTex2( "Color" , Color ) = (1 ,1 ,1 ,1 )
12- _MainTex3( "Color" , Color ) = (1 ,1 ,1 ,1 )
13- }
14-
156 SubShader
167 {
178 Pass
@@ -83,7 +74,6 @@ Shader "Maps SDK/Standard Terrain"
8374 UNITY_SETUP_INSTANCE_ID (v);
8475
8576 v2f o;
86-
8777 UNITY_INITIALIZE_OUTPUT (v2f, o);
8878 UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO (o);
8979
@@ -104,10 +94,10 @@ Shader "Maps SDK/Standard Terrain"
10494#endif
10595
10696 o.pos = UnityObjectToClipPos (v.vertex);
107- if (_MainTexCount > 0 ) { o.uv = _TexScaleAndOffset[0 ].x * v.uv + _TexScaleAndOffset[0 ].yz; }
108- if (_MainTexCount > 1 ) { o.uv2 = _TexScaleAndOffset[1 ].x * v.uv + _TexScaleAndOffset[1 ].yz; }
109- if (_MainTexCount > 2 ) { o.uv3 = _TexScaleAndOffset[2 ].x * v.uv + _TexScaleAndOffset[2 ].yz; }
110- if (_MainTexCount > 3 ) { o.uv4 = _TexScaleAndOffset[3 ].x * v.uv + _TexScaleAndOffset[3 ].yz; }
97+ if (_MainTexCount > 0 ) { o.uv = _TexScaleAndOffset[0 ].x * v.uv.xy + _TexScaleAndOffset[0 ].yz; }
98+ if (_MainTexCount > 1 ) { o.uv2 = _TexScaleAndOffset[1 ].x * v.uv.xy + _TexScaleAndOffset[1 ].yz; }
99+ if (_MainTexCount > 2 ) { o.uv3 = _TexScaleAndOffset[2 ].x * v.uv.xy + _TexScaleAndOffset[2 ].yz; }
100+ if (_MainTexCount > 3 ) { o.uv4 = _TexScaleAndOffset[3 ].x * v.uv.xy + _TexScaleAndOffset[3 ].yz; }
111101
112102 float3 worldPosition = mul (unity_ObjectToWorld , float4 (v.vertex.xyz, 1.0 )).xyz;
113103 o.worldPosition = worldPosition;
@@ -136,7 +126,6 @@ Shader "Maps SDK/Standard Terrain"
136126 if (_MainTexCount > 1 ) { color = blend (color, tex2D (_MainTex1, i.uv2)); }
137127 if (_MainTexCount > 2 ) { color = blend (color, tex2D (_MainTex2, i.uv3)); }
138128 if (_MainTexCount > 3 ) { color = blend (color, tex2D (_MainTex3, i.uv4)); }
139- color *= _Color;
140129
141130 // Apply contours.
142131#if ENABLE_ELEVATION_TEXTURE && ENABLE_CONTOUR_LINES
@@ -204,6 +193,13 @@ Shader "Maps SDK/Standard Terrain"
204193 {
205194 UNITY_SETUP_INSTANCE_ID (v);
206195
196+ v2f o;
197+ UNITY_INITIALIZE_OUTPUT (v2f, o);
198+ UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO (o);
199+
200+ // Extract skirt indicator from the third item in uv
201+ o.isSkirt = v.uv.z;
202+
207203#if ENABLE_ELEVATION_TEXTURE
208204 float elevationOffset =
209205 CalculateElevationOffset (
@@ -214,12 +210,8 @@ Shader "Maps SDK/Standard Terrain"
214210 v.vertex.y += elevationOffset;
215211#endif
216212
217- v2f o;
218- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO (o);
219-
220213 float3 worldPosition = mul (unity_ObjectToWorld , float4 (v.vertex.xyz, 1.0 )).xyz;
221214 o.worldPosition = worldPosition;
222- o.isSkirt = v.uv.z;
223215
224216 TRANSFER_SHADOW_CASTER_NORMALOFFSET (o)
225217
0 commit comments