2009-08-30 25 views
1

私はopenglの新機能を使用しているので、glDrawElements関数を使用して2つの別々の四角形を描くことができるかどうかは疑問に思っています(実際には2つ以上を描画したいですが、 2つだけ作成する)?iphone opengl es glDrawElementsの問題

頂点アレイは次のようになります

CGFloat配列[] =

{ 0.2、0.4、 0.2、0.2、 0.4、0.2、 0.4、0.4、

0.8 、1.0, ,0.8,0.8, ,0.08, ,0.01, }。

ありがとうございました!

答えて

5

頂点に添字の配列を使用するか、四角形の間に縮退三角形を使用して、これを行うことができます。インデックス配列を使用すると、どの頂点が何に接続されているかを指定でき、多くの切断オブジェクトを簡単に作成できます。たとえば、私のアプリケーションMoleculesのソースコードを見れば、多くの切断されたアトムとボンドが同じインデックス配列(インデックス付き頂点バッファオブジェクト、実際は)内にレンダリングされます。 iPhoneのグラフィックハードウェアはoptimized for strip-ordered indexed trianglesです。

Davidが指摘しているように、あなたの四角形に三角形ストリップを使用したい場合は、2つの四角形の間に余分な縮退三角形を作成するだけで接続できます。 3番目の頂点は2番目の正方形の始点です。あなたがそれを描くなら、それはあなたの2つの広場の間の線のように見えます。現代のGPUは、これらの縮退した三角形を取り除くのにかなり効率的です。

0

三角形のストリップを使用しているので、2つの四角形の間に余分な三角形を描くので、これを明白な方法で行うことはできません。ここで

は、余分な目に見えない三角形を使用することによってこの問題を回避する方法についての記事のカップルです:

http://www.gamedev.net/reference/articles/article1871.asp http://en.wikipedia.org/wiki/Triangle_strip

あなたは正方形の膨大な数を描画していない場合、あなただけにお勧めします別の短いglDrawElementsコールを貼り付けて、これについてすべて考える必要はありません。

+0

私は2つの正方形に共通の頂点を使うことができます。これは本当に必要なものではありません。grr、問題は共通点を持たないために2つの正方形が必要なことです。最初の4つのverticleの描画関数を呼び出し、最後の4つの頂点をもう一度呼び出すように、2つの四角形を取得しますが、2つの呼び出しを行います。これは避けようとしています。grrr私はこれが可能なのかどうかはわかりません... あなたの答えはたくさんあります!!! – Andy

関連する問題