|
|
- Shader "Paco/NormalDirection/Vertex" {
- Properties {
- _Positive ("Positive", Color) = (0.737931,1,0,1)
- _Negative ("Negative", Color) = (0,0.9044118,0.8295637,1)
- [MaterialToggle] _UseNegative ("Use Negative", Float ) = 0
- [MaterialToggle] _XZAxis ("X / Z Axis", Float ) = 0
- _SmoothLight ("Smooth Light", Range(0, 1)) = 1
- [MaterialToggle] _ShowNormalDirection ("Show Normal Direction", Float ) = 0.475862
- }
- SubShader {
- Tags {
- "RenderType"="Opaque"
- }
- Pass {
- Name "FORWARD"
- Tags {
- "LightMode"="ForwardBase"
- }
-
-
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #define UNITY_PASS_FORWARDBASE
- #include "UnityCG.cginc"
- #pragma multi_compile_fwdbase_fullshadows
- #pragma multi_compile_fog
- #pragma only_renderers d3d9 d3d11 glcore gles
- #pragma target 3.0
- uniform float4 _Negative;
- uniform fixed _ShowNormalDirection;
- uniform fixed _XZAxis;
- uniform float4 _Positive;
- uniform fixed _UseNegative;
- uniform float _SmoothLight;
- struct VertexInput {
- float4 vertex : POSITION;
- float3 normal : NORMAL;
- float4 vertexColor : COLOR;
- };
- struct VertexOutput {
- float4 pos : SV_POSITION;
- float3 normalDir : TEXCOORD0;
- float4 vertexColor : COLOR;
- UNITY_FOG_COORDS(1)
- };
- VertexOutput vert (VertexInput v) {
- VertexOutput o = (VertexOutput)0;
- o.vertexColor = v.vertexColor;
- o.normalDir = UnityObjectToWorldNormal(v.normal);
- o.pos = UnityObjectToClipPos( v.vertex );
- UNITY_TRANSFER_FOG(o,o.pos);
- return o;
- }
- float4 frag(VertexOutput i) : COLOR {
- i.normalDir = normalize(i.normalDir);
- float3 normalDirection = i.normalDir;
- ////// Lighting:
- float2 node_2973 = normalDirection.rb;
- float _XZAxis_var = lerp( node_2973.r, node_2973.g, _XZAxis );
- float node_8533 = (_SmoothLight*48.0+2.0);
- float3 NormalDir = normalDirection;
- float3 finalColor = lerp( lerp(i.vertexColor.rgb,saturate(( lerp(_Negative.rgb,_Positive.rgb,lerp(1.0,saturate(((100.0*_XZAxis_var)*0.5+0.5)),_UseNegative)) > 0.5 ? (1.0-(1.0-2.0*(lerp(_Negative.rgb,_Positive.rgb,lerp(1.0,saturate(((100.0*_XZAxis_var)*0.5+0.5)),_UseNegative))-0.5))*(1.0-i.vertexColor.rgb)) : (2.0*lerp(_Negative.rgb,_Positive.rgb,lerp(1.0,saturate(((100.0*_XZAxis_var)*0.5+0.5)),_UseNegative))*i.vertexColor.rgb) )),floor(saturate(lerp(_XZAxis_var,abs(_XZAxis_var),_UseNegative)) * node_8533) / (node_8533 - 1)), NormalDir, _ShowNormalDirection );
- fixed4 finalRGBA = fixed4(finalColor,1);
- UNITY_APPLY_FOG(i.fogCoord, finalRGBA);
- return finalRGBA;
- }
- ENDCG
- }
- }
- FallBack "Diffuse"
- }
|