VBOやインデックスなどで最新のOpenGLを使用しています。
最初に高さマップから地形をロードし、ブロック (私の場合は 128x128) に分割します。すべての頂点を (地形ブロックごとに) VBO にロードします。次に、4 つの LOD レベル (インデックス テーブル) があり、かなり静的です。
レンダリング中に、カメラからの距離に基づいてブロックを選択するだけです
if(distance > 768.0)
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, cells[i].elementbuffer_lod4);
else if(distance > 512.0)
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, cells[i].elementbuffer_lod3);
else if(distance > 128.0)
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, cells[i].elementbuffer_lod2);
else
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, cells[i].elementbuffer_lod1);
そして、ここで問題に遭遇しました。すべて正常に動作しますが、ロッド レベルの異なるブロック間に非常に醜いひび割れがあります。グーグル中にそのようなpdfを見つけました:http://www.flipcode.com/archives/article_geomipmaps.pdfそして私はその考えを理解していますが、VBO(上記)を使用してそれを実装する方法が本当にわかりません。いくつかのアイデアをお聞かせいただければ幸いです。