問題タブ [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.
java - ボクセルベースの等値面生成の実装でスカラー フィールドの変形を行うにはどうすればよいですか?
パーリン ノイズ スカラー フィールドによって定義されたボクセルの規則的な 3D グリッドに基づいて、等表面地形を生成するシステムを実装しました。ノイズは連続関数を介して取得されるため、ボクセルと「チャンク」(ボクセルのグループ) 間でシームレスです。
私が遭遇した問題は、このシステムで変形可能な地形を実現するために何をすべきかということです。ボクセルを選択できるように、「ピッキング」システムを導入しています。これにより、ボクセルのデータにアクセスでき、その時点でスカラー フィールドを変更できます。
これまでのところ、選択したボクセルのデータ ポイントを変更してみました (値を増やしたり減らしたりするなど)。これにより、生成されたポリゴンがマーチング キューブに従って上下に移動することに成功しました。
ただし、これにより、三角形が上下のメッシュの残りの部分から分離されるため、地形に亀裂が生じます。
私が必要としているのは、スカラー フィールド自体に自然な方法で影響を与える方法です。ローカライズされたポイントから開始し、そこから外側に放射状に広がり、シームレスにブレンドします。
誰もこれを経験していますか?
opengl - ボクセルごとのシェーダー プログラミングを行う従来の方法はありますか?
画像のガウス フィルターと同じように、directx または opengl シェーダーで 3d フィルターを実行する方法を見つけています。詳細には、3d テクスチャのすべてのボクセルに対して処理を行うことです。ボリューム データをスライスに保存することでできるかもしれませんが、ボリューム データにアクセスするのは簡単ではなく、シェーダーに書き込むのも簡単ではありません。
私の下手な英語で申し訳ありませんが、返信をいただければ幸いです。
ps:Cuda のテクスチャ メモリはこの作業を行うことができますが、私の貧弱な GPU はデバッグ モデルで非常に低いフレーム レートでしか実行できず、その理由がわかりません。
c++ - OpenGL でのメタボール スキン システムの作成と実装
メタボール、ボクセル化を使用してメッシュを作成する、オープン ソースのメタボール スキン システムを作成または検索したいと考えています。C\C++ と OpenGL で 3 年の経験があります。しかし、私はこのシステムに取り組む方法についての考えを持っていません。私が欲しいのは、このようなシステムを実装する方法または構築する方法です。アイデア/考えはありますか?
これは、このシステムを使用するエンジンに取り組んでいた誰かのライナー ノートのリンクです: http://chrishecker.com/My_liner_notes_for_spore
c++ - ボクセル データ/openvdb 構造はどのように機能しますか?
車輪を再発明したくないので、3D レンダリング エンジン用の非常に基本的な 3D エディターで役立つ優れたデータ構造を探しています。私の場合に限定される必要なデータ:
- ジオメトリー
- ローカル座標とグローバル座標、または変換とも呼ばれます
- マテリアル、またはこのマテリアルの実際の定義を保持する別の構造へのポインタ
今、これは 3D レンダリングでの私の最初のアプローチですが、ラスタライザーがどのように機能するか、三角形、点、および線が GPU によってどのように処理されて画像が生成されるかについて十分な基盤があります。新しい「ボクセルベース」のデータ構造は、このOpenVDBが私にとって適切な構造であるかどうかにかかわらずです。
このエンジンの「入力」のほとんどは obj のようなファイルからのもので、基本的には三角形と点ですが、それでも最新かつ最高のものを見逃したくないので、OpenVDB と OpenVDB の本当の違いは何ですか三角メッシュを保持する一般的なデータ構造? OpenVDB の可能な現実世界のアプリケーションは何ですか?
c++ - ボクセルチャンクが適切なブロックをレンダリングしていませんか?
私は現在、3D について学ぼうとしており、その間に 3D 配列やその他すべての楽しいことを楽しんでいます。コードが適切なキューブをレンダリングしていない理由を理解できないようです... 3D 配列を実行し、ランダムな状態を割り当てます (1 描画、2 描画しない) 状態を実行すると、理由がわかりませんすべてのキューブを描画するか、まったく描画しないようです。
悪いコードを許してください。
編集: (cout ファイルを追加し、コードを少し修正しました)
java - 非立方体のサンドボックス ゲームをレンダリングする最良の方法は?
私のゲームでは、世界は立方体でできていますが、立方体は四面体と 4 つの角の 5 つの部分に分かれています。各タイプのブロックには 2 つの色があります。これは、1 つの角が切り取られた場合のブロックの外観ですが、各角/面は残りの色とは異なる場合があります。
問題は、四面体の面で、三角形間のエッジをシームレスにしたいことです。そのため、テクスチャを使用できません。(できますが、高解像度である必要があり、(たとえば水上で)色をアニメーション化する場合、これはオプションではありません)。
私はこれらのアプローチを見つけました:
各四面体面に各三角形を描画し、次に各立方体面に各正方形を描画します (VBO などを使用)ポリゴンが
多すぎます! ラグが発生します。そして、これは四面体をレンダリングするだけでした。ワールド ジオメトリで
のフラグメント シェーダーの使用 計算は簡単です。各軸について、ポイントがキューブ内で 0.5 未満かどうかを調べ、結果を xor します。これにより、使用する色が決まります。ラグが発生しましたが、コードが悪いと思います。ワールド ジオメトリの 3D テクスチャ
これが私の状況に完全に一致することを考えると、これが最良のオプションのようですが、実際にはわかりません。上記のいずれかでインスタンス化されたジオメトリを使用すると、
これについてはわかりません。大規模な場合、インスタンス化が遅くなる可能性があることを読みました。非表示のサーフェスをスキップするように最適化する場合は、31 個以上のメッシュが必要になります (これはおそらく不要です)。ジオメトリ シェーダーを使用する ジオメトリ シェーダー
は大規模ではうまく機能しないと読んだことがあります。
これらのオプションのどれが最も効率的ですか? 3Dおよび2D テクスチャを使用するのが最善の選択肢かもしれませんが、ラグが発生する場合は、非効率的なアプローチではなく、悪いコードを使用しているためであることを確認したいと思います。
編集:これが私のシェーダーコードです
java - .vxl ファイルの読み込み (スペードのエース)
私はここ数日、Java のボクセルの設計とコーディングで忙しくしていました。
私の究極の目標は、ボクセル ベースの世界で動き回り、物を撃つことができるプレイヤーと一緒に小さなゲームを作ることです。ボクセル エンジンが動作し、単純な XML 形式で保存されたマップをロードできるようになりました。ただし、Ace of Spades から .vxl マップをロードできるようにしたいと考えています (Voxlap を使用していると思います)。
これは、.vxl の構造に関するマニュアルとして見つかりました。しかし、C++ 疑似コードの代わりに、Java で似たようなものを実装するにはどうすればよいでしょうか? 私はコードを求めているのではなく、そのようなことを行う方法についての指示を求めているだけです。