2016-09-06 44 views
0

我正在製作一個體素引擎,以32×32×32塊爲單位分割世界。我一直在實施許多渲染優化,例如不渲染由固體像素覆蓋的面或相同外觀的相鄰體素。OpenGL Voxel引擎人臉合併與每角頂點環境遮擋

問題是,我想要實現每個頂點的環境遮擋,計算CPU的遮擋並將其傳遞給着色器,就像that image一樣。它工作得很好,但由於OpenGL對片段的最終顏色進行了線性插值,因此面部合併會在較大的面上產生較大的漸變。

我想現在如果有辦法解決這個問題,通過告訴片段着色器從頂點或類似的東西得到多少片段。

+0

谷歌「貪婪網格」 – Krythic

回答

1

將你的「臉部合併」系統完全拋棄會更好。雖然不只是因爲它會讓你更有效地做到這一點。與您的臉合併系統

的一個問題是隻渲染器保證兩個三角形之間的邊緣不會有間隙如果兩個共享位置二進制相同值。你的臉部合併系統有許多三角形,部分分享邊緣。在這些情況下,GPU不保證任何邊緣。這會導致邊緣之間出現裂紋。