問題タブ [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.

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

marching-cubes - マーチング キューブ メッシュの法線、インデックス、UV 座標の計算

私はこの記事に従っています:

http://paulbourke.net/geometry/polygonise/

ただし、提供されるソース コードは三角形のみを生成します。

法線、インデックス、UV 座標を計算するにはどうすればよいですか?

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

arrays - 大きな配列からのジオメトリ シェーダーのエラー

ジオメトリ シェーダーをリンクしようとすると、次のエラーがスローされます。

シェーダーで宣言されたこの配列を参照すると、次のようになります。

配列はかなり大きいです。これは、シェーダー内で宣言するには配列が大きすぎることに関係していますか?それとも他の問題がありますか?

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

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 クラスに依存しているため、理解するのは非常に困難です。

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

c++ - マーチング キューブ テラス/尾根効果

私は主にPaul Bourkeの実装にいくつかの主要な調整を加えたマーチング キューブ アルゴリズムを実装しています。

  • スカラーフィールドの事前計算 (浮動小数点値)
  • std::map を使用して、最終リストで重複する頂点を回避する
  • Ogre3D で最終的なメッシュを視覚化するための頂点の保存

基本的に、私は彼のコードのほぼ 80% を変更しました。結果のメッシュには見苦しいテラスがいくつかあり、それらを回避する方法がわかりません。スカラーフィールドに浮動小数点を使用するとうまくいくと思いました。これは一般的な効果ですか?どうすれば回避できますか?

テラッシング・マーチング・キューブ

エッジ上の頂点位置を計算します。(cell.val[p1] には、指定された頂点のスカラー値が含まれます):

ここで完全なソースコードを見つけることができます: https://github.com/DieOptimistin/MarchingCubes この例のライブラリとして Ogre3D を使用します。

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

three.js - ImmediateRenderObject を使用した後、Three.js Render がクリアされない

3D シーンを別の 3D シーンでマスクしようとしています。以下に示すように、通常の THREE.Mesh オブジェクトで動作させることができました。

マスク作業

メイン シーンには、ロー ポリゴンの球体がたくさんあります。マスク シーンには赤い立方体があります。両方のシーンがテクスチャとしてカスタム シェーダーに渡され、マスク上の赤いピクセルがチェックされ、メインのピクセルが描画されます。

できます。ここにフィドルがあります:http://jsfiddle.net/at4rumn6/3/

--

ただし、マーチング キューブの例のように球体の束をブロブに置き換えると、機能しなくなります。問題を以下に示します。

マスクエラー

レンダラーで何かがクリアされていないようです。THREE.ImmediateRenderObjectに関連している可能性がありますが、何をしているのかわかりません。これは非常に特殊なケースのように思えます。ライブラリに制限がある可能性があります。それとも、私が何か間違ったことをしているだけなのかもしれません。

エラーを示す別のフィドルは次のとおりです。http://jsfiddle.net/Lwm93rxr/2/

バッファをクリアして、他のシーンからの「汚れ」なしでマスクを機能させる方法はありますか?