問題タブ [bounding-volume]

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 投票する
3 に答える
6914 参照

c++ - 境界球半径の計算に少し問題がある

境界球の半径を 2 つの方法で計算することができましたが、希望どおりの結果が得られません。「ピクセル」の完全な境界球は必要ありませんが、現在持っているものよりも優れたものが欲しいです。

私は Wavefront .obj モデルを使用しており、これらのモデルの境界球半径を計算するために、現在のモデルの寸法を抽出します (Nate Robbins の GLM ライブラリを使用しています)。これにより、各軸の寸法が得られます。

最初のアプローチ: 各軸を 2 で割ると、各軸の半径が得られます。最大のものは、境界球に使用するものです。これは、私のプロジェクトに固有のほとんどのオブジェクトで機能します。立方体のようなものではうまくいきません。基本的に、立方体があり、このアプローチで半径を計算すると、球は立方体の角を外側に残します。

2 番目のアプローチ: 各軸を 2 で割ると、各軸の半径が得られます。次に、境界球の半径を取得するためにこれを行います。

しかし、これは私にかなり大きな半径を与えます。オブジェクトは球に完全に囲まれますが、球はかなり大きく、必要以上に大きくなっています。

上記の式で何が間違っているのかわかりませんが、私が知る限り、うまくいくはずです。でも明らかに間違ってる…

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

algorithm - ボリューム内のオブジェクト

特定のボリューム内のオブジェクトを見つける非常に効率的な方法が必要であるという問題があります。オブジェクトは、X-min、Y-min、Z-min、および X-max、Y-max、Z-max の値を持つボックスとして表されると想像できます。このようなオブジェクトが空間に何百万も存在する可能性があります。問題は、ユーザーが任意に指定したボリューム内のオブジェクトを見つけることです。ユーザーは、ボックスの X、Y、および Z 値の最小値、最大値を入力します。

現在、X、Y、および Z 値の範囲インデックスが作成された Oracle データベース テーブルにすべてのオブジェクトがあります。オブジェクトを見つけるためのクエリには、指定された X、Y、および Z 値とオブジェクト値の比較が含まれます。パフォーマンスが満足できるものではなく、これを解決するためのメモリ内アルゴリズムを考えています。また、完全に入っている、部分的に入っているオブジェクトを見つけることも必要です。

ありがとうエイ

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

collision-detection - 各子孫内を調べていないBVH衝突トラバーサルアルゴリズム

特に、ファイルの最後にあるBVHトラバーサルアルゴリズムのGame PhysicsEngineDevelopmentからのこのコードを見ています。getPotentialContactsgetPotentialContactsWith

このアルゴリズムの外観では、兄弟の最初のペアを比較しますが、各子孫内の衝突は検索しません。

これがこのようなグラフでどのように機能するかわかりません。点線は枝を表し、実線は葉のノードであり、木の深さはスペクトル色(赤、オレンジ、黄色、緑)で表されます。

BVH問題

私がここで理解していないのは何ですか?ツリー内のすべての連絡先を見つけるために別のアルゴリズムが必要ですか?

また、各リーフをトラバースしてみましたが、多くの場合、衝突を2回検出することになります。これも、そうではありません。

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

collision-detection - 最小包囲球 - OBB から派生?

3D のポイント セットの最小包囲球を計算する必要があります。これは、方向付けられたバウンディング ボックス (OBB) によって既に囲まれています。

次のようにOBBから球体を導出できるという私の仮定は正しいですか?

そうでない場合は、

  • なぜ?
  • OBBはまったく使用できますか?
0 投票する
2 に答える
2467 参照

raytracing - How to sort and compare in a Bounding Volume Hierarchy

I'm currently implementing a Bounding Volume Hierarchy for 3D-Triangles only. Sadly all explanations of BVH fall short on the part where you sort your Objects for splitting. For starters I want to aim for a balanced tree and use the median cut. This would require me to sort either the triangles or their bounding boxes(AABB) after a spatial criterion on the split axis of the current node. I'm really unsure if the maximum or minimum extend of a BB or triangle is enough for a proper separation as some triangles can be bigger. I'm also unsure if it's better to compare the bounding box or the triangle.

The second part of the problem is that sorting every step seems to be expensive. Other algorithms in computer-graphics employ presorted lists and then split those according to the splitting criterion. I don't see a way how you could efficiently compare triangles and assure that they belong to a list. Does that mean I have to sort the list every step?

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

c++ - ベクトルに関連付けられた NULL ポインター

私のレイ トレーサーでは、バウンディング ボリューム階層を構築しています。このエラーを修正するために数日使用しましたが、何か根本的に間違っているようです。

この最初のメソッドは、呼び出される構築であり、typedef std::vector Objects 配列を使用する以下のメソッドです。

このメソッドは、私のバイナリ ツリーのリーフ ノードを構築するために、以下のメソッドで使用されます。

これは、オブジェクトの配列を使用してノードとリーフ ノードを分割および構築する再帰的な方法です。

このコードを実行すると、サブディビジョン内でセグメンテーション違反が発生します。

gdb からの null ポインターの投稿は次のとおりです。

0 投票する
0 に答える
104 参照

collision-detection - jMonkeyでシーンの壁にぶつからないようにオブジェクトを配置する方法

私のゲームでは、ユーザーはポイントをクリックしてオブジェクト (メッシュ) を配置する必要があります。レイをキャストして、オブジェクトを移動できる水平ポイントを見つけてから、rootNode にアタッチして表示することができます。ただし、問題は、ユーザーが別のオブジェクト/scene_wall に近すぎてクリックすると、配置するオブジェクトにぶつかってしまうことです。どうすれば防ぐことができますか??

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

algorithm - SAH の BVH とバケット数の線形化は何を意味しますか?

私はCUDAレイトレーサーに取り組んでおり、いくつかの重要な質問の答えを見つけることができない研究を行っています:

  1. レイ トレーシング中に BVH を線形化する目的は何ですか? と
  2. SAH (表面積ヒューリスティック) ビニングのバケット数とは...
  3. プリミティブのセントロイドを介してビニングするとはどういう意味ですか?