Unity5 新功能解析--物理渲染與standard shader
http://blog.csdn.net/leonwei/article/details/48395061
unity的shader在哪兒,物理渲染是UNITY5最大的亮點之一,物理渲染的采用絕對是下一個世代游戲的熱點,UNITY5的大范圍使用是一個可喜可賀的事情,關于什么是物理渲染,本人曾經寫過一篇博客專門討論,詳見http://blog.csdn.net/leonwei/article/details/44539217。
? ? ? ?物理渲染和當今的主流光照計算最大的區別就是,當今的lambert blinn phone基本上是基于模擬的模型,就是盡可能的去模擬我們看上去的物體反射的顏色,甚至可以說是拍腦袋的模型,用于欺騙我們的眼睛,而基于物理的光照計算則是依據了光線傳播的物理特性,更加貼近于真是的光照情況,雖然在實現上還是用了一些近似計算。所以物理渲染在表現自然界的物體時尤其的看上去更加真實。
? ? ? Unity5里面采用了一套全新的shader 叫做 standard shader,這套shader使用的就是基于物理的光照計算,而老的那些shaderUNITY已經不推薦使用,UNITY5認為我們大多數情況都應該使用standard shader。下圖左面使用的是物理渲染,右面使用的是blinn phone,都用來表現一個很光滑的金屬,沒上貼圖,可以明顯的感覺到左側的真實的多,這就是UNITY5給我們在圖形質量上帶來的提升。
unity shader入門精要?? ??
?
? ?我們來分析一下Standard Shader的各種參數的意義
Albedo: 這就是物體表面的基本顏色,在物理模型中相當于物體表面某處各子表面的散射顏色。
Metallic : 這相當于物理模型中的F(0),即物體表面和視線一致的面的對光線反射的能量,通常金屬物體通常超過50%,大部分在90%,而非金屬集中在20%以下,自然界中的物質很少有在20%-40%之間的(除非一些人造物體),正因為如此這個屬性被形象的稱謂metallic(金屬感)
Smoonthness:這相當于物理模型中與實現一致的面占所有微面的比例,比例越大,物體越光滑,反之越毛糙,一定要區分這個和mettalic(metallic在描述對反射能量的強弱,smmothness描述表面的光滑程度),當然大所屬情況下金屬的smoothness都很高。
normal map:法線貼圖
height map: 視差貼圖,用于在法線貼圖的基礎上表現高低信息(法線只能表現光照強弱,而視察貼圖可以增加物理上的位置的前后)
Occlution:遮擋占據貼圖,用于模擬GI,物體在默寫凹槽處由于受到光線的減少而顯得暗,也就是自遮擋。
Emission:自發光,不過UNITY5的自發光可以在全局光照中當光源使用,非常好
secondary maps:第二道貼圖
Detail?Mask:對第二道貼圖的mask
?
除了standard shader之外,unity5還提供了一個Standard (Specular setup),主要區別在于,這個shader提供了一個和albedo不同的specular的顏色,也就是漫反射和高光反射的顏色分開,而對于前者albedo控制了漫反射和高光反射,并且認為更多的光是被高光反射了,UNITY文檔說對于大多數效果這兩種途徑基本都可以表現,而選取那種取決于你的習慣...