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)。