我開始向我的遊戲引擎添加延遲着色,我在理解如何從深度紋理中檢索眼睛空間座標時遇到了一些麻煩。從深度紋理獲取眼睛空間點
我已閱讀在this post和我的理解大約兩個方法:如果我存儲我的深度在GL_DEPTH_ATTACHMENT
我的幀緩衝區
- 第一種方法會奏效。
- 第二種方法需要我在我的Shader中計算我的深度,並將其存儲在
GL_COLOR_ATTACHMENTn
中。
第二種方法的重建對於我所需要的來說似乎太複雜了,所以如果可能的話,我寧願不使用它。
用於重建眼睛的座標,所述第一方法將紋理座標,深度,以及1.0
在vec4
一個w
,乘以由逆透視矩陣,然後除以它的w
結果。
此方法的工作原理與存儲在我的GL_DEPTH_ATTACHMENT
紋理中的深度保持一致,是否足夠準確以進行點亮?
如果它不能改變,那麼我需要怎樣處理我的深度才能使它工作?
我在嘗試渲染我的深度緩衝區時發現了這個問題:http://www.ozone3d.net/blogs/lab/20090206/how-to-linearize-the-depth-value/。這是否會按照您描述的方式將深度線性化? – jbills
@jbills:是的,這正是你需要做的產生線性深度值。 –
感謝線性化後,我可以按照前面描述的步驟進行操作嗎? – jbills