タイトルが説明しているように、トライアングル リストを使用して BSpline パッチをテッセレーションしようとしています。
これは私のパッチの正面からの画像です。
私の問題は、この効果を与えるパッチの後部です。
ご覧のとおり、三角形の前の行は、描画されている新しい行に接続しています。行の終わりに達したときにインデックス値を 1 増やすなど、これを回避するためにさまざまな方法を試しました。私が見つけることができる唯一の簡単な修正は、各行を個別のループに入れることです(その行のサイズのためにループ範囲を使用します)。これはまったく直感的ではありません。
私のパッチを描画するためのコードは次のとおりです。
void drawBSplinePatch1(std::vector<int>& sample_elements_out, const int samples)
{
for(int i = 0; i <= 379; i++)
{
// first triangle
sample_elements_out.push_back(i);
sample_elements_out.push_back(i + 1);
sample_elements_out.push_back(i + samples);
// second triangle
sample_elements_out.push_back(i + samples);
sample_elements_out.push_back(i + 1);
sample_elements_out.push_back(i + samples + 1);
}
}