2点間の距離&光源とサーフェスから最も近い交差点の計算


■distance <node> <node>

指定した 2 つのノードの基点間の距離を計算します。



■intersectRay <node> <ray>


レイと指定したノードのサーフェスのもっとも近い交差を計算します。3D スペースにおいて交差の位置を定義する別のレイと、その点におけるサーフェスの法線ベクトルを返します。
交差のテストではノード面の法線が尊重され、たとえば面の法線がレイのソースとは離れた方向を指している場合には、その面に対しては交差のテストは
実行されません。 intersectRay() は、ノードのワールド状態(ノード スタックのトップにおけるノードの状態)に、編集可能なメッシュ、標準プリミティブ、拡張プリミティブ、合成プリミティブ、またはパッチまたは NURBS サーフェス オブジェクトのようなサーフェスがある場合に機能します。スプラインおよび NURBS カーブにはサーフェスはありません。レイがノードと交差しない場合、レイが交差する面がレイの位置とは離れた方向を指している場合、またはノードにサーフェスがない場合は、 undefined が返されます。



■intersectRayEx <node> <ray>


レイをとって、所定のノードのサーフェスから最も近い交差点を計算します。次の 3 つの要素を持つ配列を返します。
  1. 3D スペースにおける交差点の位置を定義するレイと、その点におけるサーフェスの法線ベクトルを返します。
  2. レイが交差する面のインデックス
  3. ヒットした面の重心座標
このメソッドは、ノードのワールド状態がメッシュの場合にのみ機能します。これはノードがもともと編集可能なメッシュであったか、ノードをメッシュに変換するモディファイヤが適用されているためです。 intersectRay()とは異なり、このメソッドはノードが標準プリミティブまたは拡張プリミティブである場合には機能しません。ノードのスタックは、メッシュに対して評価する必要があります。交差のテストではノード面の法線が尊重され、たとえば面の法線がレイのソースとは離れた方向を指している場合には、その面に対しては交差のテストは実行されません。レイがノードと交差しない場合、レイが交差する面がレイの位置とは離れた方向を指している場合、またはノードにサーフェスがない場合は、 undefined が返されます。





重心座標とは


重心座標は、三角形の面に相対的な座標です。三角形に相対的なポイント p の重心座標は、そのポイントを三角形の頂点の重量合計として記述します。

 b0b1、および b2の場合、次のようになります。


p = b0*p0 + b1*p1 + b2*p2

 ここで、 p0p1p2 は三角形の頂点の位置を示しています。

このメソッドによって返される Point3 では、3 つの座標に格納された重心座標があります。これらの座標は、交差する三角形の面に相対的な座標です。

これらの重心座標は、三角形の頂点における量の値がわかっている場合には、どの量を補完するためにでも使用できます。

0 コメント:

コメントを投稿