Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Shader "Custom/Fur" {
- Properties {
- _MainTex ("Fur Texture", 2D) = "white" {}
- _BumpMap ("Normal Map", 2D) = "bump" {}
- _FurLength ("Fur Length", Range(0, 1)) = 0.1
- _FurDensity ("Fur Density", Range(0, 1)) = 0.5
- _FurDirection ("Fur Direction", Vector) = (0, 1, 0)
- _FurColor ("Fur Color", Color) = (0.8, 0.8, 0.8, 1)
- _FurSpecular ("Fur Specular", Range(0, 1)) = 0.5
- _FurShininess ("Fur Shininess", Range(0, 1)) = 0.07
- }
- SubShader {
- Tags {"Queue"="Transparent"}
- LOD 200
- CGPROGRAM
- #pragma surface surf Lambert
- sampler2D _MainTex;
- sampler2D _BumpMap;
- float _FurLength;
- float _FurDensity;
- float3 _FurDirection;
- fixed4 _FurColor;
- float _FurSpecular;
- float _FurShininess;
- struct Input {
- float2 uv_MainTex;
- float2 uv_BumpMap;
- float3 viewDir;
- };
- void surf (Input IN, inout SurfaceOutput o) {
- fixed4 tex = tex2D (_MainTex, IN.uv_MainTex);
- fixed4 bump = tex2D (_BumpMap, IN.uv_BumpMap);
- float furAmount = dot(bump.rgb, _FurDirection) * _FurDensity;
- o.Albedo = tex.rgb * _FurColor.rgb;
- o.Alpha = tex.a * (1 - furAmount * _FurLength);
- o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
- o.Specular = _FurSpecular;
- o.Gloss = _FurShininess;
- }
- ENDCG
- }
- FallBack "Diffuse"
- }
Advertisement
Add Comment
Please, Sign In to add comment