12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 3101|回复: 11
打印 上一主题 下一主题

头发高光效果及金属表面shader

[复制链接]

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

跳转到指定楼层
楼主
发表于 2011-8-26 08:38:15 |只看该作者 |倒序浏览
这个shader可以用来做头发调光及金属表面效果,下面是代码:

Shader "Bumped Anisotropic Specular" {
      Properties {
          _Color ("Main Color", Color) = (1,1,1,1)
          _MainTex ("Diffuse (RGB) Alpha (A)", 2D) = "white" {}
          _SpecularTex ("Specular (R) Gloss (G) Anisotropic Mask (B)", 2D) = "gray" {}
          _BumpMap ("Normal (Normal)", 2D) = "bump" {}
          _AnisoTex ("Anisotropic Direction (RGB)", 2D) = "bump" {}
          _AnisoOffset ("Anisotropic Highlight Offset", Range(-1,1)) = -0.2
          _Cutoff ("Alpha Cut-Off Threshold", Range(0,1)) = 0.5
      }

      SubShader{
          Tags { "RenderType" = "Opaque" }
      
          CGPROGRAM
         
              s***ct SurfaceOutputAniso {
                  fixed3 Albedo;
                  fixed3 Normal;
                  fixed4 AnisoDir;
                  fixed3 Emission;
                  half Specular;
                  fixed Gloss;
                  fixed Alpha;
              };

              float _AnisoOffset, _Cutoff;
              inline fixed4 LightingAniso (SurfaceOutputAniso s, fixed3 lightDir, fixed3 viewDir, fixed atten)
              {
                 fixed3 h = normalize(normalize(lightDir) + normalize(viewDir));
                 float NdotL = saturate(dot(s.Normal, lightDir));

                 fixed HdotA = dot(normalize(s.Normal + s.AnisoDir.rgb), h);
                 float aniso = max(0, sin(radians((HdotA + _AnisoOffset) * 180)));

                 float spec = saturate(dot(s.Normal, h));
                 spec = saturate(pow(lerp(spec, aniso, s.AnisoDir.a), s.Gloss * 128) * s.Specular);

                 fixed4 c;
                 c.rgb = ((s.Albedo * _LightColor0.rgb * NdotL) + (_LightColor0.rgb * spec)) * (atten * 2);
                 c.a = 1;
                 clip(s.Alpha - _Cutoff);
                 return c;
              }

              #pragma surface surf Aniso
              #pragma target 3.0
              
              s***ct Input
              {
                  float2 uv_MainTex;
                  float2 uv_AnisoTex;
              };
              
              sampler2D _MainTex, _SpecularTex, _BumpMap, _AnisoTex;
                  
              void surf (Input IN, inout SurfaceOutputAniso o)
              {
                 fixed4 albedo = tex2D(_MainTex, IN.uv_MainTex);
                  o.Albedo = albedo.rgb;
                  o.Alpha = albedo.a;
                  o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_MainTex));
                  fixed3 spec = tex2D(_SpecularTex, IN.uv_MainTex).rgb;
                  o.Specular = spec.r;
                  o.Gloss = spec.g;
                  o.AnisoDir = fixed4(tex2D(_AnisoTex, IN.uv_AnisoTex).rgb, spec.b);
              }
          ENDCG
      }
      FallBack "Transparent/Cutout/VertexLit"
}
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

1026

主题

1

听众

6011

积分

高级设计师

Rank: 6Rank: 6

纳金币
5996
精华
1

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2011-8-27 10:53:21 |只看该作者
跟之前透明的差不多啊 中间的方法有一点变化
回复

使用道具 举报

1010

主题

1

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
31646
精华
1

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2011-8-27 11:46:45 |只看该作者
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-4-12 23:18:31 |只看该作者
这么后现代
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

5#
发表于 2012-5-17 23:18:57 |只看该作者
好,真棒!!
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-5-17 23:22:56 |只看该作者
不错哦,谢谢楼主
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

7#
发表于 2012-6-5 23:25:38 |只看该作者
不错不错,收藏了
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2012-9-23 23:36:54 |只看该作者
我看看就走,你们聊!
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

9#
发表于 2012-10-31 23:29:33 |只看该作者
都闪开,介个帖子,偶来顶
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2012-12-9 23:27:44 |只看该作者
其实楼主所说的这些,俺支很少用!
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-15 04:30 , Processed in 0.105961 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部