日々適当

hibitekitou

ベクトルは面白い

xsi |2006-07-30
2chのスレッドにXSI Foundation【初級者 カモーンщ(゜Д゜щ)】 Part 3ってのがあり、何気に参考になったりするのですが(苦笑)、いいことが書いてありました。
そういう意味ではColorは4つのスカラーの組、Vectorは3つのスカラーの組ってだけの物とも言える。
これでかなり考え方がやわらかくなります。そのコメントと同じところに、例示されていたのをちょっと実践してみます(多分、それを書いた人の意図とはずれているんだろうけど(^^;)

まずは、以下のようなグリッドを用意しました。グリッドにはXZ投影したテクスチャプロジェクションが設定してあります。



書いてある座標は、そのポイントに対応するUV値ですね。
こいつに単純にグラデーションを適用してやると↓となります。



ちなみに、UV座標はTexture projection lookup でもって取得しています。

フラクタルなものも用意しましょう。



このフラクタルの模様のRGB値をベクトルのXYZ値とみなして、グリッドの設定されているテクスチャプロジェクションのUV値と足し算をし、それをこのグリッドのマテリアルのグラデーションに渡してやる、ってことをしてみます。

Render Tree は以下のような感じとしました。

render tree


vector math vector ノードで足し算を行っています。
しかしそこから出力された値は、最大2ぐらいになっちゃう恐れがあるので、その先で、XY値のみ Change Range にて0から1の値に丸めております。

結果は…

結果


というようにちょっと不思議な模様となりました。

一点を取り出して検証してみます。サンプルポイントは、もともとのUV座標において、(0.271、0.552) というポイントです。以下の図の赤枠内の白いところになります。



上記結果におけるそのUV座標に対応する場所の色はだいたい(0.8,0.8,0.8)ぐらいとなっております。


もともとのUV座標を利用したフラクタルによるその座標のカラー値は限りなく0に近いようなそんな感じでした。
その結果、足し算して、ChangeRangeで0から1の範囲に収まるように変換した値は (0.1355,0.276)となります。

グラディエントはU方向の値は一定なので、V方向の値に注目します。Vが0.276という位置のRGB値はだいたい(0.8,0.8,0.8)とかになりました。下図の赤枠で囲まれた中あたりのラインになります。


確かに、意図したような値を取り出せているようです。

うーん、こうして取り出せるってのがわかるといろいろできそうでおもしろいですね。
コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。