問題タブ [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.
c++ - OPENGL: VBO を使用した Square クラス
そのため、バックグラウンドで多くの描画を処理する基本的な「Drawable」クラスを作成しようとしていますが、最新の OpenGL を使用したいと考えています (begin ステートメントと end ステートメントはありません)。draw()を実行すると、空白の画面が表示され続けます。
デバッガーを実行して確認したところ、配列は位置に 3xFLOAT、色に 4xFLOAT で適切に初期化されています。何がうまくいかないのですか?私はこのライブラリに非常に慣れていません。私の例では、赤い立方体を (+-0.5, +-0.5, 0.0) に描画しようとするため、indexData 配列は { 0, 1, 2, 3 } になります。
GLSL 頂点シェーダー:
GLSL フラグメント シェーダー:
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 を読む本としてではなく、リファレンスとして扱っていることに注意してください)。
オンライン ドキュメントに従って、次のコードを適用する必要があると思います。
ただし、メッシュが見えないようです。私が見落としていたかもしれない要素配列を処理する新しい方法があるかどうか疑問に思っていますか?
乾杯!
opengl - 1 つの Vertex Array オブジェクトに複数のストレージ レイアウトを含める方法は?
ストレージ レイアウトとは、 で定義するものを意味しますglVertexAttribPointer
。この状態は、現在バインドされている VAO またはバインド先のバッファーに保存されGL_ARRAY_BUFFER
ますか?
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 番目の頂点を交換するだけで、反時計回りの向きに戻すことができます。このアプローチを任意の数の頂点とインデックスを持つポリゴンに拡張するにはどうすればよいですか?
編集:これは、凸面ポリゴンでは機能するように見えるが、凹面では機能しないソリューションです。
下の画像では、楕円 (凸) では解決策が機能するが、星 (凹) では機能しないことがわかります。
c++ - OpenGL 配列のハンドオーバーが機能しない
OpenGL を使用してゲームをプログラミングし、たくさんのチュートリアルを読み込もうとしています。残念ながら、進行を妨げる小さな問題が発生しました。
GLfloatsの配列を渡す「メッシュ」クラスを作成しました。これらのフロートは、VAO と VBO に含まれています。コンストラクター内で (初期化関数全体を使用して) 配列を作成する限り、正常に動作します。しかし、配列を引数として引き渡したい場合、OpenGL は描画しません。私は何かを忘れましたか?
ここに私のメインコードがあります:
メッシュ.cpp
main.cpp
c++ - SFML 頂点配列でのプリミティブの結合
SFMLのドキュメントには、プリミティブを組み合わせて頂点配列を作成できると記載されています。彼らが言及しているのは、複数をorTriangles
にグループ化できるという事実だと思います。TriangleFan
TriangleStrip
2 つの既存のプリミティブ型を 1 つの頂点配列に結合する方法があるかどうか疑問に思っています。たとえば、一連の頂点を として定義してTriangleFan
から、 に切り替えることはできLineStrip
ますか? それとも、これには 2 つの別個の配列が必要ですか?