background

マップいろいろ。

2016年11月29日(Tue)

ここのところ、なかなかまとまった時間が取れないので手持ちのアイテムのテクスチャをいじって遊んでいる。今年の秋メイクは赤とダークブラウンで太眉が流行ですよ、とか見かけて「へーそうなんか」と思ったり。

161129-01

眉は描かないから勝手がわからないんだよなー。っていうか、それを言うならそもそもお化粧自体そんなにしないので、何もかもわかってない気がする。いやお恥ずかしい。

というわけで、使うフィギュアは最早顧みられることもないであろう初代Miki。

161129-02

ホントになんでこうなったんだろうって……まあいいや。

161129-03

モンゴロイド的なまぶたの構造とか、やわらかい口角とか自然なモーフとか、ようやくじぇねしすさんになって追い付いて来たかな?っていうレベルで突き抜けてたよなー。後のバージョンで長所を活かせないどころかスポイルしちゃったっぽいのがなんとも悲しい。

それはさておき、初代のいいところはクオリティの高いテクスチャとバンプとスペキュラマップが付属しつつ、かつテクスチャに余計なものが書かれていないところ。つまり物理ベースレンダリングで言うアルベドマップにそのまま転用できるというわけで。

161129-04

その上にPhotoshopでメイク的なアプローチでレイヤーを重ねてみた。

161129-05

うん、なるほどわからん。

じゃなくて……日本人にとってのメイクの半分は、嘘の立体感を盛っていくという一種のトリックアートのようなもので、それはまあなんとかできるんだけども。なんかイマイチ、いや今三ぐらい古臭い感じ。本格的にやるなら適当な資料が必要かな。やる気はないんだけど。

Mikiが出たころのPoser界には物理ベースのPの字もなかったので、スペキュラ成分は全部スペキュラマップが制御していた。そこでスペキュラ成分と粗さ成分を別のマップに起こしてみる。

161129-06

まずはSSSもなんも接続していない状態。拡散色はグレー50%、鏡面反射は白100%。

161129-07

そこに付属のバンプマップを適用。SSSを適用すると効きが弱く見えるので、値は1mmぐらいに設定しておく。

161129-08

鏡面反射成分の計算にはSubsurface Skinノードを使うことにする。で、HighlightSizeに粗さマップを接続したところ。

Subsurface Skinノードを接続するとSSSの計算をしてしまうので、効果が出ないように色を黒にしておく。使用する粗さマップはスペキュラマップを反転して、唇付近が0.1、首のあたりが0.3、他はだいたい0.2~0.3になるように色調補正。ここで数値をきちんと合わせておくと、ノードのHighlight sizeの値は1にするだけで済む。光沢の表れ方に違いが出てくる。

ちなみにお化粧は普通、肌のテカリを抑えるためにファンデーションを塗るので、化粧をしているときの肌の粗さは高くなる。逆に唇はツヤツヤさせるので低くなる。すっぴんの時は、肌は場所によってテカるし唇はプルプルではなくサラサラになる。なのでNudeマテリアルを作るなら、粗さマップは2種類用意するといいかもしれない。

161129-09

元のスペキュラマップを使って毛髪部分を0、肌部分を0.5付近に色調補正する。Specularityの値は実際にレンダリングしながら数値演算ノードを挟んだりして調整する。とりあえず今はこのまま。

161129-10

色を足す。肌の色によって鏡面反射が強すぎたり弱かったりするので、そのへんを調整する。

161129-11

SSSを適用したところ。Subsurface SkinノードやScatterノードは散乱色固定で、Subsurface Skinノードは散乱距離も固定なので設定するのはここまで。時間があれば散乱マップや散乱距離マップも作ってCustom Scatterノードを使ってみたいものだけど、まあそれをやるならAさんでやるよね。

鏡面反射やバンプを調整するときは、面倒でもカラーテクスチャを外して黒もしくは灰色一色で調整するのがお勧めだ。個別に調整した方が「どこを改善すればいいのか」がよくわかる。

自分に足りないのは……若い感覚、かな(遠い目)。



ふぁぶりっく。

2016年11月15日(Tue)

休みだったのでテクスチャを使わずに布っぽい質感と柄を作ってみるテスト。

161115-01

そういえばこういうチェック柄は、タータンチェックだと思っていたらタッタソールチェックというらしい。イギリスのタッタソールさんが馬にかけていた毛布の柄だそうで、日本では乗馬格子とも呼ぶそうな。ひとつ賢くなった。

161115-02

ちゃんとしたタータンチェックを組もうと思ったら複雑なツリーなりそうだなー。そういえば、Superflyの方がバンプが全体に影響してくすんだ感じになっている。質感としてはざらっとしてていいんだけど、もうちょっと考慮の余地があるかも。

そのほか似非スパンコールみたいなのも作ってみたり。

161115-03

折り畳み機能が楽しいからシェーダっぽく仕立て上げたりなんかして。

161115-05

あんまりこういうの、ブラックボックス化というか専門っぽくしちゃうと、一般ユーザが試行錯誤しなくなってしまいそうなんだけどね。

色とかパラメータを変えてみる。

161115-04

うんうん、なかなか楽しい。それにしても、どうもがっつりとした強い光沢がFireflyだとうまく出せない。以前密かに試行錯誤して挫折したのも結局これが原因だったかな。悪くはないんだけど別物って感じ。まあ互換性にこだわるつもりはないから、ほどほどでいいか。



無理矢理シャドウキャッチ。

2016年11月11日(Fri)

十分な光量のあるHDR画像はそのままで完全な光源として使える。歪みの少ないHDR画像はそのまま背景画像として使うこともできる。撮影された視点の高さと3D内でのカメラの高さ、パノラマ球の中心の高さを合わせればパースもきっちり合わせることができる。

すると問題になるのが地面との接触部分だ。パースは合ってても実際には宙に浮いているから、影が足元に落ちない。Superflyのマテリアルはシャドウキャッチャーに対応していないから、地面に落ちる影だけをレンダリングすることもできないのだ。

161111-01

じゃあどうしよう。影だけFireflyでレンダリングしようか。ところが、Fireflyのシャドウキャッチャーや影のみレンダは、ライトによる影は描画できても、HDR画像から「光が当たっていないこと」によって生じる影は描画できない。似たようなライトセットを組んでその影を取得することもできるだろうが、今ひとつパノラマHDRIの長所が活かせない。

おおもとのCyclesレンダラではどうしているのだろう。調べてみたら、Blender界隈ではレンダリング結果を複数枚コンポジット(合成)する方法を紹介していた。ということはマテリアルでシャドウキャッチはできないのだろう。そしてCyclesが対応していないということは、Superflyが対応する見込みも少ないということだ。

仕方ないので、後処理で無理やり影を抽出することにする。自分が使っているのはPhotoshop CC 2017。

161111-02

用意する画像はこの4枚。それぞれ(A)被写体と背景、(B)被写体と背景と地面、(C)背景と地面、(D)被写体のみのアルファチャンネル。このうち、少なくともBとCは設定を変えずにレンダリングすること。でもってAが最終的に使用する被写体の画像になる。影を描画する地面はとりあえず拡散色のみの真っ白にしておく。試してないけど地面に近い色を塗っておいた方がいいかもしれない。

わざわざAとBを分けてレンダリングしなくても、Bを切り抜けばいいんじゃないかと思うだろう。しかし地面を表示すると、地面からの照り返しによって下方向からの照射が変わってしまう。

161111-03

それに透過や反射が設定されていた場合は結局Aを別レンダして合成することになる。なので結局3枚+αが必要になる。ちなみにA~CはHDR(.exr)で保存、DはPhotoshop形式(.psd)で保存している。

ではまずBとCをPhotoshopで開き、C(背景と地面)をコピーしてB(被写体と背景と地面)の上に重ねる。もちろん32bitモードのままで構わない。で、上層のCのレイヤーの描画モードを除算にする。

161111-04

すると同じ色のピクセルは白(=100%)に、下のレイヤーより明るい色のピクセルは暗い色になる。つまり背景画像や地面の影響を取り除いた、影の成分だけを抽出できる。そこでこの二枚のレイヤーを結合して(B÷C)、A(被写体と背景)の上に重ね、さらに描画モードを乗算にする。

161111-05

これで影を重ねることができた。影以外の余計な部分も重なってしまっているので、まず大まかに影が落ちていない不要な部分を選択し消去する。

161111-06

それからD(被写体のみのアルファチャンネル)を選択範囲メニューの「選択範囲を読み込み」で反転して読み込み、マスクを作成する。

161111-07

あとは細かいところを修正する。形状によっては若干マスクと影の隙間が開いて見える場所があるので、影レイヤーのマスクを選択した状態で属性パレットの「選択とマスク...」ボタンをクリック。

161111-08

「エッジをシフト」スライダーを動かしてマスクのグレーな部分を調整し、目立たなくなったところでOKをクリックして完成。

161111-09

あとはレイヤーを統合して露出補正とか。

161111-10

これだけの作業なら32bitモードのままで完結できる。HDRで保存して32bitモードで操作するとのメリットは、白よりも明るい値を扱えること。つまり被写体によって生まれた影だけでなく、被写体から拡散反射によって明るくなった照り返し部分も同時に乗算することができる。あとは合成後に露出調整できることかな。

161111-11

Photoshopによる合成は単に差分を抽出するだけなので、HDRIを使わない場合やライトを任意で追加した場合にも使える。もちろんFireflyレンダにも使えるので、覚えておいても損はないんじゃないかな。

というわけで、ちょっと手間暇かかるけど影の合成もできますよ、というお話。



0灯パノラマ球ライティング。

2016年11月08日(Tue)

0灯ライティングということは、つまりライトでないものを光源にしているわけで、要するにパノラマのHDR画像を貼り付けた球体を光源としているわけである。

161108-01

具体的な手順は以前ランタイム探索の回で説明した通り。ライトがないとシーンが真っ暗になるので陰面消去のワイヤーフレーム表示なんか使うと楽かもしれない。

使用する画像は360度展開のパノラマならまあ大体なんでもいいっちゃいいんだけど、できればHDR画像がいい。一見同じように見えても、保存されている情報量が違うからだ。光源としては、ただの白よりも強い明るさを保存しているHDR画像の方が、より明るくなるしハイライトも鋭くなるわけで。

161108-02

それにレンダリング結果をHDRで保存したときも、パノラマ画像がJpegだと露出調整で潰れた階調が目立ってしまう。もともと1,677万色しかないから、HDRで保存しても階調が増えるわけではないのだ。

161108-03

パノラマ球を光源にするぐらいなら拡散IBLライトでいいじゃないか、というツッコミもありそうだけど、拡散IBLは結構厳密でない照らし方をするし、鏡面反射も表現できない。高解像度なHDRの階調を活かすなら、パノラマ球の方が表現力は圧倒的に高いと思う。

161108-04

ちなみに使用しているのはデフォルトランタイム下のTexture>HDRVFXフォルダに格納されているやつ。そのまま背景に使用すると暗すぎてイマイチ使えなかったものも、HDRで保存すればPhotoshopで露出調整できるので、可能性がずっと広がる。

161108-05 161108-06 161108-07 161108-08 161108-09 161108-10 161108-11

まあ、もとのファイルが暗いと明るくしたときにノイズが目立つので、よりピクセルサンプルを上げるか環境値を上げた状態でレンダする必要があるかも知れない。自分的にはバランスのとれたPondや、ちょっと歪んでるけどそのままで十分な明るさが得られるOffice foyerなんかが使い勝手がいいと思う。というわけで前々回のAさんはOffice foyerを逆光方向で使っている。実は背景とパースが合ってないんだけど、まあそこはそれ。

ネット上で配布されているHDRIの中には、単体で光源として完結できるものと、メイン光源(主に太陽光)の明るさを抑えてあるもの、両方がある。そのへんはメインライトを追加するなり臨機応変に対応すればいいんじゃないかな。



HDR保存のススメ

2016年11月04日(Fri)

なんというか、一つのことを説明しようとすると、その手前のこともちゃんと書いておかないといけないような気がして。書いてたら長くなっちゃうから少しずつ区切ろうとしたら、いつの間にか書くのを忘れてたりして。

そんな感じの小ネタ。

Fireflyのレンダリング設定にあったトーンマッピングやガンマコレクションは、Supeflyのレンダリング設定には存在しない。Superflyは物理ベースのレンダラだから、ガンマ補正しないという選択肢自体が存在しない、という解釈でもいいんじゃないかなと思う。

とはいえ、その機能を多用していた人にとっては、無くなってしまうと困惑してしまうものだ。トーンマッピングなんかはその一つだろう。通常のモニタが表示できる赤緑青各色256階調16,777,216色の範囲を超える、明るすぎる部分をほどよく表示可能な範囲内におさめてくれる機能である。

161104-1

じゃあSuperflyは256階調を超える明るさを表現できないのか、すべてのピクセルが黒から白の範囲内に収まるようにライティングしなければならないのか、というと、そんなことはない。

画像を保存するときにHDRI、すなわちRadiance形式(.hdr)またはOpenEXR形式(.exr)を選択すればいいんである。

161104-2

FireflyでもSuperflyでも、内部の計算自体はリニアなデータで行なわれている。というかレンダラは本来リニアな光のエネルギーを計算するものである。レンダリングウィンドウに表示されたレンダリング結果は、そのリニアな計算結果に(必要ならガンマ補正をかけて)モニタが表示できる各色256階調だけを表示しているにすぎない。当然JpegやPNGなど従来の画像形式で保存できるのも、切り取られた256階調だけだ。

HDR(High Dynamic Range)は、従来の各色256階調、8bitに収まらない広範囲のデータを扱う形式だ。HDR形式で保存された画像をHDRI(High Dynamic Range Image)と呼んだりする。Radiance形式は一番広く普及している形式、OpenEXR形式はさらに高精度かつ多くのデータを保存できる形式だ。どちらもPoserから出力する分にはそんなに違いはないので、自分の使っている画像処理ソフトが対応している形式を選べばいい。

PhotoshopでRadianceまたはOpenEXRファイルを開くと、自動的に32bitモードになる。

161104-3

で、イメージメニューの色調補正>HDRトーン...やフィルタメニューのCamera RAWフィルター...を使って、「RAWデータを現像するように」思い通りの露出に変換する。

161104-4 161104-8

要するに、Superflyでは「トーンマッピングは画像処理ソフトでやってね」ということだ。

たとえば、こんな感じのレンダリング結果があったとしよう。

161104-5

窓から光が入り込んで、室内を照らしているようなシーンだ。正直パストレーシングがものすごく苦手とするシーンである。なにせ開口部が狭いから、レイがなかなか光源にたどり着かない。途中で死ぬから値が収束しない。収束しないということはノイズが減らないということである。なので開き直ってピクセルサンプルを上げ、さらに拡散反射の反射回数を増やし、光源の強度をがっつり上げる。ある程度光が回らないといくら計算回数を増やしてもなかなか収束しないので、まずは室内に光が回るようにする。

すると当然、明るい部分は思いっきり色飛びしてしまう……という感じのレンダリング結果。

しかし色飛びしているように見えても、HDRIならちゃんと中身は保存されている。Photoshopで開いて、32bitモードを16bit(または8bit)モードに変えてみよう。

161104-6

HDRトーン機能が起動して、HDRIをいかに256階調の範囲内に収めるか(=トーンマッピング)、その方法を尋ねてくる。

161104-7

HDRトーンはもともと、画像をゴテゴテといわゆる「HDR風」に補正する機能ではなくて、HDRIをトーンマッピングする(ついでにノイズ軽減や強調なんかもできる)機能だったわけだ。

デフォルトだと「方法」がローカル割り付けになってて、階調をそれなりに収めてくれている。窓の外に実はスカイドームが配置されてたり、鎧戸が水色だったり、レンダリングウィンドウで表示されなかった情報がキチンと保存されているのがわかる。

あとは、自分の好みになるよう露出調整すればいい。ちなみに「方法」を露光量とガンマにして値をいじらなければ、元の色飛び状態で変換できる。

いったん16bitや8bitモードに変換してしまうと、当然ながらHDRで保存されていた細かなデータは失われてしまう。この変換は不可逆なので、モードを変換するときは後悔しないよう慎重に行おう。変換後のデータはpsd形式で保存し直して、元ファイルは残しておいた方がいいかもしれない。変換せず32bitモードのままでも構わないんだけど、使える機能が限定されるので本格的に加工するなら最初に露出調整して現像してしまうのがいいと思う。

161104-10

HDRトーンではなく、Camera RAWフィルタを使うこともできる。やることはHDRトーンとほとんど同じだけど、こちらは部分的にマスクをかけたり、より細かい調整が可能だ。自分が操作しやすい方を使えばいいんじゃないかな。あんまりゴテゴテと補正をかけるとリアルさは失われてしまうので注意。

161104-9

もともと階調飛びしないようなライティングやシーンなら、もちろんどの画像形式で保存しても中身は変わらない。けど、現実世界のカメラで撮影するにも苦労するような、明暗差が激しいシーンを作る時にはHDRは特に有効だ。階調飛びを気にせず「現実的な数値」でライティングし、HDRIでリニアなデータのまま保存し、画像処理ソフトで「現像」する、というような流れになるのだと思う。

じゃあ「現実的な数値」とは何かというと、それはまた別の話になるので、またいずれ。





Menu

Profile

Kyotaro

確定名:Kyotaro
ネタを探しているらしい。

Categories

Calendar

11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Comments

Archives

Track back

RSS feed

Links

Search

※2011年4月6日のサーバ障害の為、エントリのアドレスが以前のものからズレています。当Blogのエントリにリンクを張っておられた方は、お手数ですがアドレスのご確認をお願い致します。

※Internet Explorer非推奨。