SHARE
TWEET

Untitled

a guest Nov 24th, 2013 90 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Shader "Car/CarPain2" {
  2.         Properties {
  3.                 _Color("Diffuse Color", Color) = (1, 1, 1,1)
  4.                 _SpecColor("Specular Color", Color) = (1,1,1,1)        
  5.                 _AmbientColor("Metalic Color", Color) = (1,1,1, 1)
  6.                 _AmbientColor2("Candy Color", Color) = (1,1,1, 1)
  7.                 _ReflectionColor("Reflection Color", Color) = (1,1,1, 1)
  8.                 _VinylColor("Vinyl Color", Color) = (1,1,1, 1) // Тут добавил
  9.                 _Shininess("Glossiness", Range(0.1,2) ) = 0.5          
  10.                 _MainTex("Diffuse", 2D) = "white" {}
  11.                 _FlakeTex("Flakes", 2D) = "white" {}
  12.                 _VinylTex("Vinyl", 2D) = "white" {} //Тут добавил
  13.                 _FlakeDens("Flakes Tile", Range(1,40) ) = 2
  14.                 _Cube("Reflection Cubemap", Cube) = "" { TexGen CubeReflect }          
  15.                 _FresnelScale ("Fresnel Intensity", Range(0,2) ) = 0.4
  16.                 _FresnelPower ("Fresnel Power", Range(0.1,3) ) = 0             
  17.                 _MetalicScale ("Metalic Intensity", Range(0.0,4.0)) = 0
  18.                 _MetalicPower ("Metalic Power", Range(0.0,20.0)) = 0           
  19.                 _CandyScale ("Candy Intensity", Range(0.0,4.0)) = 0
  20.                 _CandyPower ("Candy Power", Range(0.0,20.0)) = 0
  21.         }
  22.         SubShader {            
  23.                 Tags { "RenderType"="Opaque" }
  24.                 LOD 400                
  25.                 Cull Back
  26.                 ZWrite On
  27.                 ZTest Lequal
  28.                 ColorMask RGBA
  29.                 CGPROGRAM              
  30.                 #pragma surface surf BlinnPhong
  31.                 #pragma target 3.0             
  32.                 struct Input
  33.                 {
  34.                         float2 uv_MainTex;     
  35.                         float2 uv_FlakeTex;
  36.                         float3 worldRefl;
  37.                         float3 viewDir;
  38.                         float3 lightDir;
  39.                         float3 normal;
  40.                         INTERNAL_DATA
  41.                 };             
  42.                 sampler2D _MainTex;
  43.                 sampler2D _FlakeTex;
  44.                 sampler2D _VinylTex; // Тут добавил
  45.                 samplerCUBE _Cube;             
  46.                 float4 _Color;
  47.                 float4 _AmbientColor;
  48.                 float4 _AmbientColor2;
  49.                 float4 _ReflectionColor;
  50.                 float4 _VinylColor; // Тут добавил
  51.                 float _Shininess;
  52.                 float _FlakeDens;
  53.                 float _FresnelScale;
  54.                 float _FresnelPower;
  55.                 float _MetalicScale;           
  56.                 float _MetalicPower;
  57.                 float _CandyScale;             
  58.                 float _CandyPower;
  59.                 void surf (Input IN, inout SurfaceOutput o){           
  60.                                
  61.                         o.Normal = normalize(float3(0.0,0.0,1.0));
  62.                         // 0. Vectors
  63.                         float3 worldRefl = WorldReflectionVector (IN, o.Normal);
  64.                         float3 normEyeVec = normalize (IN.viewDir);
  65.                         float3 worldLight = normalize (IN.lightDir);
  66.                         float dotEyeVecNormal = abs(dot(normEyeVec, o.Normal));                        
  67.                        
  68.                         // 1. Difuse (Texture + Color)
  69.                         float4 Tex1 = tex2D( _MainTex,IN.uv_MainTex );                 
  70.                         float specularmask = Tex1.a ;
  71.                         float4 Diffuse = ((_Color* (specularmask) )* Tex1) + (Tex1*(1-specularmask));                          
  72.  
  73.                         // 2. GlossMap / Sparks                
  74.                         float4 Tex2 = tex2D( _FlakeTex, IN.uv_FlakeTex*_FlakeDens );   
  75.                         float4 Specular = (_Shininess * Tex2) + Tex2;  
  76.                        
  77.                         // 3. Emission (Reflections with Fresnel)              
  78.                         float4 TexCUBE = texCUBE( _Cube,worldRefl) * _ReflectionColor;
  79.                         float4 fresnel = (1.0 - dot( normEyeVec,o.Normal ));
  80.                         float4 emmission = _FresnelScale * TexCUBE * pow(fresnel,_FresnelPower);                       
  81.                        
  82.                         // 4. Special (Metalic & Candy)
  83.                         float metalic = (specularmask*_MetalicScale) * pow(dotEyeVecNormal,_MetalicPower);
  84.                         float candy = _CandyScale * pow(dotEyeVecNormal,_CandyPower);
  85.                        
  86.                         // 5. Vinyl (Texture + Color) - Это все добавил
  87.                         float4 Tex3 = tex2D( _VinylTex, IN.uv_MainTex );
  88.                         float4 VinylDiffuse = ((_VinylColor * (specularmask) )* Tex3) + (Tex3 * (1 - specularmask));
  89.                        
  90.                         o.Albedo = VinylDiffuse * Diffuse * ((metalic+(1-specularmask) + ((1-Tex2)*(specularmask))) + (_AmbientColor.rgb*specularmask)) + (candy * _AmbientColor2.rgb * specularmask*(1-Tex2));
  91.                        
  92.                         o.Specular = Specular;                                         
  93.                         o.Gloss = _SpecColor * specularmask;                           
  94.                         o.Emission = emmission * emmission * specularmask;
  95.                 }              
  96.                 ENDCG
  97.         }
  98.         FallBack "Reflective/Diffuse"
  99. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top