2013-11-28 9 views
5

私はOpenGLを学習しており、頂点バッファオブジェクトを使用して三角形のファンを見つけました。レンダリングする頂点の配列が与えられている場合、三角形のファンを構築するためにどのくらいの頂点を使用する必要があるのか​​をOpenGLがどのように決定するのですか?それは、頂点の任意の数を使うことができるようです。三角ファンが使用する頂点の数opengl

+0

http://stackoverflow.com/questions/8043923/gl-triangle-fan-explanation –

答えて

3

はここを見て:あなたは、OpenGLに与えるGL_TRIANGLE FAN Explanation

以上の頂点、あなたが得るより多くの三角形を。最初の頂点はすべての三角形に共通です。最初の三角形は頂点1と2と3から成ります。二番目の三角形は1,3と4で構成されます。 n個の頂点に対してn - 2個の三角形が得られます。

2

レンダリングに使用するコマンドで指定します。例えば、drawArrays()drawElements()の両方には、使用する頂点の数を指定するcountパラメータがあります。

12

これは、トライアングルストリップトライアングルファンを比較すると簡単に説明できます。

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

あなたはおそらく知っているように、トライアングルストリップは、頂点を共有する三角形を接続されたセットで、これは、より効率的なメモリ使用量を可能にします。私たちは、これがあるトライアングルファンを持っている一方

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

enter image description here

トライアングルファン

(私たちはすべての重複頂点を格納しないので、我々はメモリを節約します)また、接続された三角形のセット。これらの三角形はすべて共通の頂点を持っていますが、中央の頂点です。 (最初の頂点は常に中央です)

これで、上の同じ画像を取り、頂点の順序を変更できます。それが三角形の扇子を完成させると、このようになります。なぜなら頂点が必要とする方法のため、唯一の着色領域で動作する三角形ファン上記画像三角形ファン

enter image description here

例(ここで、第一、中央頂点です)トライアングルファンに合わせて配置されます。

+0

「ストリップ」は、最初の2つの頂点として常に1つの三角形の**最後の2つの頂点**を使用します次の三角形のだからストリップダイアグラムで最初の3つの三角形を作った後、D-E-Gの代わりに三角形C-E-Gを追加したいと考えています。 D-Eは自動的に三角形4の開始点になるので、これを行うことはできません。共通の頂点があるので、結果は 'fan'を使って行うことができます。結果の図:[Wiki- Triangle fan](https://en.wikipedia.org/wiki/Triangle_fan) – ToolmakerSteve

4

視覚的には、これは三角形のファンがどのように動作するかです:

各三角形は、中央頂点Aを共有し、そして最後の頂点を取り上げ、再使用しています。したがって、ABCを定義した後、それぞれの三角形は1点しか必要としません(例えば、DEF)。

Indices:  A,B,C,D,E,F  [Count: 6] 
Triangles: (A,B,C) 
      (A) (C,D) 
      (A) (D,E) 
      (A)  (E,F) [N=4] --> 4+2 = 6 

これについて別の考え方は、各三角形が中央の頂点から前の三角形に放射するエッジを共有していることです。文字通り紙の折りたたみのようなものです。

            Paper fan

あなたは+ Nはあなたのファンで三角形の数である2つの頂点を、Nを必要としています。

関連する問題