問題タブ [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.
java - Javaでいくつかの形状を三角測量/テッセレートする方法は?
GeoTools から国の形状をテッセレーションして、地表に 3D で表示したいと考えています。GeoTools は、機能が豊富に見える JTS トポロジ スイートを内部で使用します。
いくつかの形状をテッセレーションするユーティリティが含まれていますか? 三角測量パッケージがあるようですが、穴のある形状に使用する方法がわかりません。
また、ここのように既存の頂点を接続するだけではありません
内部に複数の頂点がある形状を塗りつぶす必要があります。
アップデート
JTSには、ConformingDelaunayTriangulationBuilder
希望するテッセレーションを何らかの方法で作成できるクラスが含まれていることがわかりましたが、うまく機能しません。まず第一に、それは制約のみを許可します。つまり、凹んだ領域から三角形を削除するには追加のコードが必要です。また、テッセレーションの Delaunay の性質を維持しようとするため、多くの追加セクションが作成されます。
最後に、ConstraintEnforcementException
国のような複雑な形状になり、使用できなくなります。
また、C で記述され、 Chew の 2 番目のアルゴリズムを実装し、うまく機能する「triangle」パッケージも見つけました。
Java に移植されたのでしょうか、それとも Java にラップされたのでしょうか。
opengl - GLSL テッセレーション ディスプレイスメント マッピング
私の最近のプロジェクトでは、ハードウェア側のテッセレーションに取り組んでいます。実装したいパイプラインは、低ポリ メッシュを取得し、それをテッセレーションして、ディスプレイスメント マップを適用する必要があります。
テッセレーションは正常に機能し、期待どおりに見えます。ただし、テッセレーション評価シェーダーでディスプレイスメント マップを適用すると、多少ランダムな出力が得られます。
これはディスプレイスメントなしの出力です (高さマップをテクスチャとして使用して、texCoords が正確かどうかを確認しました)
これは、ディスプレイスメントを有効にすると得られるものです (カラーリングとディスプレイスメントの両方に同じテクスチャを使用)。
シェーダー コードは次のとおりです。
//頂点シェーダー
//テスコントロール
//TESS EVAL
//ジオメトリ
//断片
誰かが私を助けてくれたらいいのにと思います。
opengl - テッセレーションはどのようにパフォーマンスを向上させますか?
vram からより多くの頂点を読み取るのではなく、より多くの頂点を計算する方が高速になるというのは直感に反するようです。しかし、メモリ帯域幅がテッセレーションの価値がある問題である場合、ディスプレイスメント マッピングのようなものはなぜ存在するのでしょうか? テッセレーション シェーダーでは、テクスチャから読み取る場合、いずれにしても vram へのアクセスが増えます。テクスチャ ルックアップは、元の頂点を増やすよりも安価ですか? テッセレーションが速いのはなぜですか?
非常に低いポリゴン モデルで 32 の頂点増幅があったとします。これは、テッセレーション頂点の増幅が 8 程度の高ポリゴン モデルよりも高速でしょうか。言い換えれば、テッセレーションを行うほどパフォーマンスは直線的に向上しますか?
opengl - GL_TRIANGLES_ADJACENCY_EXT を使用したテッセレーションおよびジオメトリ シェーダー
いくつかの SRTM データから地形をレンダリングする小さなプログラムがあります。
私は glsl の新しい機能で少し遊んでいます。vs、tcs、tes、gs、および fs の作成に成功しました。ここで、gs はパススルー シェーダーのみでした:
今、tcs と tes でさらに三角形を追加し、新しい法線を計算する必要があるため、gs で三角形の隣接オプションを使用して計算する必要があると思うので、4 つの三角形の 6 つの頂点にアクセスできます。しかし、コードを変更すると:
何も描画されません。テッセレーションがアクティブな場合、描画配列で GL_PATCHES を使用する必要があることはわかっていますが (この方法で作成しました)、この gs の動作を確認するために何ができるかわかりません。
ただし、私の目標は、テッセレーション後に新しい法線を計算することです。誰かが最終的にどこで計算するのを手伝ってくれますか?