問題タブ [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 に答える
535 参照

opengl - アクティブな頂点配列からスムーズな法線を生成する

OpenGl 呼び出しにフックすることで、古い opengl 固定パイプライン ゲームのいくつかのレンダリング機能をハッキングして変更しようとしています。現在の使命は、シェーダー ライティングを実装することです。ほとんどのオブジェクトを正しく照らす適切なシェーダー プログラムを既に作成しましたが、このゲームの地形は通常のデータが提供されていない状態で描画されます。

ゲームは以下を呼び出します:

地形を定義して描画するため、これらの関数を両方ともフックし、ポインターで指定された頂点配列をループして、すべての DrawElements 呼び出しまたは VertexPointer 呼び出しで各サーフェスの法線を計算したいと考えていますが、私は持っていますそのためのアプローチを考え出すのに苦労しました-具体的には、ポインターでデータを読み取り、反復し、理解する方法。この場合、glVertexPointer呼び出しの通常のパラメーターはsize = 3, type = GL_float, stride = 16, pointer = some pointer. glVertexPointer をフックすると、ポインターを反復処理してメッシュのすべての頂点を取得する方法がわかりません。すべての頂点の合計数がわからず、ポインターでデータがどのように構造化されているかもわかりません。ストライドが与えられた場合 - 同様に、通常の配列をどのように構築する必要があるか

インデックス配列で指定されたインデックスごとに、drawelements で法線を計算することをお勧めしますか?

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

opengl - ポリゴンのマージ

下の画像のようにポリゴンをマージする高速なアルゴリズムはありますか?

その過程で新しい頂点が作成されることに注意してください。

これをリアルタイム システム (ゲーム エンジン) に実装するのに十分な速さで実現する方法はありますか?

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

java - 頂点配列の問題

VBO (VertexBufferObjects) の処理方法を学習しようとしていますが、Vertex Arrays よりも先に進むことができません。このトピックに関するいくつかの基本的なチュートリアルに従いましたが、それぞれが異なる方法を教えていたため、理解して実装するのが難しくなりました.

問題: でのレンダリングglDrawArrays();は、即時モードでのレンダリングと同じように機能するはずです。そのため、 songho.caでコードをテストしようとしましたが、ネイティブ コード内で JVM がクラッシュするだけです。このメソッドには数十のバリエーションがあるため、Google に尋ねてもまったく役に立ちませんでした。しかし、私のパラメーターが主な問題であると思います。

これが私がこれまでに得たものです:

私は LWJGL を使用しているので、データを FloatBuffer に格納しています。

私の Triangle クラスは 3 つのベクトル ABC で構成され、それぞれが 1 つの頂点を定義します。最初の行では、三角形ごとに 9 つのフロート (頂点ごとに 3 つのフロート、三角形ごとに 3 つの頂点) の頂点にスペースを割り当てています。これまでのところ異常なことは何もありません。バッファ内に配置されたフロートの量は、割り当てられたサイズとまったく同じです。

即時モードでのレンダリング:

特別なことは何もありません。これまでに見たものはすべて、私にとってはうまくいきます。しかし、Array バリアントは頭痛の種です...

クラッシュしている JVM によって生成されたエラーログはglDrawArrays(GL_TRIANGLES, 0, buffer.capacity());行を指していますが、間違いが見つかりません...

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

c++ - glDrawElements が他のマシンで機能しない

g ++でOpenGLを使用しています。この単純なコードは、私のシステムでは問題なく動作します。期待どおりに長方形を描画します。

しかし、私の友人のシステムでは、セグメンテーション違反が発生します。

に変更GL_UNSIGNED_INTしましたGL_INT。その後、少なくともセグメンテーション違反は発生しませんが、何もレンダリングされません。

この理由は何ですか?

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

c++ - ジェネリック頂点属性バッファーは、glVertexPointer がないと機能しないようです

インターリーブ バッファーを描画しています。これは汎用頂点属性バッファーです。レイアウトは、頂点座標としての 3 つの float と、次のようにインターリーブされた他の 2 つの float 属性で構成されます。

これを just で描画できることを期待していますがglVertexAttribPointer、これは実際に機能しているように見えます-ただし、シェーダーでアクセスしていなくても、andも使用している場合にのみ機能します! glEnableClientState(GL_VERTEX_ARRAY)glVertexPointer()gl_Vertex

最小限の頂点シェーダー (GLSL 1.20):

バッファを描画するコード:

注釈付きの 2 行のコメントを外すと、上記のコードですべてが正常に機能します。それ以外の場合は、何も描画されません。

これは本当に困惑しています...どこかで状態の変更を見逃したのでしょうか、それとも有効にするのを忘れているものがありますか?

編集: 私は VAO を使用していません。ここに表示されているもの以外に設定されている状態はありません。テクスチャやその他のバッファはバインドされていません。

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

opengl-es - WebGL - どの API を使用するか?

複数のポリゴン シェイプを描画したい (各シェイプには独自の頂点セットがある)。これらの形状を互いに独立して配置できるようにしたいと考えています。

頂点シェーダーの a_Position を設定するには、どの API を使用できますか?

  • A) gl.vertexAttrib3f
  • B) gl.vertexAttribPointer + gl.enableVertexAttribArray

ありがとう。