問題タブ [gl-triangle-strip]

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

opengl-es - OpenGLESでGL_TRIANGLE_STRIPを使って線を引くには?

現在、openGLESを使ったシンプルなゲームアプリで作業しており、GL_Linesモードで線を引いて問題なく動いています.GL_TRIANGLE_STRIPを使って線を描きたいのですが、GL_TRIANGLE_STRIPを使って線を引くことはできますか?

前もって感謝します

ソースコードを試しました:

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

opengl-es - テクスチャ付きの三角形のストリップ - 最初の行を超える行で出力が文字化けする

OpenGL ES、glDrawArrays、および GL_TRIANGLE_STRIP を使用して、「単純な」2D グラフィックスを描画しています。

13x13 ポイント (または他の任意のサイズ) のテクスチャを 1 つ取得し、指定された数の列と行に出力することを目的とする関数を作成しています。したがって、2 行 3 列の場合、26x39 ポイントの 6 つのタイルで覆われた領域を意味します。最初の行は以下のコードでうまく機能しますが、2 つ以上の行を指定するとすぐに出力が文字化けします。

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

opengl - OpenGL - テクスチャリングに影響を与えずに単一の TRIANGLE_STRIP にジャンプする方法は?

同じ頂点 A を三角形ストリップに数回配置し、別の頂点 B を取り、これも三角形ストリップに数回配置する場合 (量は、続行したい三角形の方向に応じて異なります)、効果的に1 回の描画呼び出しだけでレンダリングされる 2 つの別個の三角形ストリップ (最初の描画呼び出しには頂点 A の前のすべての三角形が含まれ、2 つ目の描画には頂点 B の後のすべての三角形が含まれます)。

私の質問:

残念ながら、完全な三角形ストリップの描画呼び出しは幾何学的に単純に接続されたメッシュを描画しますが、その間のジャンプが原因でメッシュをテクスチャリングしようとすると問題が発生します。私はまだそこまで行っていないので、テストすることはできません。私の仮定は正しいですか?三角形のストリップにジャンプすることは、「メッシュの描画」業界で有効な手法ですか? 結果を適切にテクスチャ化する方法、またはジャンプに代わる同等のより良い動作の方法はありますか?

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

opengl - OpenGLにおける三角形の巻き方向のデファクトスタンダードは何ですか?

三角形の巻き方向には2つのオプションがあり、

  1. 時計回り
  2. 反時計回り

とにかく、それらの間の変換にはいくらかのコストがかかる可能性があります。なるべく変換を避けたいのですが、そのためには巻き方向のデファクトスタンダードを知る必要があります。多くの大企業が OpenGL を使用しているため、1 つあると思います。大企業のほとんどが使用している方向性が 1 つあるとすれば、それは事実上の標準です。

そのようなことがなければ、私に知らせてください。

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

opengl - トライアングル ストリップで NORMAL を計算する方法

OPENGL プロジェクトの照明に問題があります。私は ECLIPSE を使用して C++ でプログラミングしています。三角形のストリップで構成された地形があります。私のレンダリングのコードは次のとおりです。

頂点に法線を使用しようとしていますが、glnormal 関数の引数を計算する方法がわかりません。次に、顔に法線を使用する必要があります。この問題で私を助けてくれますか?


はい、面ごとに法線が必要です。その後、頂点ごとに法線を実行する必要があります。面ごとに法線を作成するには、これを行います。int i = 0; glPushMatrix(); glRotatef(angle, xrot, yrot, zrot);// オブジェクトを回転 cout<<"valore di nrows è: "<getHeights(j); float vectorba[3]={0.0,0.0,0.0}; float vectorcb[3]={0.0,0.0,0.0}; float xnormal = 0.0; float ynormal = 0.0; float znormal = 0.0; float len=0.0;

処方は正しいですか?法線と正規化の関数を使用してレンダリングを変換するにはどうすればよいですか?

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

opengl - qt + open Gl= 三角形を描くための paintgl 関数

以前の投稿でよく知られたテーマについて読んだことをコーディングしましたが、内部に三角形のない緑色のウィンドウが引き続き表示されます。ここに私のペイント機能があります:

三角形のない緑色のウィンドウしか表示されません。私の QT は qt4.8 と opengl 4.0 です。

私は何を間違っていますか?-\

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

ios - 頂点配列の開始と終了から頂点を使用してレンダリングされるglDrawElements三角形(GL_TRIANGLE_STRIPを使用)

への単一の呼び出しを使用して一連の行をレンダリングしようとしていますglDrawElements()。各線は単一の四角形であり、それらを分離するために間に縮退した三角形を使用しています。

0レンダリングされると、インデックス、、n-1およびの頂点を使用して追加の三角形が描画されます。n-2これは、の通常の動作ではないと思いますGL_TRIANGLE_STRIPS

たとえば、3つのクワッドで構成される12の頂点がある場合、インデックス配列は次のようになります。

(0、1、2、3、3、4、4、5、6、7、7、8、8、9、10、11 _ _ _ _ _ _

そして結果はこれです:

最初の頂点と最後の頂点の間にレンダリングされた三角形

レンダリングしようとしている頂点の数や、インデックスリストに配置するインデックスの数は関係ありませんが、開始と終了を三角形で結合します。VAOに包まれたVBOとIBOを使って描いています。だから私は単に描くために:

VAOの設定:


この振る舞いを引き起こすために、私はどのような愚かなことをすることができるでしょうか?

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

c++ - GL_TRIANGLE_STRIPをワイヤーフレームで表示

OpenGL トライアングル ストリップをワイヤフレームとして表示するのに苦労しています。私の表示アルゴリズムは次のようになります。

基本的に、私がやっていることは、gl_triangle_strip を開始してから、heightfield オブジェクトの各ポイントの x、y、z 座標をプロットすることです。

基本的に、これが描くのは大きな白い塊です。さまざまなポイントのワイヤーフレームだけを表示しようとしています。これを行う方法について誰かアイデアがありますか?

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

c++ - 動的な数のクワッドを描画するためにGL_TRIANGLE_STRIPまたはインデックス付きGL_TRIANGLESを使用する方が効率的ですか?

私は、ハードウェアアクセラレーションによるレンダリングにOpenGLを使用し、ウィンドウ管理とユーザー入力処理にSDLを使用する、C++での単純なスプライトベースの2Dゲームを開発しています。2Dゲームなので、クワッドを描画するだけで済みますが、スプライトの数は動的であるため、クワッドの数が一定であるとは限りません。したがって、フレームごとにVBOを介してすべての頂点データを再バッファリングする必要があります(前のフレームよりもクワッドの数が多いまたは少ない可能性があるため、バッファのサイズが異なる可能性があります)。

私がこれまでに持っているプロトタイププログラムはウィンドウを作成し、ユーザーが上下の矢印キーを使用して対角線上の四頭筋を追加および削除できるようにします。現在、私が描いている四頭筋は、単純な、テクスチャのない白い正方形です。私が使用しているコードは次のとおりです(OS X10.6.8およびOpenGL2.1を使用するUbuntu12.04で正しくコンパイルおよび動作します)。

現時点では、GL_TRIANGLE_STRIPSとglMultiDrawArrays()を使用して、クワッドをレンダリングしています。これは機能し、パフォーマンスの点ではかなりまともなようですが、頂点の重複を避けるためにGL_TRIANGLESをIBOと組み合わせて使用​​する方が、レンダリングのより効率的な方法であるかどうか疑問に思う必要があります。私はいくつかの調査を行いましたが、インデックス付きのGL_TRIANGLESは一般的にGL_TRIANGLE_STRIPSよりも優れていると示唆する人もいますが、クワッドの数は一定のままであるため、VBOとIBOのサイズをフレームごとに再バッファリングする必要はないと想定しているようです。 。これは、インデックス付きGL_TRIANGLESでの私の最大の躊躇です。インデックス付きGL_TRIANGLESを実装した場合、クワッドの動的な数のために、フレームごとにVBO全体を再バッファリングするだけでなく、フレームごとにインデックスバッファ全体を再バッファリングする必要があります。

つまり、基本的に、私の質問は次のとおりです。クワッドの動的な数のために、フレームごとにすべての頂点データをGPUに再バッファリングする必要がある場合、クワッドを描画するためにインデックス付きGL_TRIANGLESに切り替える方が効率的でしょうか。現在のGL_TRIANGLE_STRIP実装に固執しますか?

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

ios - opengl es、ios、三角形のファン

現在、次のコードで三角形を使用してシーンをレンダリングしています。

_mVertexArrayObjectTriangles は、三角形を介してレンダリングされる要素を保持する頂点配列オブジェクトです

_mVertexPositionNormalTriangles は頂点と頂点法線の配列です

_mCRBuffer->GetIndexTriangleData() は、頂点配列へのインデックスの配列です。これは、各三角形をエンコードする整数の単純な配列です (a、b、c、a、b、d は 2 つの三角形 abc と abd をエンコードします)。

すべて正常に動作しますが、三角形の代わりに三角形ファンを使用してプリミティブをレンダリングしたいと考えています。次のようなものを使用して描画される三角形ファンの配列 (つまり、それ以上) を設定するにはどうすればよいですか?

インデックス配列を設定して、レンダリング用の三角形ファンのセットにインデックスを付ける方法を教えてください (三角形の代わりに)。頂点自体を変更する必要はありません。三角形の代わりに三角形ファンを使用してレンダリングするためのインデックスだけです。

インデックス配列の設定方法を含め、三角形ストリップ (ここ)を使用した良い例を見つけることができますが、三角形ファンには何もありません。