質問

ようにしていくというものはあまり意味がけることができる利用連動配列のOpenGL頂点が描かれる、とgl[マルチ]DrawElementsに対しうるのは簡単で連続した配列の頂点、とgl[マルチ]DrawArrays.

(更新: については回答いたしますが、必ず使用して指頂点.)

ごあい前後にこの問題に数回、私の概要現在の私の理解の人にはいい感じになってきたような最後には正しいと、その点も残りの誤解です。具体的には、三つの結論は、胆に見えます。ください修正しなければならない場合はその考えは間違っている。

簡単なる場合があった場合は形状のメッシュ形曲面にこの場合の頂点の中のメッシュにおいて同一の属性(位置、通常、色、質感coordなど)の三角形の頂点。

これを踏まえて、考:

1.オメトリの少ない縫い目、インデックスの配列があります。

ォル1必ず、以下の場合を除

のための幾何学とは非常に'blocky、毎に端を表し、縫い目から、物価連動アレイがあります。をキューブの簡単な例としては、各点には三つの異なる顔を持たな頂点を共有し、一つの頂点の表面でどのように、色や質感共ord)が異なります。そして明示的に導入冗長化の頂点の位置へ配列によって発見されており、そのための位置で使用でき数が異なる以下の二つの条件を考慮。この索引の配列が満を利用します。

例えばレンダリング時に一つの面のキューブ:

 0     1
  o---o
  |\  |
  | \ |
  |  \|
  o---o
 3     2

きるコミュニケーションでの縫い目の間にこの顔、すべての隣接する面に平均よりこれらの頂点を交換することが可能に欠かすことのできない

場合はレンダリングを使用GL_TRIANGLE_FAN(_STRIP、それらの顔の描画できること:

verts  = [v0, v1, v2, v3]
colors = [c0, c0, c0, c0]
normal = [n0, n0, n0, n0]

追加の指標になることを許しませんで簡単です。

このことからその結果る:

2.レンダリング時に形状のすべて縫い目は縫い目がGL_TRIANGLE_STRIPは_FAN、そんな利用索引の配列は、代わりにも使用gl[マルチ]DrawArrays.

(更新: 回答ることを示すこの結論は間違っています。ものの指数を許可しないが抑制できるだけでなく、サイズの配列をここでも利用することでその性能特典として、コメント)

唯一の例外ルール2:

使用時GL_TRIANGLESの代わりに、紙やファン、その半分の頂点での再使用、同一の法線や色などの、各キューブの顔として描画され二つの別々の三角形.また、同シングルキューブフェース:

 0     1
  o---o
  |\  |
  | \ |
  |  \|
  o---o
 3     2

な指標を用いGL_TRIANGLES、配列のようなものです:

verts =   [v0, v1, v2,  v2, v3, v0]
normals = [n0, n0, n0,  n0, n0, n0]
colors =  [c0, c0, c0,  c0, c0, c0]

以来、頂点、通常のはが3のfloatそれぞれの色が3バイトとは、各キューブ面について

verts   = 6 * 3 floats = 18 floats
normals = 6 * 3 floats = 18 floats
colors  = 6 * 3 bytes  = 18 bytes

= 36 floats and 18 bytes per cube face.

いを理解するバイト数が変われば異なる種類を使い、正確な数だけイラストです。)

と指数を簡単化本少し、:

verts   = [v0, v1, v2, v3]     (4 * 3 = 12 floats)
normals = [n0, n0, n0, n0]     (4 * 3 = 12 floats)
colors  = [c0, c0, c0, c0]     (4 * 3 = 12 bytes)
indices = [0, 1, 2,  2, 3, 0]  (6 shorts)

= 24 floats + 12 bytes, and maybe 6 shorts, per cube face.

どの場合には、頂点0の2倍で表される度にそれぞれのverts,以下の二つの条件を考慮色arrays.この音のような小さな勝利のための指標でも、極端な場合の一形状の端れるメカニズムの

これを踏まえて、考:

3.使用時GL_TRIANGLES、一般的に使用索引の配列で形状であるすべての条件により異なります。

修正してください私の結論に大胆な場合はその考えは間違っている。

役に立ちましたか?

解決

このことからその結果がレンダリング形状のすべて縫い目は縫い目がGL_TRIANGLE_STRIPは_FAN、そんな利用索引の配列は、代わりにも使用gl[マルチ]DrawArrays.

ない、その理由は単純である。

ご結果に基づいて分析単一のクアッドで構成するふたつの三角形に組み.これら二つの三角形を描画用の三角ファン/ストリップは単純にすることが求められている利用連動配列.

がついて考えるという大きな地形を予想しました。各地形ブロックが描かれていquad、三角ファン/ストリッププリミティブ.例えば:

各三角形ストリップを図って共通すべての頂点が隣接する三角形帯、指標を用できる圧縮形状を定義ではなく、繰り返しの頂点ごとの三角形ストリップがあります。


基本的には、プリミティブ(三角ファン帯)を使用した指置きを共有できるもの頂点は単一のプリミティブが別。

共有の情報を保存した情報伝送の帯域幅ではないものです。実際に物価連動アレイを許可:

  • 回避の同期情報と同じ"の概念"頂点の指定を使用しく
  • すると同じシェーダー操作の一つの頂点の代わりに行くと、各頂点の複製.
  • また、組み合わせの三角形帯/ファン指数の適用圧縮指数のバッファは、ストリップ/ファン仕様による指標をもとに三角形が必要で常に3つの指標のための各顔)です。

索引の配列は使用できませんとしているたびに、指定された頂点で毎情報(色彩などから、以下のフォームに記入して送信など)別の一致の頂点。


の完全性、サイズに必要な情報幾何学の仕様だけではない要因が既に決定の最適レンダリング動作します。

たりのgdpのもう一つの基本的要因のためのプリミティブ描画がキャッシュのローカライズデータです。悪指定した形状データ(インターリーブバッファオブジェクトでは、長三角形帯...)の原因で多くのキャッシュ題,つ品位を傷つけるグラフィックカードます。

を最適化するための、レンダリング操作の頂点の仕様は、注文方法で再利用以前に指定された頂点、最ています。このように、グラフィックキャッシュカード線で再利用以前に指定された頂点なし取得します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top