1

だから私はこの問題に数回遭遇しました:

3D シーン グラフに、他のオブジェクトの子であるオブジェクトがあります。それらを c (子) および p (親) と呼びましょう。

c の位置は、p に対して相対的に定義されます。したがって、c は位置 (1,0,0) を持つことができますが、もちろん、p が別の位置 (たとえば (1,2,3)) を持つため、実際には元の世界ではレンダリングされませんが、(2 、2、3)。

何らかの理由で、ワールド座標 (または回転、問題は同じ) での c の絶対位置を知りたいとしましょう。これは一般的にどのように行われますか?

その親について知っていて、その位置を照会して、最終的に絶対位置を返す独自の位置に追加できるようにする必要がありますか?

4

2 に答える 2

5

子の座標系の座標をグローバル座標系に変換することは、実際にシーン グラフをレンダリングするために必要なことの 1 つであるため、これは妥当なことです。

これを行う方法は、使用しているグラフィック ライブラリによって異なります。多くの場合、シーン グラフの各ノードには、そのノードの座標系をグローバル座標に変換するマトリックスが含まれます。この行列は、親ノードからの行列に、親の座標から子座標への変換行列、またはその逆の定義方法に応じた変換行列を乗算することによって計算されます。

このような行列がある場合、子座標のポイントにノードの行列を掛けることで、必要な計算を行うことができます。ここでも、順序が重要です。

于 2008-12-08T23:14:52.743 に答える
1

私見ですが、親オブジェクトが自分の子について知っているのは、その逆よりも一般的です。どちらが適切かは、子供が自分の位置を知る必要があるかどうか、またはそれを知る必要がある他の外部ツリー走査アルゴリズムであるかどうかによって異なります。

また、回転は平行移動と同じようには扱えないと思います。親オブジェクトを回転させると、子オブジェクトの位置も変換されます。したがって、ほとんどの3Dシステムが、回転と平行移動の両方を1つの行列に結合する(4x4)変換行列を使用する同次座標を使用する理由。

于 2008-12-08T22:49:50.983 に答える