問題タブ [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.
c - OpenGL の頂点配列の生成
オブジェクトで使用する頂点と色の配列を生成するために、いくつかの便利なメソッドを使用したいと考えています。配列の生成で見たものから、これは私が現在使用しているものの例です:
}
しかし、私がこのようなものでそれを使用すると:
レンダリングがうまくいかず、レンダリング中にちらつきや色の歪みなどのランダムな問題が発生します。通常定義された配列を使用するときに初期化とレンダリングに同じコードを使用する場合 (生成された頂点とその関連コードを削除する)、問題は発生しません。
誰かが私がどこで間違っているのか知っていますか?
opengl - OpenGLVAOのベストプラクティス
VAOに依存していると思われる問題に直面していますが、よくわかりません。
VAOの正しい使用法についてはよくわかりませんが、GLの初期化中に行っていたのは単純なことでした
続いて
その後、描画パイプラインで、最初にバインドされたVAOを気にせずに、glBindBuffer()、glVertexAttribPointer()、glEnableVertexAttribArray()などを呼び出しました。
これは正しい習慣ですか?
android - Androidの頂点配列オブジェクト?
開発する予定のグラフィックを多用するアプリの準備として、Androidコードを作成しています。私は2004年以来OpenGLを実行していません。http: //www.opengl.org/wiki/Vertex_Array_Objectに出くわし、PCプラットフォームの複数のソースは、vertex-array-objectsを使用することがレンダリングの最良の方法であると主張しています。
私のターゲットプラットフォームは、Android2.3を搭載したMotorolaAtrix2スマートフォンです。
GL_OES_vertex_array_objectに対応する関数のインクルードが見つからないようです。glGenVertexArraysOESに似た関数を呼び出したい。
AndroidでVAOを使用するにはどうすればよいですか?
私の現在のインクルードは
opengl - 頂点配列オブジェクトとは
私は今日、このチュートリアルから OpenGL を学び始めたばかりです: http://openglbook.com/the-book/
第 2 章では、三角形を描き、VAO 以外のすべてを理解しました (この頭字語は OK ですか?)。チュートリアルには次のコードがあります。
コードが必要であることは理解していますが、それが何をするのかわかりません。この時点以降は (破棄する場合を除いて) VaoId を使用したことはありませんが、VaoId がないとコードは機能しません。これはバインドする必要があるためだと思いますが、理由はわかりません。この正確なコードは、すべての OpenGL プログラムの一部である必要がありますか? チュートリアルでは、VAO を次のように説明しています。
頂点配列オブジェクト (または VAO) は、頂点属性が頂点バッファー オブジェクト (または VBO) に格納される方法を記述するオブジェクトです。これは、VAO が頂点データを格納する実際のオブジェクトではなく、頂点データの記述子であることを意味します。頂点属性は、glVertexAttribPointer 関数と、その 2 つの姉妹関数 glVertexAttribIPointer および glVertexAttribLPointer によって記述できます。最初のものについては以下で説明します。
VAO が頂点属性をどのように記述しているかわかりません。私はそれらを決して説明していません。glVertexAttribPointer から情報を取得しますか? きっとこれだと思います。VAO は単に glVertexAttribPointer からの情報の宛先ですか?
ちなみに、私がフォローしているチュートリアルは受け入れられますか? 注意すべきことや、従うべきより良いチュートリアルはありますか?
opengl - OpenGL 頂点配列オブジェクト
OpenGL の頂点配列オブジェクトは VRam に保存されますか?
私が本当に求めているのは、たとえばAssimpを使用してモデルをロードすると、頂点とインデックスのデータが頂点配列オブジェクトに読み込まれます。Ram でデータを複製しますか、それとも GPU にコピーしますか?
opengl - OpenGL 頂点配列/バッファ オブジェクト
質問1
そのVAOが削除されると、特定のVAOの下で作成された頂点バッファオブジェクトは削除されますか?
例:
後で を呼び出すとglDeleteVertexArrays(1, &VAO);
、bufferObject
も削除されますか?
私が質問している理由は、これらのバッファ オブジェクトを削除していない例を Web 上でいくつか見たからです。
質問2
バッファ オブジェクトに割り当てることができるメモリの最大量はどれくらいですか? もちろん、システムに依存しているに違いありませんが、見積もりが見つからないようです。ビデオ RAM が十分に大きくない場合はどうなりますか? どうすればわかりますか?
opengl - 頂点配列オブジェクトを使用するには何が必要ですか?
プログラムの1つで頂点配列オブジェクトを使用しようとしていますが、私のPCはこの機能をサポートしていないようです。
この関数を実行するglewIsSupported("GL_ARB_vertex_array_object")
と、falseが返されます。
ビデオドライバーを更新しようとすると、頂点配列オブジェクトが使用可能になる可能性がありますか?
ビデオカードのサポートをOpenGLで確認するにはどうすればよいですか?
頂点配列オブジェクトは、OpenGL 3.0以降で使用できますか?
python - PyOpenGL で頂点配列オブジェクトと glDrawElements を使用して描画する方法
画面に緑色の三角形を描画するだけの次のコードがあります。頂点配列オブジェクトとインデックス バッファーを使用して描画し、私が作成できる最も単純なシェーダーを備えています。
最初はインデックスバッファを使用しておらず、正常に機能する描画呼び出しを行っglDrawArrays
ていましたが、使用するように変更するとglDrawElements
、画面に何も描画されません (完全に黒です)。
単にコメントアウトして行のglDrawElements
コメントを外すと、glDrawArrays
正しく機能するため、少なくとも頂点 VBO が正しく入力されます。
ここで何が間違っていますか?私が見つけたすべての OpenGL ドキュメントは、私がこれを正しく行っていることを示唆しているため、OpenGL 自体または PyOpenGL ラッパーのいずれかについて明らかに誤解しています。
編集
次のような VBO ラッパーではなく、より直接的な OpenGL 関数を使用するように VAO セットアップを変更します。
違いはありません。glDrawArrays
まだ動作しますが、glDrawElements
動作しません。
opengl - 頂点配列、頂点バッファー オブジェクト、およびシェーダーのスウィズリング
頂点配列、頂点バッファー オブジェクト、およびシェーダーの基本的な理解があります。ただし、それらを再利用できるかどうか、または関連付けが全単射であるかどうかはわかりません。
例えば:
- 異なる頂点配列で同じ頂点バッファー オブジェクトを使用できますか?
- 異なるシェーダーで同じ頂点配列を使用できますか?
opengl - 現在バインドされている頂点配列オブジェクトを取得するには?
現在バインドされている頂点配列オブジェクトの名前を取得するにはどうすればよいですか?
マニュアルを調べましたが、glGet() で使用する列挙型が見つかりませんでした。