問題タブ [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 投票する
0 に答える
474 参照

java - jogl の glDrawElements を含む頂点配列がレンダリングされない

thisthisに従って、jogl から頂点配列を取得しようとしましたが、エラーは発生しなくなりましたが、空白の画面以外はレンダリングされません。コードは次のとおりです。

ティーポット コードのコメントを外すと、それがわかるので、glDrawElements に固有のものであると確信しています。正しい gl.GL_TYPE 定数を使用しているという確信はほとんどありませんが、私が試したものはどれも機能しませんでした。

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

c++ - OPENGL: VBO を使用した Square クラス

そのため、バックグラウンドで多くの描画を処理する基本的な「Drawable」クラスを作成しようとしていますが、最新の OpenGL を使用したいと考えています (begin ステートメントと end ステートメントはありません)。draw()を実行すると、空白の画面が表示され続けます。

デバッガーを実行して確認したところ、配列は位置に 3xFLOAT、色に 4xFLOAT で適切に初期化されています。何がうまくいかないのですか?私はこのライブラリに非常に慣れていません。私の例では、赤い立方体を (+-0.5, +-0.5, 0.0) に描画しようとするため、indexData 配列は { 0, 1, 2, 3 } になります。

GLSL 頂点シェーダー:

GLSL フラグメント シェーダー:

0 投票する
0 に答える
161 参照

c++ - OpenGL 4.3+ 要素配列

コア OpenGL 4.3 バックエンドを使用して、C++14 で独自のゲーム エンジンを構築しています。

私は次のチュートリアルに従っています:

以下の本もフォローしています。

  • OpenGL SuperBible (第 6 版)
  • OpenGL 4 シェーディング言語クックブック (第 2 版)

これらの本はどちらも OpenGL 4.3 で動作しますが、learnopengl.com では OpenGL 3.3 を教えています。私は OpenGL 3.3 に従っており、他のリソースが新しい方法を導入するたびに変更するので、これは問題ではありません。

31 ページの Wolff の本に見られるように、私は現在、古い OpenGL 3.3 の方法から新しい OpenGL 4.3 の方法に頂点配列を移植するのに少し問題があります。

古い方法:

新しい方法:

うまくいけば、これで私が話していることを理解していただけたでしょうか。私の本当の問題は要素配列に関するもので、Wolff はあまり詳しく説明していません。さらに、SuperBible で要素配列を見つけることができないようで、インデックスが誤解を招きます (SuperBible を読む本としてではなく、リファレンスとして扱っていることに注意してください)。

オンライン ドキュメントに従って、次のコードを適用する必要があると思います。

ただし、メッシュが見えないようです。私が見落としていたかもしれない要素配列を処理する新しい方法があるかどうか疑問に思っていますか?

乾杯!

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

opengl - 1 つの Vertex Array オブジェクトに複数のストレージ レイアウトを含める方法は?

ストレージ レイアウトとは、 で定義するものを意味しますglVertexAttribPointer。この状態は、現在バインドされている VAO またはバインド先のバッファーに保存されGL_ARRAY_BUFFERますか?

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

android - x 軸または y 軸に頂点を反映させた後、反時計回りの巻き順を復元する方法は?

頂点配列が呼び出され、CCW 巻きで呼び出さverticesれるfinalインデックス バッファーを使用して、OpenGL でポリゴンをレンダリングしています。DRAW_ORDERバック フェース カリングを有効にして、 を使用してドロー コールを行いますglDrawElements(GL_TRIANGLES, DRAW_ORDER.capacity(), GL_UNSIGNED_SHORT, DRAW_ORDER)

行列変換を介して x 軸または y 軸で反射verticesすると、反射によって頂点の向きが逆になり、 の反時計回りの巻き順と一致しなくなるため、ポリゴンがカリングされDRAW_ORDERます。

verticesカリングを無効にすることで問題を防ぐことができますが、パフォーマンスのために、順列経由の向きを復元する方法を見つけたいと思います。たとえば、ポリゴンが三角形の場合、反射の後に 2 番目と 3 番目の頂点を交換するだけで、反時計回りの向きに戻すことができます。このアプローチを任意の数の頂点とインデックスを持つポリゴンに拡張するにはどうすればよいですか?

編集:これは、凸面ポリゴンでは機能するように見えるが、凹面では機能しないソリューションです。

下の画像では、楕円 (凸) では解決策が機能するが、星 (凹) では機能しないことがわかります。

ここに画像の説明を入力

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

c++ - OpenGL 配列のハンドオーバーが機能しない

OpenGL を使用してゲームをプログラミングし、たくさんのチュートリアルを読み込もうとしています。残念ながら、進行を妨げる小さな問題が発生しました。

GLfloatsの配列を渡す「メッシュ」クラスを作成しました。これらのフロートは、VAO と VBO に含まれています。コンストラクター内で (初期化関数全体を使用して) 配列を作成する限り、正常に動作します。しかし、配列を引数として引き渡したい場合、OpenGL は描画しません。私は何かを忘れましたか?

ここに私のメインコードがあります:

メッシュ.cpp

main.cpp

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

c++ - SFML 頂点配列でのプリミティブの結合

SFMLのドキュメントには、プリミティブを組み合わせて頂点配列を作成できると記載されています。彼らが言及しているのは、複数をorTrianglesにグループ化できるという事実だと思います。TriangleFanTriangleStrip

2 つの既存のプリミティブ型を 1 つの頂点配列に結合する方法があるかどうか疑問に思っています。たとえば、一連の頂点を として定義してTriangleFanから、 に切り替えることはできLineStripますか? それとも、これには 2 つの別個の配列が必要ですか?