2012-01-15 145 views
0

我正在研究具有逼真延遲照明的2D遊戲。由於在渲染場景後渲染燈光,因此如果存在諸如樹的對象阻擋正在點亮的區域,則需要採取一種方法來剔除照明計算。在做了一些閱讀之後,我推遲延期渲染的最好方法就是使用深度緩衝區。我一直在搜索互聯網尋找具有2D圖形深度緩衝區的方法,但實際上並沒有發現任何有用的東西。我發現glPolygonOffset但我真的不知道,如果這是我想要的,或者如果有另一種方法來設置多邊形的z值。感謝您的幫助2D中的深度緩衝區

回答

4

您的錯誤想法在於思考「3D ==透視」。要生成深度緩衝區,您的場景需要深度。但這沒有問題。你所說的「2D」可能僅僅意味着缺乏視角。因此,通過使用正投影並將各個對象置於不同深度的圖層上,您可以生成深度緩衝區,其中包含延遲照明的有用數據。

+0

通過調整多邊形的z座標? – rcapote 2012-01-15 02:53:46

+1

他的意思是,無論z值如何,它都不會改變外觀,因爲沒有視角。您可以將物體進一步移動到屏幕中或靠近相機,只要它在任一方向上都不太遠,它就會看起來相同。 – fabspro 2012-01-15 05:31:19

+1

而且「太遠」意味着在查看裁剪區域之外,其中可以設置多邊區域。與透視投影不同,在正投影中,深度值線性地取決於Z. – datenwolf 2012-01-15 09:55:37