假設我有兩個深度緩衝區(「DA」和「DB」)。我想將DA附加到幀緩衝區,並以正常/「傳統」的方式渲染它(每一個片段深度測試對GL_LESS,如果它通過,它被繪製並且深度被寫入深度緩衝區)。在OpenGL中,如何在兩個深度緩衝區之間進行深度測試?
然後,我想附上DB-在這裏我想以傳統的方式引用/使用DB,但也要用GL_GREATER對DA進行深度測試。如果片段通過了兩個測試,我仍然只想寫入深度到DB。
什麼這將做到的是在第二次抽只會畫任何東西,如果它是第一遍背後的內容,但在第二次的其他內容前。
OpenGL 2.1(或OpenGL ES 2)是否提供此功能?我能做些什麼來解決它,而不是正式提供它?
如果不提供它,下面是我怎麼會做它的想法,我想被理智檢查...
您附上作爲一個深度緩衝渲染緩衝器,然後用深度手動填充它。並手動執行「如果深度超過紋理在DA」測試(當失敗,丟棄片段)。我很好奇我遇到了什麼問題?有沒有簡單的方法來模擬正式指定深度緩衝區的深度精度?表演可怕嗎?還有其他顧慮嗎?
好的。害怕這一點。幸運的是,我的使用案例允許我將「DA」作爲world_pos.z <0.0進行模糊處理,並帶有*最小*僞像,這是可以接受的。 (我會接受你的回答 - 但要讓它延長一段時間,讓任何人都有機會產生一些精彩的黑客攻擊,讓我的表現不變,完美的雙深度測試)。 – Phildo