web-dev-qa-db-ja.com

gl_triangle_strip vs gl_triangle_fan

GL_TRIANGLE_STRIPでのみ実行可能なポリゴンとGL_TRIANGLE_FANでのみ実行可能な別のポリゴンの例が必要です。

25
tiggares

Triangle StripTriangle Fanの違いがわかれば、形を作るのは簡単です。

トライアングルストリップ

たとえば、Triangle Stripは、頂点を共有する接続された三角形のセットです。

三角形のストリップの例

Triangle Stripを使用すると、指定された頂点を使用して、次の出力を取得できます。

enter image description here

トライアングルファン

Triangle Fanも接続された三角形のセットですが、これらすべての三角形には共通の頂点があります。これは中央の頂点です。

OpenGLでは、中心の頂点はTriangle Fanで最初に指定された頂点です。

三角ファンの例

Triangle Fanと他の例と同じ頂点を使用すると、出力としてcolored areaのみを取得できます。これは、Triangle Fanの頂点の配列順序の重要性によるものです。 基本的に、すべての頂点は中央の頂点を回る必要があります。

enter image description here

結論

頂点の2つのサンプルセットを見るとわかるように、これらの「出力形状」はTriangle StripTriangle Fanの両方に固有です。

追加

同様の答えをしました ここ 、必要に応じて読むことができます、質問は密接に関連しているため、実際には同じ画像を使用しました。

53
Vallentin

純粋なテキストで答えるのは難しい。ファンの場合、S形状は不可能です(一般的に、every triangleに共通する点があるため、ファンは制限されていることに注意してください)。

他の方法については-それはトリックの質問です。 triangle_stripは、すべてのtriangle_fanポリゴンを処理できますが、少し工夫が必要です。次のポリゴンを検​​討してください(表示されている順序はtriangle_fanのものです)

3--4--5
|\ | /|
2--1--6
   | \|
   8--7

これは次のように行うことができます

2-----4
| \  /|
1--3/7| 
   | \|
   6--5

重複するポリゴンに注意してください。両面ポリゴンまたはオーバーラップを許可しない場合、これはファンのみのポリゴンの例になると思います。

8
Oliver Matthews