カテゴリー別アーカイブ: SHOP

スタイルシートでCVEXを使ってパラメーターをランダマイズ

こんにちは、篠島です。今回はHoudini Advent Calendar 2017の一つの記事として書いています。11月にIFDのセミナーに参加された皆様、本当に有難うございます。今回は前回のIFDセミナーで説明できなかったスタイルシートの部分でCVEXを使ってランダマイズする事について書こうと思います。

続きを読む

Combining BSDF 1

こんにちは、篠島です。H16ではPBR系ノードでLayerインプットを取れるようになり、簡単にシェーディングの要素を合成することができますが、まず最初に Layer とは何かを説明します。

続きを読む

Velocityパス

前回はモーションブラーについて説明したので、今回はVelcityパスの作り方を説明したいと思います。Houdiniはとても柔軟なソフトでほぼなんでもできてしまうソフトですが、逆に「なんでこんな単純な事が簡単にできないんだ?」 という状況も非常に多々あり、Velocityパスもこのケースです。

続きを読む

Positionパスのワールド座標とカメラ座標

こんにちは、篠島です。Positionパスはデフォルトでカメラスペースでの位置を記録したものですが、これをワールド座標で吐き出すことが可能です。コンポジットで何をしたいのかによって、ワールド座標のPositonパスが必要になってきたりします。今回はワールド座標のPositonパスを使って簡単にマスクを作って見ます。

続きを読む

テクスチャのベイク

デジタルアセットのポータルサイト「Orbolt」には色々役立つアセットがありますが、今回はTexture Baker(https://www.orbolt.com/asset/SideFX::texturebaker)アセットをご紹介します。
OrboltTextureBaker
このデジタルアセットは3Dシーンのライト情報を3Dモデルのテクスチャに焼き付ける、つまりベイクすることができる機能です。
Apprentice版ではテクスチャの解像度を下げれば機能しますがウォーターマークが付くのであまり意味がありません。

TextureBakerUI
概要:
このアセットは、”bake”バンドル内の各オブジェクトに対してテクスチャマップをベイクします。
すべてのライト情報がそれらのテクスチャマップ自体にベイクされます。
これによって、PBR/GIライティングのままリアルタイムでオブジェクトを使用できるようになります。また、このアセットにはレンダリングされたテクスチャの エッジを広げるポスト処理が用意されているので、ジオメトリのUVシームに黒い線が入るのを防ぐことができます。
ベイクされた画像には、法線パス(オブジェクト空間)を持つ平面を余分に持っています。さらに”diffuse/light map”パスを書き出すこともできます。このパスは、テクスチャを除いたライティング情報のみが含まれます。
条件:
1. オブジェクトに(ポイントUVではなく)頂点UVがあること。
2. 頂点UVが重なっていないこと。
動作:
“Bake”ボタンを押すと、現行シーン内にSHOPNETとテイクが作成されます。
MATERIALS_BAKED SHOPNET・・・ベイクしたバージョンのマテリアルが格納されます。
BAKEDテイク・・・ベイクされたテクスチャでマテリアルを上書きします。
BAKED_DIFFUSE・・・Diffuseベイクされたテクスチャでマテリアルを上書きします。
DIFFUSE_MATERIALS・・・’diffuse’パスをベイクする際にアセット側で使用されます。

 注意:
ベイク処理はポリゴンオブジェクトにのみ動作します。
デジタルアセットのオブジェクトをベイクしたい場合には、必要な部分を/objレベルでObject Mergeしてください。
`BAKED`テイクは、オブジェクトのマテリアルを上書きし、Geometryノードの”Ignore Geometry Attributes Shaders”にチェックを付けます。マテリアルをSOPレベルで割り当てていれば、BAKEDテイクでAttributeノードを追加し、”shop_materialpath”Primitiveアトリビュートを削除する必要があります。
これにより、ビューポートOpen GL内でオブジェクトレベルでマテリアルの上書きを更新することができます。

パラメータ:

Camera オブジェクトすべてを網羅したカメラをここに設定します。
Bundle Name ベイク処理で使用するバンドル名。
Add Bundle 指定した名前のバンドルを追加します。
Baked Texture Path 生成されたテクスチャマップの保存先。
Texture Format 画像フォーマット。
Resolution ベイクするテクスチャマップの解像度。
Pixel Samples レンダリング/ベイクの処理で使用するサンプル。
Ray Samples レンダリング時に使用する光線の数。画像の粒/ノイズを少なくするには、この数を上げます。
Noise Level 最適サンプリングに使用します。この値を低くするほどノイズが少なくなります。
Bake Texture 必要なテイクを作成し、ベイク処理を開始します。
Bake Separate Diffuse Pass さらに’baked_diffuse’テイクを作成し、追加で画像をレンダリングします。
Texture Edge Expand 黒い繋ぎ目がでないように、ベイクされたテクスチャの区画を広げるピクセル数。
Expand Textures 指定した量で、ベイクされたテクスチャの区間すべてを広げる処理をします。

今回はこのシーンでテクスチャのベイクをやってみたいと思います。
テストするシーン:
Man
この顔のモデルには事前に頂点UVを割り当てています。VertexアトリビュートにUVがなければこのアセットは機能しません。

ManUV 2015-02-24 19_36_16

Mantraでレンダリングした結果:
ManRendered

これからTexture BakerデジタルアセットのUIのパラメータを設定します。Cameraにカメラオブジェクトを指定し、次にAdd Bundleボタンをクリックします。これで”bake”という名前のバンドルが作成されます。TextureBakerUISet
次にWindowsメニューのBundle Listをクリックします。
bakeバンドルにベイクしたいジオメトリオブジェクトを追加します。

BundleMenu Bundle

Bake Textureボタンをクリックすれば処理が始まります。
これでベイクされたテクスチャが作成されます。
BakeTexture