問題タブ [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
VBO (または頂点配列) で使用する動的データを格納する最良の方法は何ですか? 私が見た唯一の例は 2D 静的配列であり、その配列へのポインターはストライドとして次のパラメーターと共に使用され、1 つの要素に使用されるバイトなどでした。私のポイントは、たとえば、すでに 1000 個のポイント (2D について話しているので、ポイントは頂点よりも優れていると思います) をライン ストリップとして描画していて、新しいポイントを追加する場合、この方法ではサイズが 1001 の新しい配列を作成する必要があるということです。古いフィールドから新しいフィールドまですべて、新しいポイントを追加してグラフィックのメモリに送信します。最良の方法は、ベクトルまたは deques を一時ストレージとして使用することですが、配列に変換して再度送信する必要があります。
これを行うためのより良い方法はありますか?古いデータを送信せずに、新しいパーツのみを VBO に追加できますか? または、データを保存する/変換せずにベクトルをデータソースとして使用するより良い方法はありますか?
iphone - glPointSizePointerOES と glScalef
ポイント スプライトを使用して、それぞれ異なるサイズの数万のポイントを表示しています。それはうまく機能し、見栄えがよく、非常に高速です。座標とサイズを含む VBO を使用しています (ポイントごとに 4 つの浮動小数点数)。
ここに私の表示コードがあります
さて、ズームインできるようにしたいと思います。つまり、 を使用しますglScalef
。VBO を更新せずに、それに応じてポイントのサイズを変更することは可能ですか? glPointSize
を使用しているため、効果はありませんGL_POINT_SIZE_ARRAY_OES
。
opengl - opengl で Eigen 数学ライブラリを使用する際の問題
現在、Opengl で Eigen 数学ライブラリを使用しようとしています。Vec3 などの Eigen の Vector3f の typedef をいくつか持っているので、それを頂点の座標として使用できます。座標 (vec3)、法線 (vec3)、色 (vec4) を持つ頂点の構造もあります。頂点配列を使用しようとすると (頂点配列が適切に機能するようになったら VBO を使用します)、Eigen の Vector3f を座標として処理する OpenGL に問題があるようです...これらの問題に対処した人はいますか??
opengl - VBOと単一のOpenGLdrawelements呼び出しを使用して複数のオブジェクトを描画するにはどうすればよいですか?
vboと単一のdrawelements呼び出しを使用して複数のオブジェクトを描画することが可能であることを読みました。この例は見つかりませんでした。現在、描画された立方体ごとにdrawelements呼び出しを行っています。これは、ゲーム全体をそれらから作成しているため、フレームレートを殺しています。特にサンプルコードは、どんな助けでも大歓迎です。
opengl - 頂点座標とテクスチャ座標のバッファのサイズが異なりますか?
glDrawElements に異なるサイズのバッファを使用する方法はありますか? 頂点をテクスチャ座標にマップして、テクスチャ座標バッファが実際には頂点バッファよりも小さくなるようにしたいと考えています。
例: 頂点バッファーには 16 個の頂点があり、テクスチャ座標バッファーには 6 個の頂点があります。
どこで何を探すべきか、あらゆる小さなヒントをありがとう。
opengl - メッシュ変形と VBO
私の現在のプロジェクトでは、グリッドに配置された一連の基本的に立方体の 3D モデルをレンダリングします。これらの 3D タイルは、ゲームのダンジョン レベルの壁を形成するため、完全な立方体ではありませんが、すべてのエッジが整列し、すべてが正しくタイル化されるように特に注意を払っています。
高さマップの変形を実装することに興味があります。これには、3D タイルの頂点を手動で変形する必要があるようです。最初に角を上げたり下げたりしてから、2 つの角の間の線を計算し、その線の高さに基づく頂点。かなり簡単に思えます。
私の現在の問題は次のとおりです。私は OpenGL を使用しています。これは VBO と呼ばれる最適化を提供します。これは基本的に (私の理解では) GPU メモリに速度のために保持されているメッシュの静的コピーです。私は VBO を使用してレンダリングします。これは、3 つの基本モデル (L コーナー、ストレートウォール、および L で交わらない場合に壁を結合するためのキャップ) のみを使用するためです。モデルの頂点を手動でいじる必要がある場合、すべてのタイルで VBO のコンテンツを置き換える必要があるように思われます。
単純な回転変換と平行移動変換を使用して同様の効果を実現できるように思えますが、タイル間にギャップを残さずにそれを行う方法がわかりません。何かご意見は?
iphone - 非常に動的なデータに Vertex Buffer Object を使用することは、パフォーマンス面で良い考えですか?
フレームごとに頂点が変わるパーティクルがたくさんあります。頂点は現在、「クライアント」メモリ内の頂点配列を使用して描画されています。頂点バッファー オブジェクトを使用すると、どのようなパフォーマンス特性が期待できますか?
パーティクルの頂点を更新するには多くの glBuffersubData を使用する必要があるため、フレームごとに頂点をビデオ メモリに転送します (通常の頂点配列を使用する場合と同様)。この場合、VBO に利点はありますか?
これは iOS デバイス用です。実際の描画呼び出し: glDrawElements(GL_POINTS,num_particles,GL_UNSIGNED_SHORT,pindices);
またはを使用する必要がありますGL_STREAM_DRAW
かGL_DYNAMIC_DRAW
?
c++ - opengl vbo dma 配列
描画する位置の配列を作成していますが、配列に dma を使用しているときにスタックします
配列のサイズを宣言して入力すると、動作させることができますが、そうすると
鈍くて、何をする必要があるのか 考えられない
qt - OpenGL リソースを共有するための戦略
CAD のようなアプリ (Qt ベース) を作成しています。これは複数のドキュメント インターフェイスであり、各ドキュメントには約 5 つのビューポート (QGLWidget から派生) が含まれます。そのため、フラット シェーダーをアプリケーション全体で共有し、3D アセット (VBO として保存されたモデル) を各ドキュメント、つまり 5 つのビューポートで共有する必要があります。
シェーダー プログラムと VBO Gluint アドレスを共有している限り、すべてが自動的に機能すると思いましたが、そうではありません。各ビューポート/コンテキストには、グラフィックス カード上に独自のアドレス空間があるためだと思います。詳しい方がいらっしゃいましたら、お知らせください。
アプリケーションの起動時にシェーダーをコンパイルしたいのですが、事前に OpenGL を有効な状態にするために有効な QGLWidget が必要なため、これは困難です。しかし、QGLWidgets を (コンストラクターを介して) 共有してリソースを共有する必要があるため、他のものをインスタンス化する前に、1 つを作成して表示する必要があります。しかし、一度に複数のビューをユーザーに表示する必要があるため、これは非常に非現実的です。
画期的なことではないので、これは私が考えているよりも簡単に違いありませんが、私は本当に苦労しています - 誰かが私を正しい方向に向けることができますか?
ありがとう、カム
opengl - タイルベースのゲームとテクスチャアトラスに頂点バッファオブジェクトを使用する
私はOpenGLを使用してC#でタイルベースのゲームを作成しており、コードを可能な限り最適化しようとしています。
私は本のいくつかの記事とセクションを読みましたが、VBOを使用するとパフォーマンスが大幅に向上するという同じ結論に達しました(ご存知かもしれませんが)。
ただし、それらがどのように正確に機能するかはよくわかりません。
私のゲームでは画面にタイルが表示され、一部は変更され、一部は同じままになります。これにVBOを使用するには、各タイルの座標を配列に追加する必要がありますよね?
また、これらのタイルにテクスチャを適用するには、このために別のVBOを作成する必要がありますか?
アニメーション化されたタイルと画面上で静的なタイルがある場合、これらの座標をタイリングするためのコードがどのようになるかはよくわかりません。 誰かが私にこれの簡単な要約を教えてもらえますか?
すべてのタイルのテクスチャアトラスを使用する予定です。テクスチャタイルにこのアトラスをどこから使用し始めるかわかりません。 適用するアトラスのタイルの座標を計算する必要がありますか?アトラスの座標を使用してテクスチャを適用する方法はありますか?
誰かがこれらの質問を解決することができれば、それは大いにありがたいです。必要に応じて、誰かに時間と支援を払い戻すこともできます。
ありがとう、
グレッグ