問題タブ [voxel]
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.
algorithm - 二重輪郭で立方体を形成するための格子点の最小数は? (ボクセル)
サーフェスに滑らかなエッジと鋭いエッジの両方を含めることができるため、便利なデュアル輪郭アルゴリズムについて学習しています。入力データがどのように使用されるかについて、私はやや混乱しています。極小鋭角立方体がどのように定義されたかを理解すれば、これをよりよく理解できると思います。
かなりの時間を費やしてさまざまなリソースを読んだ結果、次のアイデアのいずれかが正しいと信じるようになりましたが、どれが正しいかを判断できませんでした. 混乱を避けるために、サーフェスを立方体と呼び、隣接する 8 つのグリッド ポイントをセルと呼びます。構造を説明するのに役立つイラストを非常に歓迎します。
アイデア #1 - 最小限の鋭い立方体は、各グリッド ポイントが形成された立方体の角に相当する 2x2x2 グリッドによって定義されます。
アイデア #2 - 最小限の鋭い立方体は、各グリッド セルにいわゆる「特徴点」が含まれる 3x3x3 グリッドによって定義され、立方体を形成するには 8 つの特徴点が必要です。
アイデア #3 - 最小限の鋭い立方体は、特定の密度の 1 つのグリッド セルが最小限の鋭い立方体の形成につながる 1x1x1 グリッドによって定義されます。
これは、将来の読者に役立つかもしれない別のリファレンスです: http://upvoid.com/devblog/2013/05/terrain-engine-part-1-dual-contouring/
3d - リアルタイム GI - ボクセル コーン トレーシング
最近、私は Light Propagation Volumes、Reflective Shadow Mapping、Imperfect Shadow Mapping などのリアルタイム GI テクニックを研究しています。しかし、本当に私の注意を引いたのは、もちろん Sparse Octree Voxel Cone Tracing でした。それはすべてを持っています:GI、近似鏡面反射、遅延レンダリングパイプラインに簡単に統合でき、ノイズがなく、計算に関与するモデルのポリゴンの重さに依存しません/本当に気になることの1つは透明性です. 半透明のボクセルを適切に照らすにはどうすればよいですか? (色ガラスや半透明のカーテンなど)?
出来ますか?何か案は?ありがとうございました!
matlab - Matlab を使用したボクセルによる主成分分析
画像内に特定の位置 (ボクセル) を持つベクトルがあります。互いに相関しているすべてのボクセルをクラスター化するために pca を実行したいと思います。
たとえば、1D に 3 つのボクセルがあります。
現在、位置 1 と 2 は強く相関していますが、3 はそうではありません。どのボクセルが相関しているかを確認するために使用corr
することは可能ですが、3D のビッグ データ セットのすべてのボクセルに対して行うことは不可能です。
このようなデータに対して pca を実行して、類似したボクセルのクラスタリングを確認する方法はありますか?
PS: ボクセルという言葉に惑わされないでください。結局のところ、ベクトルで表される複数のプロパティを持つピクセルについて話しているだけです。もちろん、これが私の質問を理解するのに役立つ場合は、さらに情報を提供させていただきます.
c++ - ボクセル システムの作成中に行き詰まり、その実装方法に関する情報が必要であることに気づきました
したがって、最初にどのように実装したいかを説明する必要があります。私のアイデアはかなり単純です。各チャンクを作成し、各チャンクにローカルな浮動小数点グリッドを利用して各頂点の位置を決定し、ボクセルを大きな 64 ビット整数グリッドに配置します (各チャンクの位置は、それが持つ整数値、0,0,0 は中央、20,20,20 は x、y、z 軸上で 20 チャンク離れた場所になります) さらに大規模な世界を作成するには、いくつかのチェックを実行して、チャンクは、整数グリッド内の位置から推測されて生成されますが、これはまだわかりません。(実行することほど重要ではありません)
私が問題を抱えていること:
- libnoise を使用して 3D パーリン ノイズを生成する方法を考え出しましたが、このドキュメントでは、私が知る限り、この問題には触れておらず、Google に問い合わせてもまともな結果は得られません。
- どういうわけかチャンクを整数グリッドに配置する
- 次に、チャンクがグリッド内の位置から推測される固さをどのように決定するかを正確に把握する (これは、周囲のチャンクが何であるか、グリッド内のどこにいるかを確認し、そのデータに基づいて決定することで簡単になると思います)
- 整数グリッドから推測される位置に基づいて、希少性のあるさまざまな鉱石を周囲に散らします。これはかなり簡単ですが、他のものが解決されるまで実行できません。
- インターバルツリーを理解する。
それで、何かアイデアはありますか?これまでの関連コード (ライト、オクルージョン、UV、通常の計算コードは質問に関係ないため削除)
私が知る限りでは、このコードが C と python で書かれた特定のデモに非常に似ていることに気付くかもしれません。これは、多くのコードがそれを読んだ後に書かれたものであり、私に少しこすりつけられたからです。
問題は、それが私の問題をカバーしていないように見えることです.ボクセルがどのように機能するかについての理解がいくらか深まりました.
それで、私のこのプロジェクトを解決するためにどのように進むべきかについての指針はありますか?
PS、これはバトルフィールド 3 が DOOM のクローンであるのと同じくらいマインクラフトのクローンです。それをどのように解釈するかはあなたに任せると思います。
ああ、私は調査を行って、次のことを発見しました: 0fps に関する投稿。あなたのほとんどは、ブログ https://sites.google.com/site/letsmakeavoxelengine と、GPU gems 3 を含むいくつかの他のブログに精通していると確信しています。マーチング キューブやその他のいくつかの機能がありますが、どれも私の問題を解決するものではありません。
3d - three.js メッシュの再利用 (ボクセル ワールド用)
私は現在、three.js と 3D グラフィックスを初めて学んでおり、ボクセル エンジン (Minecraft、Infiniminer を考えてください) を作成しようとしています。スクリプトが大量のメモリを消費していることに気付きましたが、その理由について疑問があります。ブロックの一部が同じに見える場合でも、作成するすべてのブロックが新しいメッシュ オブジェクトを使用します。
これを行うためのよりメモリ効率の良い方法を知っているかどうか、私が知っている何人かの人々に尋ねました. 、しかしそれほどthree.jsではありません)。three.js はこのようなことを可能にしますか? もしそうなら、どのようにそうしますか? そうでない場合、他の代替手段はありますか?
(これまでのところ、レンダリングするすべてのアイテムがシーン グラフにある必要があることを理解しているため、複数のブロックが同じように見えても、ブロックの複数のコピー (異なる x、y、z 座標) をグラフ。私はおそらく間違っています。)
javascript - ThreeJS ボクセルがグリッドに固定されていない
ThreeJS git リポジトリのボクセル ペインターの例を使用しています。
ボクセルが例よりも大きくなるように変更しました。X 座標で 1 グリッド スペースを占有する代わりに、2 を占有します。
ただし、これを行うと、ロール オーバー メッシュがグリッドに固定されず、代わりに一方の側で 1 つの半分を超え、もう一方の側で 1 つの半分を超えます。
これが私のコードです:
これがなぜなのか誰か知っていますか?
file - .binvox ファイル形式について
viewvoxで読み取り可能なボクセル ファイル形式に変換しようとしている点の (x,y,z) 座標のリストを含むファイルがあります。比較的単純なはずのbinvoxファイル形式に出くわしましたが、頭がわかりません。特に、値バイトとカウント バイトの使用について言及している場合、カウントの範囲が 1<=count<=255 でなければならない理由が不明であるため、誤解していたに違いありません。
誰かが次の 1 つ以上を実行できることを願っています: 私が 5 歳のように形式を説明する、小さなモデルの binvox ファイルの実例を提供する、座標データをボクセル形式に変換するより良い方法を提案する。
アドバイスをよろしくお願いします。
編集:もう少し考えた後、カウントバイトの範囲を理解しました.0のカウントは情報がないため最小であり、バイトの最大値であるため最大は255です。
python - Blender: ボクセル座標を指定するには?
Blender のボクセル データをしばらくいじっていますが、どのように機能するのかまだよくわかりません。私が必要とするのは、各ボクセルの座標を指定できることです。次のようなデータセットがあります。
そして、各 dd 値を抽出し、それらを ASCII 文字に変換し、それらを寸法が先頭にある .bvox ファイルに詰め込む Python コードがあります。ただし、xyz 座標は保存されません。Blender は各ボクセルを配置する場所をどのように認識しますか? いくつかのテクスチャ マッピングのアイデアを見てきましたが、どのボクセルをどの座標に配置するかを正確に指定できるものはありませんでした。
どんな提案でも喜んで受け入れます!