学習目的で、3つの方法を使用して球を描くことにしました
- ディスプレイリスト
- Voa Vbo(GL_TRIANGLE_STRIPE)
- Vao VboとIbo(GL_TRIANGLES)
iboを使用するとプログラムの実行が速くなると読みましたが、これは本当に本当ですか?100スライスと100スタックの球の場合、2番目の方法では40400の頂点が生成され、3番目の「のみ」は19802になります。これにより、32バイト=659136バイトごとに20598の頂点が節約されます。
verticesSize =(slices * 4)*(stacks + 1);
IBO verticesSize =(slices * 2)*(stacks-1)+2;
ただし、この場合は118800(すべての面を作成するために必要なインデックスの数)* 4(unsignedintのサイズ)=475200バイトのインデックスの配列を作成する必要があります。2番目の方法では15fpsで1000個の球がレンダリングされますが、3番目の方法ではわずか6pfsで1000個の球がレンダリングされます。
- インデックス配列をGL_TRIANGLESからGL_TRIANGLE_STRIPに変換すると、2番目の方法よりも効率的な方法が提供されますか?
- iboを使用して球をレンダリングすることは悪い考えですか?
- なぜ遅いのですか?インデックス配列の順序は重要ですか?
または多分私は私のコードを完全に間違って書いたので、なぜそれはとても苦労します:(誰かが興味を持っているなら、ここに私のコードがありますhttp://pastebin.com/raw.php?i=74jLKV5M