Unity Shader中的UnityObjectToClipPos和裁剪空間

Unity Shader中使用UnityObjectToClipPos函數可以把頂點從模型空間轉換到裁剪空間下。

函數返回的結果是裁剪空間下的一個齊次座標(x,y,z,w),其中,x∈ [-w, w],y ∈ [-w, w],z ∈ [-w, w],

w的數值等於相機空間下的z分量。

轉換爲裁剪空間下的普通座標需要除以w分量,(x,y,z,w) / w = (x/w, y/w, z/w, 1), 轉換之後x,y,z都∈[ -1, 1]

 

值得注意的是,在頂點函數計算出裁剪空間座標之後傳遞給片元函數並標明語義是SV_POSITION的時候,該裁剪齊次座標會轉換到屏幕空間。x ∈(-Screen.width/2, Screen.width/2), y ∈(-Screen.height/2, Screen.height/2)。

 

詳細參考:https://blog.csdn.net/popy007/article/details/1797121

https://blog.csdn.net/biezhihua/article/details/78926849

發佈了8 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章