問題タブ [vertex-array]

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

java - OpenGL で 2D 地形を作成する際の問題

少し前に、opengl 頂点を使用して 2D 地形を作成する方法についてこの質問をしました。良い答えが得られましたが、試してみると何も描画されず、何が問題なのか、どのように修正するのかわかりません。

私は今これを持っています:

これは、Mesh クラスも提供する Libgdx によってレンダリングされていますが、これは問題なく動作すると考えているため、実際には関係ありません。私の問題は、頂点とインデックスの生成にありました。私はそれをデバッグする方法もよく知らないので、誰かがそれを見て、何もレンダリングされていない理由を見つけるのを手伝ってもらえますか?

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

c++ - DirectX - 頂点配列を引数としてバッファを作成する

今日、私は DirectX(D3D9) を使い始めました。静的メッシュ クラスを作成するまではすべてうまくいきました。このクラスには、バッファの生成、描画、およびバッファの解放のためのメソッドが含まれています。

問題はバッファ生成機能にあります。関数への引数として頂点配列を渡したい場合、描画時に三角形 (三角形でテスト) は描画されませんが、頂点が関数内で宣言されている場合 (引数)、三角形は描画されません。

頂点クラス:

頂点バッファ生成関数 (動作しません):

頂点バッファ生成関数 (機能します):

何が問題なのかわかりません。助けてくれてありがとう。さらに情報が必要な場合は、私に知らせてください。

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

opengl - glDrawElementsでインデックスデータはどのように処理されますか?

glDrawElementsが呼び出されると、インデックスのバッファを使用して、どの頂点をどの順序で描画するかを決定することを私は知っています。私の質問は、これらのインデックスがテクスチャ、通常、および色の属性にどのように適用されるかです。各頂点に使用されるテクスチャ座標と法線に別のインデックス配列を設定することは可能ですか?または、描画されている頂点と整列するように、法線座標バッファーとテクスチャ座標バッファーを作成する必要がありますか?

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

objective-c - OpenGL ES - 異なるアルファ、回転、およびスケールで 500 以上のパーティクルをバッチ レンダリングする方法は?

一度に 500 ~ 800 個のパーティクルをレンダリングする必要がある iOS ゲームを開発しています。glDrawArrays(..)フレーム レートを大幅に下げることなく、より多くのスプライトをレンダリングできるようにするには、ゲーム内のすべてのスプライト を呼び出すのではなく、OpenGL ES で多くのスプライトをバッチ レンダリングすることをお勧めします。

私の質問は次のとおりです。アルファ、回転、およびスケールがすべて異なるが、同じテクスチャ アトラスを共有する 500 以上のパーティクルをバッチレンダリングするにはどうすればよいですか? この質問の重点は、各パーティクルの異なる アルファ回転、およびスケールにあります。

この質問は、ゲームの速度を落とさずに iPhone OpenGL ES パーティクル システムで 1000 以上のパーティクル (独自の回転、スケール、およびアルファを使用) を描画するにはどうすればよいですか?と非常によく似ていることに気付きました。、ただし、その質問はバッチ レンダリングには対応していません。頂点バッファー オブジェクトを利用する前に、一意のアルファ、回転、スケール (ただしテクスチャは同じ) を使用した OpenGL ES でのバッチ レンダリングについて理解したいと思います。したがって、最終的には VBO を使用する予定ですが、最初はこのアプローチを採用したいと考えています。

コード例は大歓迎です。いくつかの例のようにインデックス配列を使用する場合は、インデックス配列の構造と目的を説明してください。

EDIT OpenGL ES 1.1を使用しています。

EDIT以下は、シーン内の各パーティクルをレンダリングする方法のコード例です。これらは同じテクスチャを共有しており、このコードが実行される前にテクスチャが OpenGL ES 1.1 で既にバインドされていると仮定します。

この方法に代わるコードを提供していただければ幸いです。

0 投票する
4 に答える
73042 参照

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 からの情報の宛先ですか?

ちなみに、私がフォローしているチュートリアルは受け入れられますか? 注意すべきことや、従うべきより良いチュートリアルはありますか?

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

opengl - OpenGL は各頂点バッファ オブジェクトの型をどのように認識しますか?

Vertex Array Objects と Vertex Buffer Objects に関するチュートリアルを読んだところですが、OpenGL が最初の VBO ( vertexBufferObjID[0]) が頂点座標を表し、2 番目の VBO ( vertexBufferObjID[1]) がカラー データを表していることを次のコードから理解できませんか?

編集: Peter の回答のおかげで、各 VBO をシェーダーに接続する次の 2 行のコードが見つかりました (インデックス 0 と 1 は VBO インデックスに関連付けられています)。

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

opengl - 頂点配列内に格納されたグリッドへの OpenGL マッピング テクスチャ

インデックスと頂点を使用して一連の三角形をグリッドの形で描画するコードがあります。すべての頂点はglDrawElements()を使用して描画されます。ここで、頂点ごとに、対応するテクスチャ座標を、グリッド内の正方形を形成する三角形のセットごとに 0 または 1 に設定します。基本的に、「正方形」(2 つの三角形で構成される) のそれぞれにランダムなテクスチャのコラージュを描きたいと考えています。glBegin()固定機能パイプラインを使用して for ループ内でandメソッド呼び出しを使用してこれを行うことができますが、 Vertex ArraysglEnd()を使用してこれを行う方法を知りたいです。私がやろうとしていることのコードビューを以下に示します。

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

ios - iOS 5.1 のストック OpenGL ES アプリでは、宣言した頂点配列を本当に使用していますか?

(XCodeで新しい「OpenGLゲーム」を作成するときに)取得するストックOpenGL ESアプリには、setupGL関数に次のものがあります。

ただし、頂点配列が使用されているようには見えません (私が知る限り、頂点バッファーが OpenGL サーバー メモリにパークされている間、頂点配列はクライアント メモリにとどまります)。

コマンドをコメントアウトするglBindVertexArrayOESと、コードはまったく同じように動作するように見えます。

glBindVertexArrayOESこの xCode サンプルの呼び出しは無関係ですか?

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

opengl - openglインスタンス化された配列を理解する

与えられた

私は、各インデックスをからのようFaceGroupにループすることによって、セット内のそれぞれをレンダリングしていました。cubeIndicesstart_indexstart_index + length

...これで正しい結果が得られます。次に、インスタンス化された配列を使用して同じものをレンダリングしたいと思います。私の推論によると、次のコードは上記のループと同等です。

しかし、それは顔の各グループの最初のものだけをレンダリングするようです(*暫定的な分析、私は間違っているかもしれません)。私は何が間違っているのですか?

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

android-ndk - Android-ndk、glGenVertexArraysOESが見つかりません

Android 用のネイティブ c アプリケーションで VAO を使用したいと考えています。

問題は、それGL_OES_vertex_array_objectがサポートされており、アドレスを取得することもできますが、glBindVertexArrayOES見つからglDeleteVertexArraysOESないglGenVertexArraysOESことです。

の存在は、GL_OES_vertex_array_objectこれらすべての機能にアクセスできることを意味しますか?

VAO初期化のための私のコード:

もちろん、ログメッセージを取得します

Android.mk(少し短縮):

デバイス モデル Android 2.3.5 搭載の Samsung i9003