問題タブ [vao]

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 に答える
215 参照

opengl - OpenGL: 最初の頂点は常に原点に描画されます

最初の頂点がどこにあっても常に (0,0,0) に描画されるという問題がありました (他のすべての位置は正しい)。「init」関数の間違いだと思います。私が使用するポジションは次のとおりです。

私の「init」機能:

そして私の「レンダリング」機能(VAOをレンダリングするためだけで、シェーダーはありません):

また、「glVertexAttribPointer」関数で「stride」と「pointer」の値を調整しようとしましたが、うまくいきませんでした。

0 投票する
2 に答える
133 参照

android - 頂点バッファを頂点配列に変換

私は OpenGL プログラムに取り組んでおり、バウンディング ボックスを計算する必要があります。それを行うコードを作成しましたが、頂点バッファーから頂点の調整を取得できません。誰かが頂点バッファからデータを取得する簡単な方法を説明できますか? AndroidおよびOpenGL esにJavaを使用しています

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

c++ - glVertexAttribPointer GL_INVALID_OPERATION 無効な vao vbo ポインターの使用

最新のドライバーがインストールされた NVIDIA GTX 970 で、OpenGL 4.4 を使用してディファード シェーディングを実装しようとしています。
私のコードは、画面に直接レンダリングして動作しました。2 番目のパスを追加するには、シーンをレンダリングする FBO と、最終イメージをレンダリングするクワッドを作成します。最初のパスで何もレンダリングせず、2 番目のパスの後にクワッドを描画しようとすると、クワッドが表示されます。最初のパスでメッシュ (立方体など) をレンダリングしようとすると、クワッドが消えます。また、次のエラー メッセージが表示されます。
ここに画像の説明を入力

メッシュは AssImp でロードされました。
次のコードを使用して VBO / VAO を作成します。


そして、メッシュを次のようにレンダリングします。


gDEBugger を使用すると、エラー メッセージが glVertexAttribPointer から来ていることがわかりました。しかし、gDEBugger は OpenGL 4 をサポートしていないため、それ自体が多くのエラーをスローし、実際には機能しません。

FBO は次のように生成されます。


createGBuf() 関数は次のようになります。

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

opengl - 複数の VAO を作成することはできません

ゲームで使用する最新 (3.3) OpenGL を使用して単純なグラフィックス システムを作成しようとしています。動的オブジェクトには動的ジオメトリがあり、変更があるたびに VBO が更新されます。この部分は非常に簡単に実装できました。VAO が 1 つだけ使用されている限り、すべてがうまく機能しますが、glGenVertexArrays をさらに呼び出しても別のオブジェクトは作成されず (最初と 2 番目の両方の ID を出力すると 1 が返されます)、新しいオブジェクトの VAO 初期化の何かが最初のオブジェクトをレンダリングします。編集を実行できない人。すべての「最新の OpenGL」チュートリアルでは、1 つのオブジェクトのみを使用するか、かなり重大な競合が発生します (ほとんどの場合、glVertexAttribPointer の使用)。次のコードは、オブジェクトのグラフィック システムに関係しています。(これがどれほど重要かはわかりませんが、ウィンドウとコンテキストの作成に glfw3 を使用しています)。

ゲームオブジェクトの初期化 (グラフィックスニペット)

メッシュを更新

レンダリング オブジェクト

OpenGL の経験が豊富な人が私の間違い (またはその他の問題) を指摘できれば、それは素晴らしいことです。

0 投票する
2 に答える
1721 参照

c++ - さまざまなオブジェクトをレンダリングするための VAO と VBO

この「モデル」クラスを作成して、.obj ファイルをロードし、それらのデータを VBO に割り当てました。そのコードは次のようなものです: (VAO を使用していないことに注意してください)

私は、次のコードが 2 つの異なるオブジェクトをレンダリングするのにうまく機能すると考えていました。

しかし、OpenGL は 2 つの牛または 2 つの立方体を描画するだけであることがわかりました。(init() で最後にロードしたモデルによって異なります) 二頭の牛 2 つの立方体

ところで、最初の画像では、opengl が 2 頭の牛を描画しようとしたことは確かですが、glDrawArrays() 関数は立方体に必要な量の頂点で呼び出されました。

それで、私は何が欠けていますか?バッファ オブジェクトごとに異なる VAO が必要ですか?