Advertisement
Guest User

Untitled

a guest
Feb 16th, 2014
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.61 KB | None | 0 0
  1. // Shader created with Shader Forge Beta 0.24
  2. // Shader Forge (c) Joachim Holmer - http://www.acegikmo.com/shaderforge/
  3. // Note: Manually altering this data may prevent you from opening it in Shader Forge
  4. /*SF_DATA;ver:0.24;sub:START;pass:START;ps:flbk:,lico:1,lgpr:1,nrmq:1,limd:1,uamb:True,mssp:True,lmpd:False,lprd:False,enco:False,frtr:True,vitr:True,dbil:False,rmgx:True,hqsc:True,hqlp:False,blpr:0,bsrc:0,bdst:0,culm:0,dpts:2,wrdp:True,ufog:True,aust:True,igpj:False,qofs:0,qpre:1,rntp:1,fgom:False,fgoc:False,fgod:False,fgor:False,fgmd:0,fgcr:0.5,fgcg:0.5,fgcb:0.5,fgca:1,fgde:0.01,fgrn:0,fgrf:300,ofsf:0,ofsu:0;n:type:ShaderForge.SFN_Final,id:1,x:32754,y:32715|diff-2-OUT;n:type:ShaderForge.SFN_Lerp,id:2,x:33061,y:32740|A-4-RGB,B-6-RGB,T-3-OUT;n:type:ShaderForge.SFN_Slider,id:3,x:33259,y:32851,ptlb:Crossfade,min:0,cur:0.406015,max:1;n:type:ShaderForge.SFN_Tex2d,id:4,x:33296,y:32461,ptlb:Primary,tex:b66bceaf0cc0ace4e9bdc92f14bba709,ntxv:0,isnm:False;n:type:ShaderForge.SFN_Tex2d,id:6,x:33296,y:32649,ptlb:Secondary,tex:eb6f3d7f90ac0d14186a8ea5a44e1b3e,ntxv:0,isnm:False;proporder:3-4-6;pass:END;sub:END;*/
  5.  
  6. Shader "Shader Forge/NewShader" {
  7.     Properties {
  8.         _Crossfade ("Crossfade", Range(0, 1)) = 0.406015
  9.         _Primary ("Primary", 2D) = "white" {}
  10.         _Secondary ("Secondary", 2D) = "white" {}
  11.     }
  12.     SubShader {
  13.         Tags {
  14.             "RenderType"="Opaque"
  15.         }
  16.         Pass {
  17.             Name "ForwardBase"
  18.             Tags {
  19.                 "LightMode"="ForwardBase"
  20.             }
  21.            
  22.            
  23.             CGPROGRAM
  24.             #pragma vertex vert
  25.             #pragma fragment frag
  26.             #define UNITY_PASS_FORWARDBASE
  27.             #include "UnityCG.cginc"
  28.             #include "AutoLight.cginc"
  29.             #pragma multi_compile_fwdbase_fullshadows
  30.             #pragma exclude_renderers xbox360 ps3 flash
  31.             #pragma target 3.0
  32.             uniform float4 _LightColor0;
  33.             uniform float _Crossfade;
  34.             uniform sampler2D _Primary; uniform float4 _Primary_ST;
  35.             uniform sampler2D _Secondary; uniform float4 _Secondary_ST;
  36.             struct VertexInput {
  37.                 float4 vertex : POSITION;
  38.                 float3 normal : NORMAL;
  39.                 float4 uv0 : TEXCOORD0;
  40.             };
  41.             struct VertexOutput {
  42.                 float4 pos : SV_POSITION;
  43.                 float4 uv0 : TEXCOORD0;
  44.                 float4 posWorld : TEXCOORD1;
  45.                 float3 normalDir : TEXCOORD2;
  46.                 LIGHTING_COORDS(3,4)
  47.             };
  48.             VertexOutput vert (VertexInput v) {
  49.                 VertexOutput o;
  50.                 o.uv0 = v.uv0;
  51.                 o.normalDir = mul(float4(v.normal,0), _World2Object).xyz;
  52.                 o.posWorld = mul(_Object2World, v.vertex);
  53.                 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  54.                 TRANSFER_VERTEX_TO_FRAGMENT(o)
  55.                 return o;
  56.             }
  57.             fixed4 frag(VertexOutput i) : COLOR {
  58.                 i.normalDir = normalize(i.normalDir);
  59. /////// Normals:
  60.                 float3 normalDirection =  i.normalDir;
  61.                 float3 lightDirection = normalize(_WorldSpaceLightPos0.xyz);
  62. ////// Lighting:
  63.                 float attenuation = LIGHT_ATTENUATION(i);
  64.                 float3 attenColor = attenuation * _LightColor0.xyz;
  65. /////// Diffuse:
  66.                 float NdotL = dot( normalDirection, lightDirection );
  67.                 float3 diffuse = max( 0.0, NdotL) * attenColor + UNITY_LIGHTMODEL_AMBIENT.xyz;
  68.                 float3 finalColor = 0;
  69.                 float3 diffuseLight = diffuse;
  70.                 float2 node_10 = i.uv0;
  71.                 finalColor += diffuseLight * lerp(tex2D(_Primary,TRANSFORM_TEX(node_10.rg, _Primary)).rgb,tex2D(_Secondary,TRANSFORM_TEX(node_10.rg, _Secondary)).rgb,_Crossfade);
  72. /// Final Color:
  73.                 return fixed4(finalColor,1);
  74.             }
  75.             ENDCG
  76.         }
  77.         Pass {
  78.             Name "ForwardAdd"
  79.             Tags {
  80.                 "LightMode"="ForwardAdd"
  81.             }
  82.             Blend One One
  83.            
  84.            
  85.             Fog { Color (0,0,0,0) }
  86.             CGPROGRAM
  87.             #pragma vertex vert
  88.             #pragma fragment frag
  89.             #define UNITY_PASS_FORWARDADD
  90.             #include "UnityCG.cginc"
  91.             #include "AutoLight.cginc"
  92.             #pragma multi_compile_fwdadd_fullshadows
  93.             #pragma exclude_renderers xbox360 ps3 flash
  94.             #pragma target 3.0
  95.             uniform float4 _LightColor0;
  96.             uniform float _Crossfade;
  97.             uniform sampler2D _Primary; uniform float4 _Primary_ST;
  98.             uniform sampler2D _Secondary; uniform float4 _Secondary_ST;
  99.             struct VertexInput {
  100.                 float4 vertex : POSITION;
  101.                 float3 normal : NORMAL;
  102.                 float4 uv0 : TEXCOORD0;
  103.             };
  104.             struct VertexOutput {
  105.                 float4 pos : SV_POSITION;
  106.                 float4 uv0 : TEXCOORD0;
  107.                 float4 posWorld : TEXCOORD1;
  108.                 float3 normalDir : TEXCOORD2;
  109.                 LIGHTING_COORDS(3,4)
  110.             };
  111.             VertexOutput vert (VertexInput v) {
  112.                 VertexOutput o;
  113.                 o.uv0 = v.uv0;
  114.                 o.normalDir = mul(float4(v.normal,0), _World2Object).xyz;
  115.                 o.posWorld = mul(_Object2World, v.vertex);
  116.                 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  117.                 TRANSFER_VERTEX_TO_FRAGMENT(o)
  118.                 return o;
  119.             }
  120.             fixed4 frag(VertexOutput i) : COLOR {
  121.                 i.normalDir = normalize(i.normalDir);
  122. /////// Normals:
  123.                 float3 normalDirection =  i.normalDir;
  124.                 float3 lightDirection = normalize(lerp(_WorldSpaceLightPos0.xyz, _WorldSpaceLightPos0.xyz - i.posWorld.xyz,_WorldSpaceLightPos0.w));
  125. ////// Lighting:
  126.                 float attenuation = LIGHT_ATTENUATION(i);
  127.                 float3 attenColor = attenuation * _LightColor0.xyz;
  128. /////// Diffuse:
  129.                 float NdotL = dot( normalDirection, lightDirection );
  130.                 float3 diffuse = max( 0.0, NdotL) * attenColor;
  131.                 float3 finalColor = 0;
  132.                 float3 diffuseLight = diffuse;
  133.                 float2 node_11 = i.uv0;
  134.                 finalColor += diffuseLight * lerp(tex2D(_Primary,TRANSFORM_TEX(node_11.rg, _Primary)).rgb,tex2D(_Secondary,TRANSFORM_TEX(node_11.rg, _Secondary)).rgb,_Crossfade);
  135. /// Final Color:
  136.                 return fixed4(finalColor * 1,0);
  137.             }
  138.             ENDCG
  139.         }
  140.     }
  141.     FallBack "Diffuse"
  142.     CustomEditor "ShaderForgeMaterialInspector"
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement