2011年11月7日月曜日

メモ:Coordinate Systems (ビデオチュートリアル)by Peter Quint

Basic: Coordinate Systems by Peter Quint
※Houdini10推奨

異なる座標系を使って、3Dテクスチャーがオブジェクトへ正確に適用されるようにすることについての講義。


座標系と3Dシェーディング

- ワールドとオブジェクトスペース
- マントラによるカメラスペースの利用
- シェーディングでオブジェクトスペースを使う
- レスト・ポジション
- NDCスペース

NDCスペース:
(参照1:Weblio
正規化装置座標
中間的な座標系で指定され,ある範囲(通常は,0から1まで)に正規化される装置座標.
〈備考〉1.同じ正規化装置座標で表現された表示画像は,どの装置空間でも同じ相対位置となる.

(参照2:Chapter 5 座標軸の設定

(参照3:2.2 座標系


(参照4:座標系の理解なくして3DCGなし


--------------
<座標系の種類>

ワールド・コーディネート・システム(世界座標系):Houdiniのデフォルトでスクリーンビューでみえる座標系(シーンレベル)

Boxを作ると、Box(SOP)には
Size 1,1,1
Center 0,0,0
がある。これらはxyzで表される座標系を使っている。
Box(OBJ)を移動して、再度これらの値を確認してみても、値は変わらず
Center 0,0,0 のままである。
あきらかにワールド座標系原点にないので、異なる事がわかる。

各オブジェクトは異なる座標系にあることがわかる。
Houdiniでは座標系を「スペース」と呼ぶことがある。

オブジェクト・スペース: 特定のオブジェクトのスペース


カメラ・スペース
カメラはZ軸の方向を向いている。
カメラの視点からみるとカメラ・スペース内でオブジェクトまでの距離は大きなZ値を持っていることがわかる。

--------------
※ 以下のステップでBasic_Surfaceマテリアルが表示されない場合は、「Houdini11でマテリアル・ライブラリーから削除されたものとその再生方法」を参照。

Basic_Surface > Basic > baseColorを移動してわかりやすくする。
TurburantNoiseノード,.GlobalVariablesノードを作成
global1:
Output A Single Valiable:チェック
Variable Name: Surface Position P

これをturbnoise1ノードのposへ接続

Color Mixノードを作成
turbnoise1ノードのnoiseをcolormix1のbiasへ接続
colormix1のclrをsurfacecolor1のBaseColorへ接続

オブジェクトではなく、シェーディングの特定のポイントを元にノイズを発生させている(?)


Distantlightを作成
Mantraを作成してレンダー

Colormix1で各色を調整しコントラストを上げ、turbnoise1のFrequencyを上げて見やすくする。


以上で基本の設定はおしまい。次にBoxをアニメートしてみる。



--------------
<オブジェクトスペースを使う>
CubeのTranslateにキーフレーム・アニメーション(OBJレベル)をつけて移動したときのテクスチャーを見てみる。>テクスチャーパターンがフレーム毎に変化している。

この理由はShopの
Global Variableではノイズの生成のために、サーフェイス上の特定のポイントの値を取得しているが、これはカメラスペースの座標からとられている。
そのため、オブジェクトが移動すると、その特定のポイントは、カメラ・スペース内で座標移動することになるので、ノイズパターンが変わってしまう。

これをオブジェクト・スペースに変えるには
Shop > basic_surface >basicで
transformノードを作成。(ヘルプ:Transform



global1の出力Pをtransform1のfrom入力へ接続
transform1のto出力をturbnoise1のpos入力へ接続

Trasnformノードのパラメータペインを見ると
From Space >  space: current
To Space > space: object
となっている。

選択肢のなかでobject spaceとtexture spaceはここでは結果としては同じになる。


--------------
<RestPositionを使う>

Cubeの一つのフェイスを選択肢それを移動することでストレッチする場合。
上記の設定では、参照するオブジェクトのポイント位置がオブジェクトスペース内で変化しているので、テクスチャーパターンがフレーム毎に変化することになってしまう。

これを防ぐには、Restpositionノードをturbnoise1のposに接続する。

※Mayaのテクスチャーリファレンスオブジェクトみたいなもの



--------------
<NDC座標を使う>

カメラからの視点と同じで、左下が0,0 右上が1,1の座標。

Shopネットワーク、2Dテクスチャ(Boxes)を使った例
global1(P) -->(From) Transform1(To)--->(vec)VectorToFloat(fval1)--->(s)boxes
VectorToFloat(fval2)--->(t)boxes(amount)---->(bias)colormix1

boxes1
S Frequency : 18
T Frequency : 18

Boxesのパターンはカメラと平行な面になっている。

※Mayaのカメラプロジェクションと同じ(?)



(注)このメモはビデオチュートリアルを見ての私的なメモで、完全な記録ではありません。
各自の利用は自己判断でお願いします。
抜け落ち、間違いの指摘は歓迎です。

0 件のコメント:

コメントを投稿