【SimpleReflection】
取法线的x、y作为reflection-map的uv。
Shader "Custom/SimpleReflection" { Properties { _MainTex ("Base (RGB)", 2D) = "White" {} _ReflectionMap ("ReflectionMap", 2D) = "White" {} } SubShader { Lod 100 Tags { "Queue" = "Transparent"} Pass { Blend SrcAlpha OneMinusSrcAlpha CGPROGRAM #pragma vertex Vert #pragma fragment Frag #include "UnityCG.cginc" sampler2D _MainTex; sampler2D _ReflectionMap; struct V2F { fixed4 pos:SV_POSITION; fixed2 uv:TEXCOORD0; fixed2 uv2:TEXCOORD1; }; V2F Vert(appdata_full v) { V2F output; output.pos = mul (UNITY_MATRIX_MVP, v.vertex); output.uv = v.texcoord; output.uv2 = mul(UNITY_MATRIX_IT_MV, float4(v.normal, 0)).xy/2+0.5; return output; } half4 Frag(V2F i):COLOR { return tex2D(_MainTex,i.uv) + tex2D(_ReflectionMap,i.uv2); } ENDCG } } FallBack "VertexLit" }
时间: 2024-11-26 04:37:40