0

モデルを解析し、OpenGL ES 2.0で4頂点ポリゴン(長方形)をレンダリングしたいと思います。2つの三角形を使用する代わりに、各四角形/長方形に1つの三角ストリップを使用することを考えました。

問題は、私の長方形がモデル全体で接続されていないことです。3つのクワッド(12の頂点)がある場合、次のように描画します(numOfQuadFaces = 3):

glDrawArrays(GL_TRIANGLE_STRIP, 0, numOfQuadFaces*4);

新しいクワッドが4つの頂点ごとに開始されるように頂点配列が順序付けられています。しかしもちろん、OpenGLは、配列の3番目の頂点を超えるすべての新しい頂点に対して新しい三角形が開始されるように解釈します。長さ4の個々の三角ストリップ/クワッドが必要な場所を指定できますか?-これと同じように描画するため(もちろんglDrawArrays-呼び出しのみの場合):

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDrawArrays(GL_TRIANGLE_STRIP, 4, 4);
glDrawArrays(GL_TRIANGLE_STRIP, 8, 4);
4

2 に答える 2

3

最善のオプションは、四角形を三角形に変換することです。通常のOpenGLでは、インデックス付き三角ストリップを使用glPrimitiveRestartIndexした場合、基本的に、送信時にストリップを再起動するインデックスを指定するものがありますが、これはOpenGL ES 2.0では使用できないため、役に立たないと思います。

もう1つのオプションは、「ストリップ」を縮退した三角形に接続することですが、これには、四角形を三角形(2つの追加の頂点)に変換するのと同じくらい多くのメモリが必要になります。

于 2012-04-18T14:02:00.827 に答える
0

縮退した三角形をレンダリングするには、余分なポイントを挿入して線状の三角形を作成します。グラフィックスドライバーはこれらを最適化し、四角い形(2つの三角形)の切断された三角ストリップをレンダリングします。

于 2012-08-05T12:49:45.417 に答える