ずいぶん前にプラモデルのディテールアップを参考にしながら、それとなく作ってみたサザビーをさらしてみる…
Maxwell Renderでレンダリング。
ヘアシェーダは3つのレイヤーで作りました。
ベースカラーにスペキュラを2つ重ねています。
これもまた正解というのはなさそうで、髪の状態によっても変えないといけないですね。
異方性反射も入れてます。
rootとtipのカラーはグラデーションテクスチャをチャンネル0に設定すれば良いので簡単。部位によるカラーの違いはテクスチャをチャンネル1に設定します。
反射の加減がとても難しいです。HDRIをあれこれ変えながら、いろんなライティング下で確認するんですが、もうちょっとパパッと決めれるようにしないと。Maxwellは確認のレンダリングも結構コストかかるんで。
最終的にはHDR Light Studioを使い、スタジオライティングのような感じになりました。
しかしまだまだ研究の余地ありまくりのようです。
髪の質感ではスペキュラの調整にてこずっていますが、もう一つ、髪の毛って、一応は光を透過するので、Transmittanceを使うべきかも悩みますが、これを使うとなるとまたシェーダ設定がややこしくなってしまうので、今回はカットしています。
この点は、別のレンダラで試してみたいと思います。
Aronld Render (Help)
https://support.solidangle.com/display/mayatut/Hair+Rendering
Maxwell Render (Help)
http://support.nextlimit.com/display/mxdocsv3/Hair+and+Fur
danroarty.com
http://www.danroarty.com/
THE FOUNDARY COMMUNITY
http://community.thefoundry.co.uk/discussion/topic.aspx?f=4&t=61780
Real-Time Hair Simulation and Rendering
http://hairrendering.wordpress.com/2010/06/26/marschner-shader-part-i/
HIROSHI MIYAMOTO BLOG
http://cieloblog.blog75.fc2.com/blog-entry-18.html
スキンシェーダについては、色々と調べてみたところ、どうもこれ!という設定方法が見当たらず、割と皆、それっぽく見える設定を工夫して構築している、という印象を受けました。
見た目ベースってやつですね。
Maxwell Renderの公式サイトギャラリーにもスキンシェーダに特化した作例もこれといって見当たらないし、マニュアルにもスキンシェーダの構築方法に関する記述も乏しいので少々残念です。
Maxwell RenderのSSSの使い方ですが、MXM Galleryから参考になりそうなマテリアルを拝見しても、どうも統一感がなく、SSSレイヤーをそんな風に使うのか、と思うような設定も結構たくさんあって、見れば見るほど、スキンシェーダの作り方がよく分からなくなってしまいました…
ので、ひとまず自分なりのMaxwell Renderによるスキンシェーダを構築しておこうかと思いました。
構築するにあたって、まずはArnold Rendererのマニュアルを拝見。
何故Arnoldかというと、マニュアルが非常に分かりやすいのと、シェーダ設定がユーザーにとって比較的簡単に作られている、ような印象を受けたからです。ついでにスキンシェーダ専用のマニュアルまで用意してくれていますし。
Arnoldのマニュアルによると…
https://support.solidangle.com/display/mayatut/Guide+to+Rendering+Realistic+Skin
https://support.solidangle.com/display/AFMUG/Skin
SSSレイヤーを3層
・deep
・mid
・shallow
に分け、その上にスペキュラ層
・specular
・sheen
をのせる。
3層のSSSレイヤーについては、
deep = hypodermis(皮膚下の細胞層)
mid = dermis(皮膚下の血管、リンパ管、神経末端等のある層)
shallow = epidermis(皮膚の表面層)
ということになるだろう。
2層のスペキュラは表皮の皮脂成分をシミュレートする。
SSSレイヤーはそれぞれ
SSScolor or texture
weight
radius
の組み合わせであり、スペキュラは別に設定するようだ。
シェーダ構築のヒントになればと思い、いくつかを参考にしてみる。
Light Diffusion in Multi-Layered Translucent Materials
A Spectral BSSRDF for Shading Human Skin
他にもいくつか目を通す。
皮膚の構造上、SSSレイヤーを最低2層は用意した方が良さそうではあるものの、レンダラのアルゴリズムの違いで、このあたりの設定は変わってくると思われる。
今回はArnoldにならい、3層のSSSレイヤーを使い、Maxwellへと落とし込んでみることにした。
deep, mid, shallowのSSSレイヤーをそれぞれOpacityを変え、Normalで重ねていく。SSSレイヤーをadditiveで重ねるとどうもおかしな結果になってしまった。
さらに2つのスペキュラレイヤーをadditiveで重ね、リップなど必要であればマスクテクスチャを活用し、スペキュラを更に重ねる。
ディスプレイスメントマップで皮膚の大きめな凹凸のディテールを追加。
微小な凹凸はノーマルマップで。
SSS層はやや弱め、スペキュラ層にやや強めに設定。
最初より良い感じの透明感、皮脂感が出てきてはいるが、まだ違う感じ。SSSはある程度サンプリングレベルが進まないとSSS特有の微妙な透明感が確認できないので、時間かかってしかたない…
Maxwell Renderだから、というのもあるけど。
test image
3D-Coatでテクスチャのディテールを再度調整してみる。