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

c++ - glDrawArraysを呼び出した後にOpenGL頂点配列を削除できますか?

レンダリングごとにその場で頂点配列を生成していますが、後で配列を削除したいと思います。glDrawArrays頂点配列をすぐにサーバーにコピーしますか?したがって、呼び出した後に頂点配列を削除しても安全glDrawArraysですか?

それ以外の場合、頂点配列を削除しても安全な時期をどのように判断できますか?

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

c - OpenGL 頂点配列

次のような構造体Point(たまたま Python 拡張機能) があります。

そして、これらの束を 2 つの配列に保持する別の構造体があります。

これらを使用して、頂点配列を持つポリゴンの頂点とテクスチャ座標の両方をマップしたいと考えています。問題は、頂点配列が次の形式の配列を想定していることです。

glVertexPointerandglTexCoordPointerPolygon->vertex_pointsandを呼び出す方法はありますPolygon->texcrd_pointsか、または gl*Pointer が期待するものと一致する新しい配列を作成する必要がありますか?

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

android - glVertexPointerへのNDKOpenGL未定義の参照

ターミナルでndk-buildを使用して次のCコードをコンパイルする場合(Ubuntuを実行しています):

このAndroid.mkファイルで:

エラー、glVertexPointerへの未定義の参照が表示されます。Android.mkにヘッダーを適切に含め、ライブラリをリンクしたと思うので、なぜだろうと思います。

ありがとう!

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

opengl - OpenGL描画円、奇妙なバグ

私は数学者ではありませんが、塗りつぶされた円を描く必要があります。

私のアプローチは、他の誰かの数学を使用して、円の円周上のすべての点を取得し、それらを三角形のファンに変えることでした。

頂点配列の頂点が必要です。即時モードは必要ありません。

円は表示されます。ただし、円をオーバーレイしようとすると、奇妙なことが起こります。それらはほんの一瞬現れてから消えます。マウスを窓の外に動かすと、どこからともなく三角形が突き出ています。

クラスは次のとおりです。

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

iphone - ファイルから頂点配列をロードするための正しい形式

私はこの数週間、キーボードに頭をぶつけてきました。私がやろうとしているのは、floatの配列(GLfloat)とunsigned shortsの配列(GLushort)をテキストファイルからobjective-cの同等の配列にロードして、含まれているオブジェクトをレンダリングできるようにすることです。配列をベクターオブジェクトにロードしました

しかし、何らかの理由で、これらをレンダリングできない理由がわかりません。上記をレンダリングするための私のコードは次のとおりです。

サンプル配列は以下のとおりです。

レンダリングのためにこれらの配列をロードしたいテキストファイルは次のようになります。

ベクターオブジェクトは最善のアプローチですか?そうでない場合は、何ですか?そして、これらがレンダリングされないのは何が間違っているのでしょうか?ありがとう。

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

iphone - 頂点と面のインデックスの配列を OpenGL-ES にロードする最速の方法は?

フォーマットした .obj ファイルを読み込もうとしています:

と:

ベクトルとベクトル配列にフォーマットし、Opengl-ES で直接レンダリングします。私の問題は、モデルを配列にロードしようとすると、それらをロードするのに約 40 秒かかることです。なぜそんなに遅くなるのかわかりません。他のコードが同じモデルをほんの数回ロードするのを見たことがあります。秒。助言がありますか?ファイルをロードするための私のコードは次のとおりです。

私が考えた 1 つの行は、配列をバイナリ ファイルにシリアル化してから、プログラムに直接逆シリアル化することでした。それを行う方法はまだわかりませんが、おそらくこれらの線に沿った何かが解決策になるかもしれません.

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

opengl - OpenGL/JOGL: 頂点配列内の複数の三角形ファン

頂点配列を使用して適度に単純な形状を作成する作業を行っており、順調に進んでいますが、今は 2 つ (またはそれ以上) の三角形ファン オブジェクトを描画したいと考えています。1 回だけ電話をかける方法はありますか、gl.glDrawArrays(GL.GL_TRIANGLE_FAN,...それともファンごとに個別に電話をかける必要がありますか?

ウィキペディアのトライアングル ストリップの記事では、プリミティブ リスタートと呼ばれるものについて説明していますが、OpenGL のVertex Specificationを見ると、これは頂点配列では機能しないと思われます。

複数の三角扇子の正しい描き方は?これが私の現在の描画方法です:

編集

draw の関連セクションを次のように更新しました。

ここで、fanDist はこのファンの始点の (ファンの始点からの) オフセットであり、fanLength はこのファンの長さです。

これはうまくいくようですが、それでもこれは正しい方法ですか? より良い方法はありますか?

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

c++ - OpenGL:深度ソートを備えた頂点配列を使用して効率的なレンダリングシステムを設計するには?

少なくとも Vertex Array を使用するように常に言われます。しかし、私は3D世界にオブジェクトを配置するためにglPushMatrix()withを使用しているので、それは良い考えではないと思います.glTranslatef/glRotatef

では、世界の回転/移動された頂点位置の使用をやめてglPushMatrix()「手動で」計算し、頂点データを頂点配列にプッシュして一度にレンダリングする必要がありますか?

しかし、深度ソートされている画面上のすべてのオブジェクトに異なるテクスチャ サーフェスを使用すると、これらすべてがさらに混乱します。

そう:

  1. 各オブジェクトにテクスチャ サーフェス ID も格納する必要があります。
  2. 表示されているすべてのオブジェクトを Z 位置で並べ替えます (ゲームはトップダウンでのみ表示され、すべてのオブジェクトはフラットです)。
  3. この並べ替えられた配列を調べます。
  4. 新しいバッファーを作成し、頂点/texcoord/color/normal のみをこのバッファーにコピーします。
  5. テクスチャ サーフェス ID が以前の ID から変更されるたびに、正しいテクスチャ ID にバインドします。
  6. 収集した頂点データをアップロードします。
  7. 一時的な頂点配列に使用されているバッファーを解放します。
  8. 最初に並べ替えたすべてのデータを処理するまで、手順 4 ~ 7 を繰り返します。
  9. 並べ替えた配列データを解放し、手順 1 ~ 9 を繰り返します。

私はそれを正しくやっていますか?

また、ソートするオブジェクトのデータ構造をどのように設計すればよいですか? 例えば、std::vector各オブジェクトの頂点データを保存するために使用するのは良いですか? または、より良い代替手段はありますか?std::vectorこのすべてのデータを保存するには、次のようになると考えていました。

std::vectorまた、ステップ 4:この場合、既存のものを使用することは可能ですか? 頂点配列を GPU に送信する場合のように、未加工の配列を使用する必要があるという考えがありました。または、テクスチャ ID が変更されるたびに新しいバッファーを作成せずに、何らかの方法で (効率的に) ここでnew float[100]並べ替えられた既存の配列を使用できますか?std::vector

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

java - 0,0,0 を提供する JOGL glArrayElement ポイント

JOGL opengl の問題があり、頂点配列を使用しようとしていますが、glArrayElement を使用するたびに (注: glDrawElements も機能しません)、ポイントが 0,0,0 になります。重要なコード。ウィンドウが初期化され、reshape 関数が指定されていると仮定しています。

他にも呼び出す必要がある初期化関数/描画関数はありますか、それとも別の問題ですか? どんな助けでも大歓迎です。

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

iphone - glDrawElements は iPhone では機能しないが、glDrawArrays は機能する

OpenGL アプリケーションを OpenGL ES に変換しようとしました。私はこのようにMacで要素を描いています:

すべて問題ありませんが、iPhone 4 (iOS 4.2 および XCode 3.2.5) でこの方法で描画しようとすると、何も表示されません。奇妙なことに、すべての計算が完了し、glDrawArrays で描画しようとすると、画面に何かが表示されます (ただし、頂点は正しい順序でレンダリングされません)。

何か不足していますか?