與材質(Material)共同影響渲染對象
常見的流程為:
1.創(chuàng)建一個材質(包含材質屬性、紋理、漫反射系數);
2.創(chuàng)建一個Unity shader,再把Unity shader 賦給材質;
3.把材質賦給需要影響的物體;
4.在材質面板中調節(jié)Unity shader的屬性,最后得到滿意的渲染效果。
材質(Material)
Unity中的材質需要創(chuàng)建一個GameObject的Mesh,或者是Particle System組件來工作。
Shader
在Assets中創(chuàng)建 和 Material一樣
可創(chuàng)建的shader分為四種:
1.Standard Surface Shader,包含標準光照模型的表面著色器;
2.Unlit Shader ,不包含光照的頂點/片元著色器;
3.Image Effect Shader 實現屏幕后處理效果(各種后期:高斯模糊,鉛筆風格,輝光);
4.Compute Shader,利用GPU進行一些與常規(guī)渲染流水線無關的計算。
創(chuàng)建之后在project面板中選中Shader文件,可以在Inspector面板里看見他的導入設置(Import Settings)
如果這個Shader是一個
固定函數著色器(Fixed Function Shader)在Fixed function 后面會出現Show generated code按鈕,以便讓我們查看該固定函數著色器生成的頂點/片元著色器;
如果是一個
表面著色器,后面也會出現Show generated code按鈕,點擊查看Unity背后為表面著色器生成的頂點/片元著色器。
Unity Shader的基礎ShaderLab
ShaderLab是編寫Unity Shader的一種說明性語言;屬于一層抽象。
一個Unity的基本結構包括:
Shader ?" ShaderName "{
????????????Properties{
? ? ? ? ? ? //屬性
????????????}
? ? ? ? ? ? SubShader{
? ? ? ? ? ? //顯卡A使用的子著色器
????????????}
????????????SubShader{
? ? ? ? ? ? //顯卡B使用的子著色器
????????????}
? ? ? ? ? ? Fallback"VertexLit"
}