Unity--Shader(一)

一、Shader的介紹

Shader(著色器)
Shader是專門用來渲染3D圖形的一種技術,他分為Vertex Shader(頂點著色器) & Pixel Shader(像素著色器)

二、Shader的種類

Shader分三類:
1、HLSL(High Level Shading Language):
微軟的DirectX圖形API繼承的Shader。
2、GLSL(OpenGL Shading Language):
用于OpenGL系列圖形集的Shader。
3、CG(C for Graphics):
一種可以被OpenGL和Direct3D廣泛支持的圖形處理器編程語言。是OpenGL和DirectX的上層語言,CG程序運行在OpenGL和DirectX標準頂點和像素著色器的基礎上的。

Unity所有的渲染都需要shader來完成,內置的著色器超過80個,可以輕松利用其內置的著色器來完成各種畫面效果,并且還提供了自定義shader,方便擴展。Unity使用shaderLab開發語言來組織shader內容,并會針對不同的平臺進行編譯,類似微軟的FX文件或者NAIDIA的CgFX.

三、內建Shader的分類:

1、普通(Normal):用于不透明對象
2、透明(Transparent):用于半透明和全透明對象
3、透明鏤空效果(TransparentCutOut):用于完全透明和完全不透明部分組成(不含半透明部分)的對象,像柵欄一樣。
4、自發光(Self-llluminated shader Family):用于能反射環境立方體貼圖的不透明對象
5、反射(Reflective Shader Family):用于能反射環境立方體貼圖的不透明對象
每個類別下包含若干復雜性各異的shader

四、幾種常用的Shader

1、Bumped Diffuse 漫反射


Paste_Image.png

2、Bumped Specular 法線高光效果



Paste_Image.png

法線高光效果可以讓物體的凹凸效果更加明顯

圖中左邊為漫反射bumped diffuse,右邊為高光、凸凹效果bumped specular

3、StandardShader 標準著色器

StandardShader是基于物理的著色器,也就是說不管你選擇什么樣的貼圖都會與光照產生反應,這些貼圖可以是同一張圖片,Unity會使用必要的資源進行計算。


Paste_Image.png
Paste_Image.png

一個簡單的Shader腳本:


Paste_Image.png

Paste_Image.png

這個shader定義顏色屬性的默認值(1,0.5,0.5,1)_Color(將在Unity3D的材質檢索器中作為主要顏色屬性顯示)。然后一個單一的subshader定義。該subshader組成一個渲染通道,打開頂點照明,并設置了它的基本材質屬性。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容