どうも篠島です。2月のセミナーでかるーく説明したレンダリング関連の新機能のRounded Edgeについて説明したいと思います。
カテゴリー別アーカイブ: SHOP
スタイルシートでCVEXを使ってパラメーターをランダマイズ
こんにちは、篠島です。今回はHoudini Advent Calendar 2017の一つの記事として書いています。11月にIFDのセミナーに参加された皆様、本当に有難うございます。今回は前回のIFDセミナーで説明できなかったスタイルシートの部分でCVEXを使ってランダマイズする事について書こうと思います。
H16 新機能 – Nested dielectrics
こんにちは、篠島です。今回はH16のシェーダーに追加された Nested dielectrics という機能を説明します。
Combining BSDF 3
こんにちは、篠島です。前回に引き続きBSDFの説明です。BSDFを足したりしていきます。
Combining BSDF 2
どうも篠島です。前回はLayerについて説明しました。今回はBSDFにまつわるシェーダーの話をしてみます。
Combining BSDF 1
こんにちは、篠島です。H16ではPBR系ノードでLayerインプットを取れるようになり、簡単にシェーディングの要素を合成することができますが、まず最初に Layer とは何かを説明します。
Velocityパス
前回はモーションブラーについて説明したので、今回はVelcityパスの作り方を説明したいと思います。Houdiniはとても柔軟なソフトでほぼなんでもできてしまうソフトですが、逆に「なんでこんな単純な事が簡単にできないんだ?」 という状況も非常に多々あり、Velocityパスもこのケースです。
Positionパスのワールド座標とカメラ座標
こんにちは、篠島です。Positionパスはデフォルトでカメラスペースでの位置を記録したものですが、これをワールド座標で吐き出すことが可能です。コンポジットで何をしたいのかによって、ワールド座標のPositonパスが必要になってきたりします。今回はワールド座標のPositonパスを使って簡単にマスクを作って見ます。
カスタムアトリビュートをパスとして吐き出す
どうも。篠島です。Houdiniはとてもフレキシブルなソフトで、自分の好きなデータをパスとして吐き出すことが可能です!
テクスチャのベイク
デジタルアセットのポータルサイト「Orbolt」には色々役立つアセットがありますが、今回はTexture Baker(https://www.orbolt.com/asset/SideFX::texturebaker)アセットをご紹介します。
このデジタルアセットは3Dシーンのライト情報を3Dモデルのテクスチャに焼き付ける、つまりベイクすることができる機能です。
Apprentice版ではテクスチャの解像度を下げれば機能しますがウォーターマークが付くのであまり意味がありません。
概要:
このアセットは、”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 | 指定した量で、ベイクされたテクスチャの区間すべてを広げる処理をします。 |
今回はこのシーンでテクスチャのベイクをやってみたいと思います。
テストするシーン:
この顔のモデルには事前に頂点UVを割り当てています。VertexアトリビュートにUVがなければこのアセットは機能しません。
Mantraでレンダリングした結果:
これからTexture BakerデジタルアセットのUIのパラメータを設定します。Cameraにカメラオブジェクトを指定し、次にAdd Bundleボタンをクリックします。これで”bake”という名前のバンドルが作成されます。
次にWindowsメニューのBundle Listをクリックします。
bakeバンドルにベイクしたいジオメトリオブジェクトを追加します。
Bake Textureボタンをクリックすれば処理が始まります。
これでベイクされたテクスチャが作成されます。