問題タブ [tessellation]

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

opengl - GL_PATCHES の渡し方

補間されたサーフェスの例を作成しようとしています。最初に、補間トレフォイルの例を作成しました。 ここに画像の説明を入力

ここに私の例のソースがあります。その後、アニメーションが 20 ~ 30 FPS 程度と非常に遅いことに気付きました。いくつかの論文の後、トレフォイルの評価を GPU に「移動」する必要があることがわかりました。そこで、テッセレーション シェーダーに関するいくつかの論文を調べました。現時点では、次の単純な頂点シェーダーをバインドします。

今、私は複数の質問をしています:

  • Triangle_Strips で既に行ったように、頂点の配列を使用して GL_PATCHES を渡す必要がありますか? どちらの方法が速いですか?ドローエレメント?

glDrawElements(GL_TRIANGLE_STRIP, Indices.Length, OpenGL.GL_UNSIGNED_SHORT, IntPtr.Zero);

または私は使用する必要があります

  • インデックスの配列はどうですか?パッチが渡される順序を意味するパスを決定するにはどうすればよいですか。

  • シェーダーでも法線を計算しますか?

  • テッセレーション シェーダーの例をいくつか見つけましたが、#version400 Can I use this version on mobile devices as well?(OpenGL ES) で

  • マルチスレッドで複数のパッチを GPU に渡すことはできますか?

よろしくお願いします。