問題タブ [vertex-attributes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
794 参照

c++ - OpenGL - 同じシェーダーを使用する複数の VBO と VAO を持つ glVertexAttribPointer

レンダリング エンジンに複数の VBO と一致する VAO が設定されています。glVertexAttribPointer の使用について少し混乱しています。私はそれを設定し、うまくレンダリングしますが、これらの異なるオブジェクトすべてで 1 つのシェーダー (基本的な拡散) を使用しているかどうか、VAO を作成するたびに glVertexAttribPointer を設定するかどうかに興味があります。私が投げかけているのは、属性ポインターの設定がシェーダーまたは頂点配列オブジェクトで設定されているかどうかを把握しようとしていると思います。頂点配列オブジェクトだと思いますが、明確にすることを望んでいます。

0 投票する
1 に答える
4224 参照

opengl - OpenGL バッファ - ストライド vs 密集

ストライド頂点バッファーを使用する場合と、各属性にぎっしり詰まったバッファーを使用する場合の長所と短所は何ですか? 私が意味するのは、たとえば次のとおりです。

ストライド:xyzrgb xyzrgb xyzrgb

きつい:xyzxyzxyz rgbrgbrgb

一見、stride を使用すると簡単にサイズを変更できるように見えますが、 で再割り当てすると、頂点バッファーの内容が削除されますglBufferData()

位置、色、texcoords がローカル メモリ内の異なる配列から取得される可能性があり、ストライド バッファ データ関数がないため、タイトなモデルを使用するのが最善のように思えます。glBufferSubData()アップロードする前に、すべての配列をインターリーブ バッファにコピーするか、属性ごとに頂点ごとに 1つ使用する必要があります (ひどい考えだと思います)。

インターリーブ バッファ (ストライド) を使用する一般的な方法があるようです。何故ですか?ここに欠けているものはありますか?

0 投票する
1 に答える
322 参照

opengl - OpenGL: インターリーブされた VBO と GLSL でこれらのコードが何も描画しない理由

私は多くの論文やブログを見てきましたが、最終的にクワッドを生成するこれらのコードにたどり着きました: gProgram のプログラムストア

ここに私の頂点データがあります: gVertexVBO に格納します

インデックス データ: gIndexVBO に格納

描画セクションでは、私はこれが好きです:

ps: gtransform は恒等行列として設定されます

これらのコード内にエラーがあると思いますが、どこにあるのかわかりません。助けていただければ幸いです。

初期化セクションでコードを確認する必要がある場合は、返信に投稿します。ありがとうございます!

0 投票する
1 に答える
481 参照

opengl - glDrawElements() & glMultiDrawElements() で出力を取得できない

ユーザーがキャンバスをクリックして頂点を指定し、頂点を使用してポリゴンを描画できるグラフィックアプリを構築中です。

アプリは、ライン、トライアングル、ポリゴン モードをサポートしています。線と三角形の描画は、クリック数をカウントすることによって行われます。次に、頂点配列が作成され、データがバッファにバインドされ、 を使用してレンダリングされますglDrawArrays()。難しいのはポリゴンモードです。ユーザーは任意の数の頂点を指定でき、マウスの右ボタンをクリックすると描画がトリガーされます。最初は を使用する予定でしたglMultiDrawElementsが、どういうわけか出力が得られませんでした。そこでglDrawElements()、ループで呼び出してみました。まだ運がない。glDrawElements()/glMultiDrawElements()VBO と VAO の使用、glVertexPointer()およびとの使用に関する多くのドキュメントを検索して読みましたglColorPointer。まだ運がありません。

頂点属性を追跡するために以下を使用しました。

GLfloat ** polygonVertices; //すべてのポリゴン頂点リストがこれに入る..
Gluint * polygonIndicesCounts; //各ポリゴンが持っている頂点の数を保持するポインター
** polygonIndices; //ポリゴンに対応する頂点のインデックスを保持するポインタの配列
GLfloat * polygonColors; //マウスをクリックするたびに、色がランダムに生成されます。

およびレンダリング用のコード:

0 投票する
1 に答える
113 参照

opengl - VBO をカスタム オブジェクトに格納する方法

オブジェクトの頂点、法線、およびテクスチャ情報を各インスタンス内に頂点バッファ オブジェクトの形式で保存したいのですが、Cat方法がわかりません。私はこのようなものが欲しい:

特定の VBO を含むオブジェクトを作成できない場合、どうしますか?

0 投票する
1 に答える
75 参照

opengl - 頂点属性の定義中に発生する可能性のあるバグ

頂点シェーダーをコンパイルしようとすると、セグメンテーション エラーが発生します。頂点属性を渡す際の問題を特定したと思います。次の行はコンパイルされます (動作しない可能性がありますが、それでもコンパイルされます)。

また

しかし

コンパイルされません。vec4 属性は 3 つしか定義できないと思います。ただし、GL_MAX_VERTEX_ATTRIBS を指定した glGetIntegerv は、OpenGL 標準に準拠した 16 を返します。これは私のハードウェアに関連する何らかのバグですか? Intel グラフィックス カードを使用しています

とメサ 10:

OSはubuntu14.04です。

0 投票する
1 に答える
155 参照

opengl - Haskell opengl 属性がアクティブではありません

頂点バッファ オブジェクトからいくつかのデータをレンダリングしようとしています。ただし、 glutil と raw をほとんど使用していません。プログラムを実行すると、無限ループに陥り、下に表示されているエラーが発生します。

頂点シェーダー

フラグメントシェーダー

430 を使用してみましたが、うまくいきませんでした。ということで、150を使っている人が多かったので使ってみました。さらに、生を使用しながらレイアウトを使用しようとしましたが、うまくいきませんでした。

使用例

エラー