問題タブ [vertex-buffer-objects]
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.
opengl - UseVertexBufferObject が有効になっている場合にのみ、開いているシーン グラフがレンダリングされるのはなぜですか?
仕事で OpenSceneGraph (Qt Gui にインターフェース) を使用してプログラムを作成しましたが、すべて問題ありませんでした。プログラムを家に持ち帰った (つまり、ソース コードを家に持ち帰り、自宅でコンパイルした) ため、オプションを設定しない限りシーンsetUseVertexBufferObjects(true)は表示されません。このように設定されていません (つまり、オブジェクトはカリングされていません)。モデルはレンダリング時に間違いなくビューアー カメラの子であり、カリングにつながるノード マスクも使用しません。少なくとも 1 つのオブジェクトの位置をカメラのビュー内に再設定したので、視錐台のカリングにはなりません。
私のシェーダーは を使用#version330しており、職場で使用しているグラフィック カードは NVidia Quadro 4000 (と思います) であり、自宅で使用しているグラフィック カードは Radeon HD 5870 であるため、ハードウェアに問題はありません。
OpenSceneGraph のインストールは新しいものなので、明らかにここで間違いを犯した可能性がありますが、どの設定がこの「動作」につながるかはわかりません。
では、なぜこのようなことが起こるのでしょうか?
opengl - VBO はどのように VAO にアタッチされますか
VAO は Vertex Array Object で、VBO は Vertex Buffer Object です。VAO と VBO の作成とバインド/バインド解除の呼び出しには、以下に示す一般的な形式があります。
私はインターネット上のいくつかのチュートリアルに従いました.VBOはVAOにバインドされていると言われていますが、上記のコードでは、VBOとVAOの間で「接続」または「バインディング」がどのように確立されるかわかりません? つまり、どの VBO がどの VAO にバインドされているか、また VBO が複数の VAO にバインドされている場合はどうすればよいのでしょうか?
したがって、基本的な質問は次のとおりです。VBO が VAO にバインドされているとはどういう意味ですか。どの VBO がどの VAO にバインドされているかをどのように知ることができ、このバインドがどのように確立されるのでしょうか。