vector ptransform(vector vec, matrix transform)
vector4 ptransform(vector4 vec, matrix transform)
指定したトランスフォームマトリックスを使ってベクトルを変換します。
vector ptransform(string tospace, vector vec)
vector4 ptransform(string tospace, vector4 vec)
"space:current"
から変換します。
vector ptransform(string fromspace, string tospace, vector vec)
vector4 ptransform(string fromspace, string tospace, vector4 vec)
ベクトルをfromspace
からtospace
に変換します。
fromspace
, tospace
space引数に指定可能な値:
オブジェクトのパス |
path文字列で指定されたオブジェクトのオブジェクト空間を使用します。 Tip ポイントインスタンスなどのいくつかの場合では、Mantraは自動的にオブジェクトパスを固有のパスにします。
|
|
現在の オブジェクトのオブジェクト空間。 |
|
shadowやlightのシェーダを実行した時の 現在の ライトのオブジェクト空間。 |
|
Houdiniのワールド空間。 |
|
Mantraのカメラ空間。 |
|
NDC(標準デバイス座標)空間。 |
|
shadowやlightのシェーダを実行した時の 現在の ライトのNDC(標準デバイス座標)空間。 |
|
そのベクトルが存在する現在の空間。 |
-
ptransformはvectorをポジションとして解釈します。
-
vtransformはvectorを方向ベクトルとして解釈するので、matrixから平行移動を適用しません。
-
ntransformはvectorを法線ベクトルとして解釈するので、matrixの逆転置によって乗算します(平行移動を無視)。
Examples ¶
tospace引数のみを持つバージョンの関数は、fromspaceが"space:current"
であることを前提にしています。例:
Pworld = ptransform("space:world", P);
このコードは、以下のコードと等価です:
Pworld = ptransform("space:current", "space:world", P);
ベクトルを現在の空間からオブジェクト空間に変換します:
ospace = ptransform("space:object", P)
ベクトルをオブジェクト空間からMantraの本来の座標空間(“camera”空間)に変換します:
ospace = ptransform("space:object", "space:current", P)
See also | |
point |
|
transform |