我正在爲正在製作的遊戲構建一個小型3D引擎。我有我的基本排序:帶背面剔除的紋理三角形。然而深度分類被證明是一個難題。如何爲3D引擎Z排序三角形?
我通過平均構成三角形臉部的3點來計算臉部Z.較長的面有時與較小的面重疊,因爲它們具有較大的Z值,因此在深度排序的顯示列表中上升。
我該如何解決這個問題?如果我只能在編程時獲得一些實際的幫助,我肯定有深度的排序技術。我已經建立了渲染管線自己,所以我有機會獲得所有需要的數據 - 三角形,點,紋理,UV座標等
大教堂在3D節目
呈現大教堂呈現在我的3D引擎
有沒有什麼辦法可以使Z排序例程偏向於考慮三角形區域,而不必拆分tris? – 2010-09-18 17:58:22
不正確。這正是Z緩衝解決的問題。 Z緩衝是每個像素和獨立的多邊形大小(它發生在管道甚至知道)。 您描述的問題只適用於多邊形排序,或者如果您渲染非不透明的多邊形。精度問題與z緩衝有關,這裏有一個很好的介紹:http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html – Justicle 2010-09-18 22:11:52
Justicle說。此外,如果您需要z-排序(例如透明度),z-sort的計算有效方法是使用BSP樹。 – Kos 2011-11-21 18:08:46