[解決済み] OpenGL - なぜ、インデックスのためのGL_ELEMENT_ARRAY_BUFFERなのですか?
質問
私は現在OpenGL ES 2.0の領域では初心者で、バインディング、バッファ、シェーダーなどに関してできる限り理解したいと思っています。
今現在、私はちょうど
GL_ELEMENT_ARRAY_BUFFER
と
GL_ARRAY_BUFFER
と、それぞれのプリセットを使用するタイミングについて説明します。
私の現在の理解では、以下のように考えています。
GL_ELEMENT_ARRAY_BUFFER
は、特に当該三角形のインデックス用で、もう一つはそれ以外のもの用です。
どなたか、その理由と正しいかどうかを詳しく教えてください。どのように
GL_ELEMENT_ARRAY_BUFFER
の扱いが違うのでしょうか?
どのように解決するのですか?
GL_ELEMENT_ARRAY_BUFFER
は、提示するバッファが "other"の各要素のインデックスを含んでいることを示すために使用されます (
GL_ARRAY_BUFFER
) バッファを作成します。
そこで、頂点のみ(他のデータはない)の非常に基本的な例として、インデックス・バッファがある場合。
{0, 1, 2}
{0, 2, 3}
で、データバッファには
{{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}}
そして、glDrawElements を呼び出すと、最初の三角形の頂点 0, 1 & 2 と、2 番目の三角形の頂点 0, 2, 3 を選び出すことがわかります(つまり、基本的には正方形です)。
これは、頂点や面の数が多い複雑なモデルの場合、多くの面が同じ頂点を共有するため、より便利になります(したがって、同じデータを再送信する必要はありません)。
注意 上記の例では、頂点のみを表示しています。この中に好きなだけデータを挿入することができます(頂点の色、法線、テクスチャ座標...等)。
関連
-
[解決済み] テスト
-
[解決済み] X リクエストが失敗したときのエラー。BadValue (整数パラメータが操作の範囲外です)
-
[解決済み] glGetShaderiv() GL_COMPILE_STATUS GL_FALSE を返す
-
[解決済み] OpenGL - GLenumはどのように符号なし32ビット整数ですか?
-
[解決済み] glRotate(angle,x,y,z), この場合のx,y,zは何ですか?
-
[解決済み] gl_FragColorとout vec4カラーを使用する?
-
[解決済み] OpenGL - glDepthMaskの使い方についての質問です。
-
[解決済み] 最新のOpenGLでレイトレーシングを行うには?
-
[解決済み】GLSLシェーダをデバッグする方法は?
-
[解決済み] GLSLシェーダーの正しいファイル拡張子は何ですか?[クローズド]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み] OpenGL - なぜ、インデックスのためのGL_ELEMENT_ARRAY_BUFFERなのですか?
-
[解決済み] glGetShaderiv() GL_COMPILE_STATUS GL_FALSE を返す
-
[解決済み] OpenGL GLXエクステンションはサポートされていません
-
[解決済み] コンセプト:glDrawBufferとglDrawBuffersの使い分けは?
-
[解決済み] FOVXの計算(openGL)
-
[解決済み] 最新のOpenGLでレイトレーシングを行うには?
-
[解決済み】GLSLシェーダをデバッグする方法は?
-
[解決済み] OpenGLのフレームバッファとレンダーバッファの概念と違いについて教えてください。
-
[解決済み] glActiveTextureとglBindTextureの違いと関係