問題タブ [marching-cubes]
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.
marching-cubes - マーチング キューブ メッシュの法線、インデックス、UV 座標の計算
私はこの記事に従っています:
http://paulbourke.net/geometry/polygonise/
ただし、提供されるソース コードは三角形のみを生成します。
法線、インデックス、UV 座標を計算するにはどうすればよいですか?
arrays - 大きな配列からのジオメトリ シェーダーのエラー
ジオメトリ シェーダーをリンクしようとすると、次のエラーがスローされます。
シェーダーで宣言されたこの配列を参照すると、次のようになります。
配列はかなり大きいです。これは、シェーダー内で宣言するには配列が大きすぎることに関係していますか?それとも他の問題がありますか?
c++ - マーチング キューブ アルゴリズムの説明
マーチング キューブに関しては、そのアルゴリズムと実装に関して疑問があります。Paul Bourke の Marching Cubes に関する優れた記事と、サイトで入手可能なソース コードを確認しましたが、それでも、アルゴリズムを独自の方法で実装する方法と同様に、理解に関していくつかの問題に遭遇しました。質問は以下の通りです。
グリッドセルのサイズ - グリッドセルのサイズが、生成される 3D モデルの品質に影響することを読みました。たとえば、サイズが (200*200*200) の X 線画像セットのスタックがある場合、グリッドセルのスラブは、画像の 2 つの隣接するスライスから構築されます。したがって、スラブ内のグリッドセルの合計は (200-1)*(200-1) になり、各グリッドセルの角は画像のピクセル値/密度に対応します。これは正しいです??また、gridcell に異なるサイズを実装するにはどうすればよいですか??
ボクセル サイズ - マーチング キューブの参考文献をいくつか読んだことがありますが、アルゴリズムでボクセル サイズがどのように処理されるかがわかりません。私が間違っている場合は修正してください。私の場合、隣接する画像のレイヤー間のギャップのサイズは 1 ミルです。したがって、マーチングキューブアルゴリズムでそれらをどのように処理しますか、それとも行き止まりですか?? Gridcellのサイズとして大事にされてますか?? (仮定: xy 座標の 1 ピクセルのサイズは 19 ミクロンで、ギャップ/z は 25.4 ミクロン/長さ 1 ミル)
グリッドセル コーナーの座標 (立方体の頂点座標) - 画像セット ディメンション (200*200*200) のネストされたループにより、インデックス ijk を使用してグリッドセルのコーナーの座標を割り当てようとしています。これは正しいです??それを行うためのより速い方法はありますか??
注: VTK での MC の実装を見たことがありますが、他の VTK クラスに依存しているため、理解するのは非常に困難です。
c++ - マーチング キューブ テラス/尾根効果
私は主にPaul Bourkeの実装にいくつかの主要な調整を加えたマーチング キューブ アルゴリズムを実装しています。
- スカラーフィールドの事前計算 (浮動小数点値)
- std::map を使用して、最終リストで重複する頂点を回避する
- Ogre3D で最終的なメッシュを視覚化するための頂点の保存
基本的に、私は彼のコードのほぼ 80% を変更しました。結果のメッシュには見苦しいテラスがいくつかあり、それらを回避する方法がわかりません。スカラーフィールドに浮動小数点を使用するとうまくいくと思いました。これは一般的な効果ですか?どうすれば回避できますか?
エッジ上の頂点位置を計算します。(cell.val[p1] には、指定された頂点のスカラー値が含まれます):
ここで完全なソースコードを見つけることができます: https://github.com/DieOptimistin/MarchingCubes この例のライブラリとして Ogre3D を使用します。
three.js - ImmediateRenderObject を使用した後、Three.js Render がクリアされない
3D シーンを別の 3D シーンでマスクしようとしています。以下に示すように、通常の THREE.Mesh オブジェクトで動作させることができました。
メイン シーンには、ロー ポリゴンの球体がたくさんあります。マスク シーンには赤い立方体があります。両方のシーンがテクスチャとしてカスタム シェーダーに渡され、マスク上の赤いピクセルがチェックされ、メインのピクセルが描画されます。
できます。ここにフィドルがあります:http://jsfiddle.net/at4rumn6/3/
--
ただし、マーチング キューブの例のように球体の束をブロブに置き換えると、機能しなくなります。問題を以下に示します。
レンダラーで何かがクリアされていないようです。THREE.ImmediateRenderObjectに関連している可能性がありますが、何をしているのかわかりません。これは非常に特殊なケースのように思えます。ライブラリに制限がある可能性があります。それとも、私が何か間違ったことをしているだけなのかもしれません。
エラーを示す別のフィドルは次のとおりです。http://jsfiddle.net/Lwm93rxr/2/
バッファをクリアして、他のシーンからの「汚れ」なしでマスクを機能させる方法はありますか?