Advertisement
Guest User

Untitled

a guest
Oct 17th, 2013
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.59 KB | None | 0 0
  1. // Shader created with Shader Forge Alpha 0.13
  2. // Shader Forge (c) Joachim 'Acegikmo' Holmer
  3. // Note: Manually altering this data may prevent you from opening it in Shader Forge
  4. /*SF_DATA;ver:0.13;sub:START;pass:START;ps:lgpr:1,nrmq:1,limd:3,blpr:0,bsrc:0,bdst:0,culm:0,dpts:2,wrdp:True,uamb:True,ufog:True,aust:True,igpj:False,qofs:0,lico:1,qpre:1,flbk:,rntp:1,lmpd:False;n:type:ShaderForge.SFN_Final,id:1,x:32707,y:32788|diff-2-0,spec-5-0,gloss-8-0,normal-11-2,emission-16-0;n:type:ShaderForge.SFN_Desaturate,id:2,x:32944,y:32640|1-3-2,2-4-0;n:type:ShaderForge.SFN_Tex2d,id:3,x:33117,y:32535,ptlb:Diffuse MAP,tex:3f9d88c99992ae042aa7a60fee77779a;n:type:ShaderForge.SFN_ValueProperty,id:4,x:33117,y:32685,ptlb:Desaturate,v1:-0.2;n:type:ShaderForge.SFN_Multiply,id:5,x:32949,y:32800|1-6-2,2-7-0;n:type:ShaderForge.SFN_Tex2d,id:6,x:33122,y:32762,ptlb:Spec MAP,tex:cbeea5843c5c6a649901d81f0800d655;n:type:ShaderForge.SFN_ValueProperty,id:7,x:33122,y:32904,ptlb:Spec. power,v1:0.6;n:type:ShaderForge.SFN_ComponentMask,id:8,x:33124,y:32962,cc1:0,cc2:4,cc3:4,cc4:4|1-9-0;n:type:ShaderForge.SFN_Add,id:9,x:33294,y:32962|1-10-0,2-13-0;n:type:ShaderForge.SFN_Fresnel,id:10,x:33483,y:32820|1-11-2,2-12-0;n:type:ShaderForge.SFN_Tex2d,id:11,x:33664,y:32739,ptlb:Normal MAP,tex:73dab31bc5e3de7489f179534ea65ed0;n:type:ShaderForge.SFN_ValueProperty,id:12,x:33664,y:32882,ptlb:Fresnel Factor,v1:0.3;n:type:ShaderForge.SFN_Multiply,id:13,x:33483,y:32953|1-14-2,2-15-0;n:type:ShaderForge.SFN_Tex2d,id:14,x:33664,y:32953,ptlb:Gloss MAP,tex:742a9d624f508c44ba690f932a43cf3e;n:type:ShaderForge.SFN_ValueProperty,id:15,x:33664,y:33092,ptlb:Gloss power,v1:1;n:type:ShaderForge.SFN_Multiply,id:16,x:32980,y:33168|1-17-0,2-29-0;n:type:ShaderForge.SFN_Add,id:17,x:33191,y:33168|1-21-0,2-18-0;n:type:ShaderForge.SFN_OneMinus,id:18,x:33368,y:33299|1-22-0;n:type:ShaderForge.SFN_Cubemap,id:19,x:33556,y:33459,ptlb:Sky 1,cube:6d2bf1031fda6c84788161c1f310dd94,pvfc:0;n:type:ShaderForge.SFN_ComponentMask,id:20,x:33545,y:33168,cc1:0,cc2:4,cc3:4,cc4:4|1-23-0;n:type:ShaderForge.SFN_Multiply,id:21,x:33368,y:33168|1-20-0,2-22-0;n:type:ShaderForge.SFN_ValueProperty,id:22,x:33545,y:33329,ptlb:Refl. power,v1:0.4;n:type:ShaderForge.SFN_NormalVector,id:23,x:33730,y:33168,pt:False;n:type:ShaderForge.SFN_Multiply,id:24,x:33368,y:33459|1-19-2,2-25-0;n:type:ShaderForge.SFN_ValueProperty,id:25,x:33556,y:33618,ptlb:Sky 1 strength,v1:0.3;n:type:ShaderForge.SFN_Cubemap,id:26,x:33562,y:33715,ptlb:Sky 2,cube:c367b5d407ed30f4793564d323fd3909,pvfc:0;n:type:ShaderForge.SFN_ValueProperty,id:27,x:33562,y:33891,ptlb:Sky 2 Strength,v1:2;n:type:ShaderForge.SFN_Multiply,id:28,x:33368,y:33779|1-26-2,2-27-0;n:type:ShaderForge.SFN_Multiply,id:29,x:33005,y:33622|1-31-0,2-33-0;n:type:ShaderForge.SFN_Color,id:30,x:33368,y:33618,ptlb:Sky 1 Colour,c1:0.5,c2:0.5,c3:0.5,c4:1;n:type:ShaderForge.SFN_Multiply,id:31,x:33190,y:33523|1-24-0,2-30-0;n:type:ShaderForge.SFN_Color,id:32,x:33368,y:33922,ptlb:Sky 2 Colour,c1:0.5,c2:0.5,c3:0.5,c4:1;n:type:ShaderForge.SFN_Multiply,id:33,x:33177,y:33757|1-28-0,2-32-0;pass:END;sub:END;*/
  5.  
  6. Shader "Shader Forge/Metal_PlayerCube" {
  7. Properties {
  8. _DiffuseMAP ("Diffuse MAP", 2D) = "white" {}
  9. _Desaturate ("Desaturate", Float ) = 0
  10. _SpecMAP ("Spec MAP", 2D) = "white" {}
  11. _Specpower ("Spec. power", Float ) = 0
  12. _NormalMAP ("Normal MAP", 2D) = "bump" {}
  13. _FresnelFactor ("Fresnel Factor", Float ) = 0
  14. _GlossMAP ("Gloss MAP", 2D) = "white" {}
  15. _Glosspower ("Gloss power", Float ) = 0
  16. _Sky1 ("Sky 1", Cube) = "_Skybox" {}
  17. _Reflpower ("Refl. power", Float ) = 0
  18. _Sky1strength ("Sky 1 strength", Float ) = 0
  19. _Sky2 ("Sky 2", Cube) = "_Skybox" {}
  20. _Sky2Strength ("Sky 2 Strength", Float ) = 0
  21. _Sky1Colour ("Sky 1 Colour", Color) = (0.5,0.5,0.5,1)
  22. _Sky2Colour ("Sky 2 Colour", Color) = (0.5,0.5,0.5,1)
  23. }
  24. SubShader {
  25. Tags {
  26. "RenderType"="Opaque"
  27. }
  28. Pass {
  29. Tags {
  30. "LightMode"="ForwardBase"
  31. }
  32.  
  33. CGPROGRAM
  34. #pragma vertex vert
  35. #pragma fragment frag
  36. #define UNITY_PASS_FORWARDBASE
  37. #include "UnityCG.cginc"
  38. #include "AutoLight.cginc"
  39. #pragma multi_compile_fwdbase_fullshadows
  40. #pragma exclude_renderers gles xbox360 ps3 flash
  41. #pragma target 3.0
  42. uniform float4 _LightColor0;
  43. uniform sampler2D _DiffuseMAP;
  44. uniform float _Desaturate;
  45. uniform sampler2D _SpecMAP;
  46. uniform float _Specpower;
  47. uniform sampler2D _NormalMAP;
  48. uniform float _FresnelFactor;
  49. uniform sampler2D _GlossMAP;
  50. uniform float _Glosspower;
  51. uniform samplerCUBE _Sky1;
  52. uniform float _Reflpower;
  53. uniform float _Sky1strength;
  54. uniform samplerCUBE _Sky2;
  55. uniform float _Sky2Strength;
  56. uniform float4 _Sky1Colour;
  57. uniform float4 _Sky2Colour;
  58. struct VertexInput {
  59. float4 vertex : POSITION;
  60. float3 normal : NORMAL;
  61. float4 tangent : TANGENT;
  62. float4 uv0 : TEXCOORD0;
  63. };
  64. struct VertexOutput {
  65. float4 pos : SV_POSITION;
  66. float4 uv0 : TEXCOORD0;
  67. float4 posWorld : TEXCOORD1;
  68. float3 normalDir : TEXCOORD2;
  69. float3 tangentDir : TEXCOORD3;
  70. float3 binormalDir : TEXCOORD4;
  71. LIGHTING_COORDS(5,6)
  72. };
  73. VertexOutput vert (VertexInput v) {
  74. VertexOutput o;
  75. o.uv0 = v.uv0;
  76. o.normalDir = mul(float4(v.normal,0), _World2Object).xyz;
  77. o.tangentDir = normalize( mul( _Object2World, float4( v.tangent.xyz, 0.0 ) ).xyz );
  78. o.binormalDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w);
  79. o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  80. o.posWorld = mul(_Object2World, v.vertex);
  81. TRANSFER_VERTEX_TO_FRAGMENT(o)
  82. return o;
  83. }
  84. fixed4 frag(VertexOutput i) : COLOR {
  85. float3x3 tangentTransform = float3x3( i.tangentDir, i.binormalDir, i.normalDir);
  86. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  87. float3 node_11 = UnpackNormal(tex2D(_NormalMAP,i.uv0.xy));
  88. float3 normalLocal = node_11.rgb;
  89. float3 normalDirection = normalize( mul( normalLocal, tangentTransform ) );
  90. float3 viewReflectDirection = reflect( -viewDirection, normalDirection );
  91. float3 lightDirection = normalize(_WorldSpaceLightPos0.xyz);
  92. float attenuation = LIGHT_ATTENUATION(i);
  93. float3 lambert = attenuation * max( 0.0, dot(normalDirection,lightDirection )) * _LightColor0.xyz;
  94. float node_22 = _Reflpower;
  95. float3 addLight = lambert * (tex2D(_SpecMAP,i.uv0.xy).rgb*_Specpower) * pow(max(0,dot(reflect(-lightDirection, normalDirection),viewDirection)),(pow(1.0-max(0,dot(node_11.rgb, viewDirection)),_FresnelFactor)+(tex2D(_GlossMAP,i.uv0.xy).rgb*_Glosspower)).r) + (((i.normalDir.r*node_22)+(1.0 - node_22))*(((texCUBE(_Sky1,viewReflectDirection).rgb*_Sky1strength)*_Sky1Colour.rgb)*((texCUBE(_Sky2,viewReflectDirection).rgb*_Sky2Strength)*_Sky2Colour.rgb)));
  96. float3 lightFinal = lambert + UNITY_LIGHTMODEL_AMBIENT.xyz;
  97. return fixed4(lightFinal * lerp(tex2D(_DiffuseMAP,i.uv0.xy).rgb,dot(tex2D(_DiffuseMAP,i.uv0.xy).rgb,float3(0.3,0.59,0.11)),_Desaturate) + addLight,1);
  98. }
  99. ENDCG
  100. }
  101. Pass {
  102. Tags {
  103. "LightMode"="ForwardAdd"
  104. }
  105. Blend One One
  106.  
  107. Fog {Mode Off}
  108. CGPROGRAM
  109. #pragma vertex vert
  110. #pragma fragment frag
  111. #define UNITY_PASS_FORWARDADD
  112. #include "UnityCG.cginc"
  113. #include "AutoLight.cginc"
  114. #pragma multi_compile_fwdadd_fullshadows
  115. #pragma exclude_renderers gles xbox360 ps3 flash
  116. #pragma target 3.0
  117. uniform float4 _LightColor0;
  118. uniform sampler2D _DiffuseMAP;
  119. uniform float _Desaturate;
  120. uniform sampler2D _SpecMAP;
  121. uniform float _Specpower;
  122. uniform sampler2D _NormalMAP;
  123. uniform float _FresnelFactor;
  124. uniform sampler2D _GlossMAP;
  125. uniform float _Glosspower;
  126. uniform samplerCUBE _Sky1;
  127. uniform float _Reflpower;
  128. uniform float _Sky1strength;
  129. uniform samplerCUBE _Sky2;
  130. uniform float _Sky2Strength;
  131. uniform float4 _Sky1Colour;
  132. uniform float4 _Sky2Colour;
  133. struct VertexInput {
  134. float4 vertex : POSITION;
  135. float3 normal : NORMAL;
  136. float4 tangent : TANGENT;
  137. float4 uv0 : TEXCOORD0;
  138. };
  139. struct VertexOutput {
  140. float4 pos : SV_POSITION;
  141. float4 uv0 : TEXCOORD0;
  142. float4 posWorld : TEXCOORD1;
  143. float3 normalDir : TEXCOORD2;
  144. float3 tangentDir : TEXCOORD3;
  145. float3 binormalDir : TEXCOORD4;
  146. LIGHTING_COORDS(5,6)
  147. };
  148. VertexOutput vert (VertexInput v) {
  149. VertexOutput o;
  150. o.uv0 = v.uv0;
  151. o.normalDir = mul(float4(v.normal,0), _World2Object).xyz;
  152. o.tangentDir = normalize( mul( _Object2World, float4( v.tangent.xyz, 0.0 ) ).xyz );
  153. o.binormalDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w);
  154. o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  155. o.posWorld = mul(_Object2World, v.vertex);
  156. TRANSFER_VERTEX_TO_FRAGMENT(o)
  157. return o;
  158. }
  159. fixed4 frag(VertexOutput i) : COLOR {
  160. float3x3 tangentTransform = float3x3( i.tangentDir, i.binormalDir, i.normalDir);
  161. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  162. float3 node_11 = UnpackNormal(tex2D(_NormalMAP,i.uv0.xy));
  163. float3 normalLocal = node_11.rgb;
  164. float3 normalDirection = normalize( mul( normalLocal, tangentTransform ) );
  165. float3 viewReflectDirection = reflect( -viewDirection, normalDirection );
  166. float3 lightDirection;
  167. if (0.0 == _WorldSpaceLightPos0.w){
  168. lightDirection = normalize( _WorldSpaceLightPos0.xyz );
  169. } else {
  170. lightDirection = normalize( _WorldSpaceLightPos0 - i.posWorld.xyz );
  171. }
  172. float attenuation = LIGHT_ATTENUATION(i);
  173. float3 lambert = attenuation * max( 0.0, dot(normalDirection,lightDirection )) * _LightColor0.xyz;
  174. float3 addLight = lambert * (tex2D(_SpecMAP,i.uv0.xy).rgb*_Specpower) * pow(max(0,dot(reflect(-lightDirection, normalDirection),viewDirection)),(pow(1.0-max(0,dot(node_11.rgb, viewDirection)),_FresnelFactor)+(tex2D(_GlossMAP,i.uv0.xy).rgb*_Glosspower)).r);
  175. float3 lightFinal = lambert;
  176. return fixed4(lightFinal * lerp(tex2D(_DiffuseMAP,i.uv0.xy).rgb,dot(tex2D(_DiffuseMAP,i.uv0.xy).rgb,float3(0.3,0.59,0.11)),_Desaturate) + addLight,1);
  177. }
  178. ENDCG
  179. }
  180. }
  181. FallBack "Diffuse"
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement