輸入輸出類型
頂點着色器的形參是gameObject的meshRenderer組件,將所有的mesh數據按每一幀一次傳遞給OpenGL。這個過程被稱爲一次drawcall。
頂點着色器可根據語義獲取到的全部mesh信息有
float4 vertex:POSITION //頂點座標
float4 tangent:TANGENT //
float3 normal:NORMAL //表面法向量
float4 texcoord:TEXCOORD //紋理座標系的第0個座標
float4 texcoord1:TEXCOORD1 //紋理座標系的第1個座標
fixed4 color:COLOR //顏色
應用UnityCG.cginc頭文件,有預先設定好的結構體。其中appdata_full就是以上6個。
頂點座標空間的變換過程
- 模型空間(局部空間)
- 世界空間
- 模型空間到世界空間的過程稱爲模型轉換
- 觀察空間(攝像機空間),觀察空間也是一個三維空間
- 頂點座標從世界空間到觀察空間的變換稱爲觀察變換
- 裁剪空間
- 裁剪空間的目標是能夠方便地對渲染圖元進行裁剪:完全位於這塊空間內的圖元會被保留,完全位於空間外的圖元會被剔除,與空間相交的圖元會被裁剪。裁剪空間的形式與投影方式有關,投影方式包括正交投影和透視投影
- 屏幕空間
- 屏幕空間是二維的,是真正的像素位置。