行ごとに三角形のストリップでレンダリングされたハイトマップを完成させました。私の解決策は次のとおりです。
height=data[k];
coords.push_back((float)col);
coords.push_back((float)(height/heightscale));
coords.push_back((float)row);
k+=3; //red is enough, im using greyscale
およびストリップのインデックス:
for(int row=0;row<infoheader.biHeight-1;row++)
{
for(int col=0;col<infoheader.biWidth;col++)
{
indexes.push_back((row+1)*infoheader.biWidth+col);
indexes.push_back(row*infoheader.biWidth+col);
}
}
行ごとのループで VertexArrayObject と drawelements を使用します。今、私は高さに基づいて単一のシェーダーの色付けでそれを使用していますが、テクスチャと組み合わせたいです(高さに基づいていますが、それでも私の問題ではありません)
四角形を形成する2つの三角形にテクスチャを配置したいのですが、
0,1-1,1
| /|
| / |
|/ |
0,0-1,0
...しかし、実装方法が本当にわかりません。これに関するすべてのトピックを読みましたが、機能しませんでした(単色のみが表示されるか、マップ全体が黒でした)。
では、最初の「クワッド」(2 つの三角形) のみの配列を作成し、インデックスを増やすなどして、それに基づいてマップ全体をテクスチャリングすることは可能ですか? はいの場合、どうすればこれを行うことができますか。もう 1 つ: マップ全体の上に 1 つのテクスチャを配置して、地形全体にスケーリングするにはどうすればよいでしょうか。
1 つのクワッドまたは 2 つの三角形を含む三角形ストリップでそれらを行うことができましたが、〜 3 000 000 の三角形ではできませんでした。
主な問題はインデックス付けです。私が正しければ、インデックスに基づいて頂点の位置だけでなく、色とテクスチャ座標も描画するからです。
私の地図: http://kepfeltoltes.hu/view/130827/1094341850Untitled_www.kepfeltoltes.hu_.png 私はそれがかなり「過大な」質問であることを知っていますが、まだ正しい方法を見つけていません。編集:テクスチャを並べて表示したい。