私はボクセルエンジンを32 x 32 x 32ブロックの塊で世界を分割しています。私は、固体のボクセルで覆われた面をレンダリングしないか、同じ見た目の隣のボクセルに対してface mergingをレンダリングしないなど、多くのレンダリング最適化を実装してきました。OpenGL Voxelエンジンフェイスマージvs per-Vertexアンビエントオクルージョン
事は、私はちょうどthat imageのように、CPUからのocclussionを計算し、シェーダに渡す、頂点ごとのアンビエントオクルージョンを実装したいということです。それはほぼ正常に動作しますが、線形補間のために顔のマージは大きな面に大きなグラデーションを作成します。なぜなら、OpenGLはフラグメントの最終的な色を作るからです。
この問題を解決する方法がある場合は、フラグメントシェーダに頂点からのフラグメントの距離またはそのようなものを伝えることで、今すぐに行きたいと思います。
Google「Greedy Meshing」 – Krythic