Skin shader

Maxwell Renderでスキンシェーダの構築を考える

スキンシェーダについては、色々と調べてみたところ、どうもこれ!という設定方法が見当たらず、割と皆、それっぽく見える設定を工夫して構築している、という印象を受けました。

見た目ベースってやつですね。

Maxwell Renderの公式サイトギャラリーにもスキンシェーダに特化した作例もこれといって見当たらないし、マニュアルにもスキンシェーダの構築方法に関する記述も乏しいので少々残念です。

Maxwell RenderのSSSの使い方ですが、MXM Galleryから参考になりそうなマテリアルを拝見しても、どうも統一感がなく、SSSレイヤーをそんな風に使うのか、と思うような設定も結構たくさんあって、見れば見るほど、スキンシェーダの作り方がよく分からなくなってしまいました…

ので、ひとまず自分なりのMaxwell Renderによるスキンシェーダを構築しておこうかと思いました。

Arnold Rendererを参考にしてみる

構築するにあたって、まずは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層は用意した方が良さそうではあるものの、レンダラのアルゴリズムの違いで、このあたりの設定は変わってくると思われる。

Maxwell Materialに落とし込む

今回はArnoldにならい、3層のSSSレイヤーを使い、Maxwellへと落とし込んでみることにした。

deep, mid, shallowのSSSレイヤーをそれぞれOpacityを変え、Normalで重ねていく。SSSレイヤーをadditiveで重ねるとどうもおかしな結果になってしまった。

さらに2つのスペキュラレイヤーをadditiveで重ね、リップなど必要であればマスクテクスチャを活用し、スペキュラを更に重ねる。

ディスプレイスメントマップで皮膚の大きめな凹凸のディテールを追加。

微小な凹凸はノーマルマップで。
SSS層はやや弱め、スペキュラ層にやや強めに設定。

最初より良い感じの透明感、皮脂感が出てきてはいるが、まだ違う感じ。SSSはある程度サンプリングレベルが進まないとSSS特有の微妙な透明感が確認できないので、時間かかってしかたない…

Maxwell Renderだから、というのもあるけど。

20141101-1

test image

3D-Coatでテクスチャのディテールを再度調整してみる。

彫刻を学ぶには

デジタルスカルプティングをしていくにあたり、彫刻を実際にやってみたいと思うようになりました。

最近人体形状を粘土でつくったり、してはいますけれども…

先日、書店で見つけたこの書籍、私のような彫刻の基礎すらまだ理解していない者にとっては価値のある良書だと思いました。

かなり丁寧に手順、形状の捉え方、表現方法などが書かれているので、すごく参考になります。

彫刻の話をしていたら、最近”らんま”って見ないよね。

と言われまして、らんま1/2ですかなどと本気で思ったわけですが、欄間のほうでした。

あぁ、確かに、最近欄間のある家は希少価値ありそうな気がします。欄間職人の彫刻もそれはもう素晴らしいですよね。あれは惚れ惚れします。

欄間の良さをすこしは感じるようになったという事は、年をとった、という事でしょうか…

そういえば、ばあちゃんの家には欄間があった気がする。気がするだけです。うろ覚えかもしれないけど。

そういう職人技術を何かプロダクトに活かせないかな、などと思ったりしました。

しかし、今の時代。

3Dプリンターで、とか言われそうで…

とにかく、彫刻を勉強したい私にとっては良い本だと思った次第です。

デジタルスカルプトや粘土だと、失敗したとしてもなんとか修正できるのですけど、木とか、石の彫刻って、バキッとかなるとアウトなんでしょうか。

それとも修正する技術もあるんでしょうか。

気になります。

20141019-1

 

 

エーベル/バーナンキ マクロ経済学

もう少し経済の大局を見れるようにしたいので、経済学を学ぶのに良い本を探しています。以下の2冊は読んでみる価値がありそうです。

 

ベン・バーナンキ(Ben Bernanke)は元FRB議長ですので、有名ですが、もう一人のアンドリュー B.エーベル(Andrew B. Abel)という名は知りませんでした。

調べたところ、ペンシルバニア大学ウォートン・スクールのファイナンスのロナルド・ローゼンフェルド教授であり、経済学の教授であるようです。

ウォートン・スクールは全米初のビジネススクールでもあり、超一流の頭脳が集まっていますね。

常々、成長とは学ぶことではないかと思います。

学ぶことによって、視点も変わってくるのだと感じています。

視点が変わると、これまで見えなかったものが見えてくるはずで、良い悪いに関わらず、それは自分にとっては新しい世界なのです。

 

Blender: Hairの基本

Blender、勉強ついでにブログへ覚書的に書いていきます。

Blenderは頻繁にverアップが行われ、仕様もよく変わりますので、作業verを記しておかないといけません。情報は沢山ありますが、verが違うと、操作や設定が変わっていることもありますので注意が必要です。アドオンも動作しないことがあります。

ちなみに私はver2.69ですので、少し古いです。

今回はhairを作成していきます。

ヘアーのルートとなるオブジェクトを作成します。今回はUVSphereでいきます。InfoにあるヘッダメニューのAddからオブジェクトを作っても良いですが 、Blenderはショートカットをどんどん使って作業するタイプのソフトですから、なるべくショートカッ トを使って作業をすすめます。まずはデフォルト起動時のObject Modeからスタートします。

オブジェクト作成: Shift+a

でUVSphereを作成します。
20141011-1

Blenderは3Dカーソルのある位置にオブジェクトを生成しますので、原点で作りたい時は、3Dカーソル を原点にセットします。

3Dカーソルを原点にセット: Shift+c

早速ですが、hairをつくります。

UVSphereを選択します。
選択はオブジェクトにカーソルを合わせ、右クリックもしくはOutliner上で選択。
20141011-2

次、PropertiesのParticleSystemをクリックし、+ボタンでUVShereにParticleを設定し、TypeをHairにすることで、Hairが生成されます。
20141011-3

パーティクル用の様々な設定項目が出てきます。
ひとまず長さと本数を調整。

・Emission
Number: Hairの本数
Hair Length: Hairの長さ

Hair dynamicsにチェックを入れ、Alt+aでダイナミクス設定に沿ってシミュレーションが始まります。
20141011-5

おお、簡単デスネ!すばらしい!

続いて、Particle Modeに入ります。
20141011-6

左のバーがBrushに変わりますので、Combを選択し、マウスでHairをドラッグして適当にHairをおろしておきました。
20141011-7

もうひとつCylinderを作成し、Hairの横あたりに配置。
20141011-9

G: 移動
S: 拡大縮小
R: 回転

なお、Gを押した後、x,y,zいずれかのキーを押すことで、その軸に対してのみ移動や回転、拡大縮小ができます。

続いてCylinderにForce Fieldを設定します。
パラメータによって挙動は変わりますが、とりあえず画像の値にして、もう一度Alt+aでシミュレーション開始。
20141011-10

Cylinderに設定したForce Fieldにより、Hairが避けるように動きます。Hairを作成するときには重要なポイントかと思います。Cylinderはゆっくりと動かしてみてください。

人体の時などは、bodyなどに対して同様にForce Fieldを設定するべきだと思います。

しかしながら、Windなどで、強い風をHairに与えたたり、急激な動きの場合、Force Fieldを突き抜けるケースがあり、このあたりはシミュレーションの精度があまり良くないせいか、やむをえない所もある
かなと感じます。

Blenderの威力

最近Blenderをさわっています。

サブツール的位置づけで使用していますが、CINEMA4Dと比べても出来ることならほぼ遜色ないレベルだと思います。

現状、テストをするのに、Luxrenderが必要だったので、親和性の高いBlenderを経由してから、別のレンダラでテストをしていました。

Blenderのverは2.69を使っていますが、現在は2.72になり、また新しい機能が実装されています。この開発スピード感はすばらしいと感じます。V-rayにも対応するなど、3DCGソフトとしての拡張性にも魅力を感じています。

少し、GUIが”ウルサイ”と感じるのは自分だけでしょうか。なんというか、”線”が多いというか。

レンダラもCyclesを搭載していますので、十分実戦で使える気がします。2.72ではGPUレンダリングでのボリュームレンダリング、サブサーフェイススキャッタリングも出来るようになりました。

まだモデリングが出来るほど使い込んでいないので、ベースのモデリングはすべてCINEMA4Dで完結しています。仕事ではMaxwell Renderがメインです。

Blenderの魅力は情報量が豊富であり、検索すれば多くの回答が得られます。英語圏の情報も豊富です。

ポリゴンモデリング、スカルプティング、ペイティング、リトポツール、物理シミュレーション、リグ、アニメーション、外部レンダラと他の有料ソフトに比べても機能面でみればかなりの充実度。

もう少し使いこんでみようかと思いました。

http://blender.jp/