查看: 1917|回复: 4
打印 上一主题 下一主题

[经验分享] 如何让模型产生双面法线效果

[复制链接]

1557

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
454
精华
31

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

跳转到指定楼层
楼主
发表于 2013-10-16 15:52:36 |只看该作者 |倒序浏览

在Unity的內建shader中,預設的顯像方式是 "Back-Face Culling",也就是背面是看不見的,如果需要呈現雙面法線時,我們可以透過修改Shader來達到正反面都顯示的效果。
1.預設的顯示模式,反面是看不見的。



2.新增一個自訂shader文件。



3.以內建的Diffuse為例,修改其中的Pass函数,增加一行 "Cull Off"。



4.新增一個材質球並套用修改過的shader,即可達到雙面顯像的效果。


Shader "DoubleSided" {
   Properties {
      _Color ("Main Color", Color) = (1,1,1,1)
      _MainTex ("Base (RGB)", 2D) = "white" {}
      //_BumpMap ("Bump (RGB) Illumin (A)", 2D) = "bump" {}
   }
   SubShader {      
      //UsePass "Self-Illumin/VertexLit/BASE"
      //UsePass "Bumped Diffuse/PPL"
        
      // Ambient pass
      Pass {
      Name "BASE"
      Tags {"LightMode" = "PixelOrNone"}
      Color [_PPLAmbient]
      SetTexture [_BumpMap] {
         constantColor (.5,.5,.5)
         combine constant lerp (texture) previous
         }
      SetTexture [_MainTex] {
         constantColor [_Color]
         Combine texture * previous DOUBLE, texture*constant
         }
      }
     
   // Vertex lights
   Pass {
      Name "BASE"
      Tags {"LightMode" = "Vertex"}
      Material {
         Diffuse [_Color]
         Emission [_PPLAmbient]
         Shininess [_Shininess]
         Specular [_SpecColor]
         }
      SeparateSpecular On
      Lighting On
      Cull Off
      SetTexture [_BumpMap] {
         constantColor (.5,.5,.5)
         combine constant lerp (texture) previous
         }
      SetTexture [_MainTex] {
         Combine texture * previous DOUBLE, texture*primary
         }
      }
   }
   FallBack "Diffuse", 1
}



分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

nts    

3

主题

1

听众

743

积分

初级设计师

Rank: 3Rank: 3

纳金币
7
精华
0

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

沙发
发表于 2013-10-17 09:42:17 |只看该作者
不错的教程,收藏了
回复

使用道具 举报

2

主题

1

听众

1143

积分

助理设计师

Rank: 4

纳金币
350
精华
0
板凳
发表于 2013-10-28 10:39:53 |只看该作者
http://auto.howstuffworks.com/question432.htm
回复

使用道具 举报

1

主题

2

听众

510

积分

初级设计师

Rank: 3Rank: 3

纳金币
49
精华
0

最佳新人

地板
发表于 2013-10-28 17:42:14 |只看该作者
不错 不错 收藏了
回复

使用道具 举报

20

主题

5

听众

1090

积分

助理设计师

Rank: 4

纳金币
105
精华
0

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

5#
发表于 2013-10-29 13:43:05 |只看该作者
这样会有个问题存在,cull off的是将正面的渲染结果完整的复制到了背面,连同光照计算的结果也复制了,就会导致复制出来的面光照是错误的,本来在光的背面,结果显示也是亮的了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-14 07:21 , Processed in 0.085283 second(s), 32 queries .

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

© 2008-2019 Narkii Inc.

回顶部