forked from BilalY/Rasagar
96 lines
2.1 KiB
Plaintext
96 lines
2.1 KiB
Plaintext
Shader "Hidden/TerrainTools/MeshUtility"
|
|
{
|
|
Properties
|
|
{
|
|
_MainTex ( "Texture", any ) = "" {}
|
|
}
|
|
|
|
SubShader
|
|
{
|
|
ZTest LEQUAL Cull OFF ZWrite ON
|
|
|
|
HLSLINCLUDE
|
|
|
|
#include "UnityCG.cginc"
|
|
|
|
sampler2D _MainTex;
|
|
|
|
struct appdata_t
|
|
{
|
|
float4 vertex : POSITION;
|
|
float2 texcoord : TEXCOORD0;
|
|
};
|
|
|
|
float4x4 _Matrix_M;
|
|
float4x4 _Matrix_MV;
|
|
float4x4 _Matrix_MVP;
|
|
|
|
ENDHLSL
|
|
|
|
Pass // render mesh depth to rendertexture
|
|
{
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
|
|
struct v2f
|
|
{
|
|
float4 vertex : SV_POSITION;
|
|
float4 worldPos : TEXCOORD1;
|
|
// float4 viewPos : TEXCOORD2;
|
|
};
|
|
|
|
v2f vert( appdata_t v )
|
|
{
|
|
v2f o;
|
|
|
|
float2 b = float2( 0, 1 );
|
|
|
|
o.worldPos = mul( _Matrix_M, float4( v.vertex.xyz, 1 ) ); // world space position
|
|
// o.viewPos = mul( _Matrix_MV, float4( v.vertex.xyz, 1 ) ); // view ( camera ) space position
|
|
o.vertex = mul( _Matrix_MVP, float4( v.vertex.xyz, 1 ) ); // clip space position
|
|
|
|
return o;
|
|
}
|
|
|
|
float4 frag( v2f i ) : SV_Target
|
|
{
|
|
return i.worldPos.y;
|
|
// return PackHeightmap( i.viewPos.z );
|
|
// return PackHeightmap( i.vertex.z ); // depth
|
|
}
|
|
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass // render mask
|
|
{
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
|
|
struct v2f
|
|
{
|
|
float4 vertex : SV_POSITION;
|
|
};
|
|
|
|
v2f vert( appdata_t v )
|
|
{
|
|
v2f o;
|
|
|
|
o.vertex = mul( _Matrix_MVP, float4( v.vertex.xyz, 1 ) ); // clip space position
|
|
|
|
return o;
|
|
}
|
|
|
|
float4 frag( v2f i ) : SV_Target
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
ENDHLSL
|
|
}
|
|
}
|
|
} |