問題タブ [vbo]
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 - OpenGL でテクスチャを VBO にマッピングする際の問題
OpenGL を使用してテクスチャをジオメトリに適切にマップするのに問題があります。実際、以前はうまく機能していた色補間を壊してしまったようです。SDL、GLee、および SOIL を使用する C99 でテスト ケースを作成しました。
レンダリングされる唯一のものは、glClearColor の上にある無地の青い正方形です。
どんな助けでも大歓迎です。
回答ありがとうございます。完全を期すために固定コードを添付しました。
haskell - VBO/FBO/DisplayLists は Haskell の OpenGl バインディングでどのように機能しますか?
Haskell は、値の計算による計算に関するものです。
DisplayLists / FBOs / VBOs は本質的に非常にステートフルです。つまり、「ディスプレイリスト/バッファオブジェクトをください」。
これらのバインディングは Haskell でどのように機能しますか?
[私はモナドを理解しています。そのため、ふわふわした説明ではなく、技術的な説明が優先されます]。
ありがとう!
opengl - 頂点バッファ オブジェクトが SDL ウィンドウに描画されない
Xcode で opengl SDL テンプレートを使用しているだけで、すべて正常に動作します。Atlantis のコードを削除し、メインの拡張子を .mm に変更してから、テスト コードを drawGL に追加しました。この時点で drawGL 内の単純な三角形を (イミディエイト モードを使用して) 描画すると、白い三角形が表示されますが、頂点バッファー オブジェクトを使用して描画するコードを追加すると、黒いウィンドウが表示されます。
ここに私のVBO描画コードがあります:
c++ - 頂点バッファ オブジェクトを使用した OpenGL 高速テクスチャ描画。これはそれを行う方法ですか?
OpenGLで2Dゲームを作っています。VBO を使用してテクスチャの描画を高速化したいと考えています。
現在、私は即時モードを使用しています。テクスチャを回転およびスケーリングするときに、独自の座標を生成しています。ポリゴン プリミティブを使用してテクスチャの角を丸くする機能もあります。
オフセットを含まないテクスチャの側面の頂点を持つ VBO を作成するのが最も速いので、glTranslate、glScale、glRotate を使用してテクスチャの描画位置を移動できると考えていました。次に、同じ VBO を変更せずに使用して、毎回テクスチャを描画できます。丸みを帯びた角の座標を追加する必要がある場合にのみ、VBO を変更できました。
それはこれを行うための最良の方法ですか?その際、どのような点に注意すればよいですか?最新のグラフィックス カードで GL_QUADS の代わりに GL_TRIANGLES を使用するのが本当に最速ですか?
回答ありがとうございます。
c++ - OpenGL Vertex Buffer Object コードが悪い出力を与える
私の Vertex Buffer Object コードは、テクスチャを適切にレンダリングするはずですが、代わりにテクスチャがいくつかの三角形の形で奇妙にレンダリングされています。
どうなる - http://godofgod.co.uk/my_files/wrong.png
何が起こるか - http://godofgod.co.uk/my_files/right.png
この関数は VBO を作成し、頂点とテクスチャの座標データを設定します。
これは、VBO でテクスチャを描画することになっている別の関数からの関連コードです。
コードが最初の 3 つの座標 (左上、左下、右上) と最後の 3 つ (左下、右上、右下) を使用して、テクスチャで三角形を描画することを望んでいました。最も効率的な方法で正しくデータを取得します。なぜ三角形がより効率的になる必要があるのか わかりませんが、どうやらそれが進むべき道です。もちろん、何らかの理由で失敗します。
何が壊れているのかを尋ねていますが、一般的に正しい方法で進んでいますか?
ありがとうございました。
c++ - glDrawArrays() を使用しているときにすべての頂点をレンダリングするために VBO の長さを取得するにはどうすればよいですか?
関数で VBO を作成し、VBO ID のみを返したいと考えています。
別の関数で glDrawArrays を使用し、頂点の数を渡す必要なく、VBO 内のすべての頂点を描画する必要があります。VBO には、テクスチャ座標データも含まれています。
ありがとうございました。
graphics - 単純なシェーダー + VBO を使用しようとしたときの問題
こんにちは、学習目的で次の関数を VBO ベースの関数に変換しようとしています。静的なテクスチャが画面に表示されます。私は、iPhone のシェーダーで OpenGL ES 2.0 を使用しています (この場合、通常の OpenGL とほぼ同じである必要があります)。
VBO に変換するためにこれを実行しようとしましたが、このバージョンでは画面に何も表示されません。
どちらの場合も、この単純な頂点シェーダーを使用しています
その mvp を使用して 2D で glOrthof をシミュレートしているため、gl_Position は mvp * vec4 の積に等しい
そしてこのフラグメントシェーダー
私は本当にこれについて助けが必要です.2番目のケースでは私のシェーダーが間違っているのでしょうか?
前もって感謝します。
c++ - VBOとCPU使用率の使用は非常に高い
もうどうしたらいいのかよくわかりません。アプリケーションにVBOを使用させましたが、CPU使用率は70年代と80年代になります。私のレンダリング手順は次のように機能します。
シェイプがテッセレートされていない場合は、カメラ変換を設定し、テッセレートします。VBOがある場合はVBOを作成し、それを使用します。
ディスプレイリストもあることに気付くでしょう。VBOがサポートされていない場合は、これらを使用する可能性があります。私は行って、PC上で60fpsで32000ポリメッシュをレンダリングし、4%のCPUを使用するOpenGLデモを見つけました。vbosを使用して60fpsで約10,000ポリゴンをレンダリングし、70〜80%を使用しています。
これが私のレンダリング手順です:
なぜこんなに高いCPU使用率が得られるのでしょうか?
c++ - 立方体の VBO に複数のテクスチャを適用する方法は?
私は VBO を初めて使用し、VBO の作成と使用に関する記事をいくつか読みました。多数の回転する立方体を作成するアプリケーションに取り組んでいます。テキスト メッセージをアプリケーションにプッシュするサーバーに接続しています。6 つのテキスト メッセージを受信したら、Pango と Cairo を使用してこれらのメッセージをレンダリングします。次に、これら 6 つのレンダリングされたメッセージからテクスチャを作成し、それらを新しいキューブに適用します。
通常は 2D テクスチャを使用して GL_QUAD に適用するだけですが、VBO を使用して作成された立方体に 6 つのテクスチャを適用する方法がわかりません。
VBO を使用してキューブを作成する方法の例を見つけました。それらは次のように作成されます。
VBO
VBO を使用する Cube クラス
c++ - C++でのOpenGlVBOの技術
OpenGLプログラムでのVBOの適切な使用法について少し混乱しています。
4096x4096のグレースケール高さマップから呼び出されたマップを「全体」マップとして使用して、地形ページングアルゴリズムを作成したいと思います。
私が読んだところによると、VBOに格納されている各頂点は64バイトを占めます。
私が抱えている問題は、ほとんどの情報源が、単一のVBOのサイズは1〜4 MBである必要があり、VBOは少ない方がよいと述べていることです。しかし、私の計算によれば、各頂点を保存するには、合計で約1ギガバイトのデータが必要になります。(4096x4096x64)これには、各頂点を三角形ごとに複数回格納する必要がある場合があることは含まれていません。
また、コードの地形部分が機能するようになると、このマップに表示されるさまざまな車両や人に対応することもできません。
私が調べたもう1つの解決策は、プログラムの実行中にハードドライブからデータをページングすることでしたが、別の情報源によると、プログラムの実行中に作成および破棄することはお勧めできません。また、VBOの数をできるだけ少なくすることをお勧めします。可能。
私が本当に知りたいのは、何が欠けているのかということです。64x64ブロックでテクスチャをロードしている場合でも、最大VBOサイズの4mbは非常に小さいように見えるため、ここで何らかの大規模な監視を行っていると確信しています。また、マップに入力されるさまざまなインタラクティブオブジェクトも含まれます。
それとも、私が達成できることへの私の期待は非現実的ですか?私が知らないより良い方法がありますか?私はOblivionやFallout3のようなゲームを見ていて、ある程度はBoundless Planetを見ていて、広大な地形を見て、一体どうやってそれが可能になるのか疑問に思っています。
私はコーディング方法を理解しています。これはOpenGLを深く掘り下げるのは初めてではありませんが、VBOを理解して利用するのは初めてです。
誰かがVBOの私の理解が間違っているところに光を当てることができれば、それは大いにありがたいです。