UV Passの活用
NukeでSTMapを使ってマッピング!
■はじめに
composite作業の際、任意の場所にちょこっと明度の調整や、
compositeソフト上で新しいテクスチャーを貼付けたいなどの時、
大きく分けて
・Position passを使用して対応
・UV passを使用して対応
などの方法があるかと思いますが、今回はUVpassに関して検証かねてメモ!
■検証環境
maya2013nuke7.0
mentalray
■mayaでのUV passの作成方法
以下のやり方意外にもあると思いますが、mentalrayでざっくり作成する場合・place2dTextureノードを使ってSurface Shaderにコネクト
(outUV→outColor)
・mib_texture_vectorノードを使ってSurface Shaderにコネクト
(outValue→outColor)
(mib_texture_vectorのアトリビュートでProjectの項目をUVに変更)
・レンダーパスのUV passを使用
があるかと思います。
試しに、以下のサイトにある、ユタティーポットを使って、NukeのSTMapで使える
UV passを上記3つのやり方で書き出してみました。
↓からユタティーポットを拝借!
Computer Graphics Data
ダウンロードした段階で以下のようにUVが展開してあってのでそのまま使用
以下、3パターンのやり方でUV passを作成して、NukeのSTMapを使用して
ティーポットにノイズノードを使ってフラクタルノイズをマッピングしてみました。
・place2dTextureノードを使ってSurface Shaderにコネクト
・mib_texture_vectorノードを使ってSurface Shaderにコネクト
・レンダーパスのUV passを使用
パッと見は、同じ結果なので、どのやり方でもUV情報持ったデータなら使えるってかんじですかね、、、w
(恐らくアンチの具合や、カラースペースの違いで若干の違いがでるかもですが、、、。そこら辺は時間があった時つめてみようかと、、、。)
以下NukeでSTMapをつかった際のノードツリー
・place2dTextureノードを使ってSurface Shaderにコネクト
・mib_texture_vectorノードを使ってSurface Shaderにコネクト
(アンチの具合調整のため、Unmultノード間にブッさしていますが、これでいいのか微妙、、、。)
・レンダーパスのUV passを使用
(STMapにさす前に、シャッフルノードを使ってUVpassをもってきてます。STMap側で設定すれば、間にシャッフルノード必要ないかとおもいますが、、、。)
STMapを使って、テクスチャーを後でNuke上で貼付けるやり方でテクスチャーの
張り替えが簡単にできるかと最初思っていましたが、どうも動画で見た際、
結構テクスチャーノイズが見えちゃったりとそのまま使うのはまだ問題ありなような
気がしますが、マスク素材として使うのなら結構ありなような気がしてます。
■作成する際の注意点
・レンダーパスとしてUV passを書き出す時は、OpenEXR (exr)で、フレーム バッファ(Framebuffer)で、データ型(Data type)を 32 ビット浮動小数または 16 ビット ハーフ浮動小数に設定して、イメージのクランプを回避する必要があり。(help引用
・綺麗にUVを展開しておく(重なったりしていると、その部分はUVpassの情報が同じ数値になってしまいよろしくない。
■問題点
1つ問題だなーっと思ってることは、、、。UV座標で(0,0)の中にないと、STMapで張った際正しい結果にならないことですかね、、。
これがUV passの情報がいけないのか、NukeのSTMapの挙動がいけないのかは、
わかりませんが、、、。これさえ解消できればUV passを積極的に使っていきたい
感じなんですがね、、、。
結構テクスチャーの解像度を維持する為に、マルチタイル状態にしているUVの配置って
これから多くなってくると思っているので(・ω・)
↓以下の用にマルチタイル状態でUVを配置した時、UV passを書き出してSTMapでくっつけると(0,0)意外の場所にあるやつはおかしな結果に、、、。
うーーーん、、、。なんとかならんものか、、、w
コメントを残す