background

流転閑語、お話の続きをアップしております。

RutenKango

次で完結予定。週末には上げられたらいいな~。


さてPoser。

あるとき眠れなかったので、そうだSuperflyでの被写界深度の表現はどんなもんだろうと思い立ち、さくっと背景セットをロード。さくさくっとライトを配置してf値を設定、SuperflyのレンダリングボタンをポッチリしてMacを放置した。寝る準備をしてから戻ってきたらレンダリングが終了していたので、そのままFireflyでほぼ同じ設定になるようにして、またレンダリングボタンをポッチリとやってからMacから離れた。おやすみなさい。

で、起きてからレンダリング結果を確認。どんなもんかな~。

160804-01

ぼかしの品質がどうこう言う前に、なんかSuperflyのレンダ結果が暗いのが気になった。

ライトはほぼ白の200%無限光とHDR画像を繋いだ100%の拡散IBL1灯。どこに影響が出てるんだろうと思って、とりあえず無限光を100%にしてライトごとにレンダしてみた。

160804-02

うーん、どっちもSuperflyの方が暗いなあ。

以前の検証で比較したように、単純な形状、単純なライティング、単純なマテリアルの下では二つのレンダラも結果にほとんど差が出ない。Superflyはデフォルトでガンマコレクションが効いているので、Fireflyもガンマコレクションのチェックを入れている。じゃあ差が出るのはどこだろう。複雑な形状、複雑なライティング、複雑なマテリアル、そのどれか。

……などと思いながら二つのレンダラを行き来しつつテストを繰り返してる内に、ふとレンダリング時間も確認しようかなと思ってiPhoneでストップウォッチを起動した。

あ、そういえば今のPoserってログを吐くようになったんだっけ。

ログというのはプログラムが裏でゴチャゴチャと頑張っているところの記録みたいなものである。確かそこにレンダリングの秒数が出てたような気がする。Poserのログウィンドウは右上の吹き出しアイコンで表示する。

160804-03

オレンジ色になったら新しいログを吐いたよ、みたいな。

160804-04

ふむふむ。Fireflyは6分33秒。Superflyは7分58秒。Superflyの方が1分半ほど時間がかかっている。なるほどなー。

と、ちょっと待て。Superflyレンダの方、なんか警告を吐いてる。

160804-05

(意訳)警告:マテリアル○○を解釈してるときにエラーが発生したよ。SuperflyはPoserサーフェイスノードの拡散値と鏡面値にアンビエントオクルージョンノードは接続できないにょ。

なんだとぅ。

アンビエントオクルージョン(AO)はP6のころ散々お世話になった環境閉塞なあれである。

160804-06

つまりこれがSuperflyだとエラーになるらしい。もともとAOというのは「狭くて光が入り込まなさそうなところに上から影を塗る」というシェーダである。だから初めから光の回り込みをちゃんと計算するIDLでは必要ないし、描画もされなかった。

そういえばAOノードの一番下に、知らない項目が増えてるな。Evaluate in IDL……「IDLで値を計算する」みたいなことだろうか。

……うん、君の事はまた今度確認するから。(←と書いておかないと忘れる)

物理的な光の経路をちゃんと計算するというSuperflyレンダラでは、AOノードはそもそもがエラーになるという事なんだろうか。どのみちFireflyでもIDLでレンダしてるシーンなので、全部のマテリアルからAOノードを切断していく。

ひええええ。

160804-07

あ、明るくなった! やったあ。

とりあえず、SuperflyではAOノードは繋がない方がいいってことかな。マニュアルにライトのAOは使用できないとか書いてあったけど、マテリアルの方も影響するということらしい。

ええと、何をやろうとしていたんだっけ。ああ、被写界深度だ。

というわけで無限光ライトを200%に戻してレンダレンダ。

160804-08

部分を拡大するとこんな感じ。

160804-09

ザラっと感が出るSuperflyの宿命で、もっとピクセルサンプリングを上げないと気になる感じかな。Fireflyの方が綺麗にボケてる。

ちなみにここで使ったFireflyのレンダ設定。

160804-10

あとSuperflyのレンダ設定。

160804-11

まあ、既知のネタかもしれないけど。気にせずこれからも体当たりしていこうっと。

スポンサーサイト





うふふふふ。

2016年07月27日(Wed)

お話の続きをアップしております。

RutenKango

えへへへへ。(←いやらしい笑い)

アルハイムとベリアル(というかベリアルの)歳がいくつぐらいなんだろう、というのは原作読んだ頃から結構気になってたことで、色々妄想した挙句「意外とそんなに離れてない」設定になっちゃった。一年前にレベル9~10だった人と三ヶ月前にレベル11だった人がいたとして、じゃあ後者は一年前はレベルいくつだったのよ、とか。ベリアルが結構な歳だとすると、地上とはいえ僧侶以外の職に就いたことなく修行してきたにしては低くないかとか、そもそもあの世界、何歳ぐらいでマスターレベルになるんだろう、とか。まあなんにせよ冒険者の方がレベルは上がりやすそうだよね。戦闘経験値の比重が大きいから。まあコンピューターゲームだし。

まあそれはさておき。

更新日付を見れば丸わかりなように、いつも流転閑語のサイトを更新してからこちらの記事の文章を書いたりしてたわけで。ずっと同時更新っていうのはさすがに無理だった。

というわけで今回はPoserとかの話はなし。絵もなし。

ネタやら、やりたいことは積み重なっていくんだけど。



ジオメトリエッジライン。

2016年07月21日(Thu)

お話の続きをアップしております。

RutenKango

話の流れ的に折り返し地点な感じかな。かな。


sannziさんのモミリータちゃんで、トゥーンの新機能の一つを試してみた。

160721-01

Poserでトゥーンレンダリングをする手法はいくつかあって、過去にも何度か取り上げたことがあるんだけども。今回は機能を試す目的もあったので、プレビューレンダに合わせる。いつかのバージョンから、プレビューウィンドウでかなりいい感じにマテリアルを描画できるようになった。プレビューレンダの手軽さと、Fireflyのトゥーンノードを組み合わせることができるようになったというわけで。

まずはドキュメントスタイルをテクスチャシェーディングに。

160721-02

で、ざっくりマテリアルはこんな感じ。

160721-03

申し訳ないレベルでこれだけ(笑)。あと髪は光沢をテクスチャに追加する感じで。

160721-04

で、新機能。Poser 11ではオブジェクトの輪郭線を描画する機能が追加された。「今更かよ!」とか「今までもあったじゃん」とかツッコミどころは多い気がするんだけど、とりあえずは使ってみようかと。

プレビューウィンドウの下にあるボタンの内、一番右にあるやつをクリックする。

160721-05

で、ジオメトリえっじらいんというチェックボックスにチェックを入れる。これだけ。ダイアルは画像だと1.5になってるけど、とりあえず初期状態の1.0でいいかな。

160721-06

たぶん、プレビュー画面でぶっとい線が描画されたことと思う。いわゆるこれ、法線トゥーンというやつである。詳しくは過去記事を参照してもらうとして、この裏返った殻を自動で生成して描画してくれるというわけだ。

ただしこの機能、プレビュー画面でしか使えない。FireflyやSuperflyでレンダリングすると描画されないので注意だ。Superflyで描画できないのはわかるけど、せめてFireflyには追加して欲しかったなあ。まあ、やろうと思えば自力でできるんだけどさー。

それはさておき、この法線トゥーンの新機能たる所以は、これがマテリアルごとに設定できる、という点だろう。

160721-07

Poserサーフェイスノードの一番下に、ジオメトリエッジの太さとカラーを設定する項目がある。この数値は環境設定に左右されない固有の単位らしいので、とりあえず0.001~5ぐらいで設定してしまおう。ちゃんと測ってないけど、たぶん単位はメートルとかじゃないかなあ。

マテリアルごとに色を設定できるので、白っぽいものはブルーっぽい線とか、肌色は茶色っぽい線とかに設定できる。一番大きいのは、今までトゥーンノードの輪郭線、カメラと面の向きによってはぶっとく描画されていたあのラインを、今度は輪郭じゃなくて「塗色の一つ」として扱うことができる点だと思う。塗色の一つだと考えると、輪郭線との違和感を和らげたりとか、そういう使い方ができるんじゃないかなあ。

なんて考えたら、奥が深くて這い出すのが大変そうなので退散する。

ジオメトリエッジラインは固定の値なので、カメラが遠ざかったり、レンダリングサイズを変えたりすると目立たなくなったり、逆に太すぎたりする。なのであらかじめ基準の距離で全てのマテリアルに丁度いい太さを設定したら、シーンに応じてプレビューウィンドウの下の設定で1.5倍にしたり0.8倍にしたりと調整するといいと思う。

160721-08

動いてるかな? 髪の動きがかなりいい加減だけどごめんなさい。いやあ、アニメーションって難しいな~(脱兎)。



ままのあじ。

2016年07月18日(Mon)

お話の続きをちょっとだけ更新しています。

RutenKango

文章を書くときというのは結構無計画だったりして、分量配分なんてのは全然調整できてないんである。あとから見直してみると、分量が均等になるように分割してから節番号を振ったつもりなのに、一つだけやたら短いとかそういう節が出てきたりもするんである。

いいんだい。

もともとこの話、もう10年以上前に書きかけのまま放置していたのを、ちょっと思うところがあって完成させたもので。一番の目的は「自分が読んでニヤニヤできること」(ミもフタもない)だったんだけど、もう一つは近況報告したら「完成したら読ませてね~」と言ってくれた身内に捧げるものだったりなんかして。

まあなんにせよ同人。


sannziさんがご自身のブログで可愛らしいフィギュアを配布なさってたので、早速ダウンロードさせていただきました。Momilitaちゃん。なるほど、ペコちゃんか~。という感じで、チョロ出しの舌が可愛らしい。

あくまでお人形さんライクな感じで、シリコンぽくなるようにマテリアルを触ってみたり。

160718-1

生レンダ。

ちゃんと表情モーフも用意されていたり、服一式にポーズファイル、通常マテリアルとトゥーンを切り替えるMATまで同梱されてたり、とても至れり尽くせりで作者さんのきめ細やかな人柄まで現れたフィギュアセットになっている。

同梱されているtweetyさんの専用ヘアが、ポーズファイルで前髪子プロップの表示を切り替えるようになってて、使いやすいしバリエーションも広げられる。トゥーン系キャラにすごぶる強力なアイテムなんじゃなかろうかと思ったり。

160718-2

こういうポーズを取るときは、IKが組み込まれているととても楽チン。

いや、なんていうか、使う人間自体が「かわいいものは好きでも扱う才能はない」みたいな致命的な弱点を抱えているので、フィギュアの良さをアピールしようにもからっきしなんだけども(笑)。

トゥーンで猫娘バージョンも触ってみようっと。



予習、もしくは復習。

2016年07月14日(Thu)

流転閑語、お話の続きを更新しておりますのでお楽しみください。

RutenKango

なんていうか、いよいよな感じ(笑)。


さて。

Poser 11でSuperflyレンダラを見据えたマテリアルの調整をしようとすると、どうしても疑問にぶつかる。Superflyレンダラとは一体どういうレンダラなのか? という点だ。

それは「SuperflyとはBlenderのレンダリングエンジンCyclesを改良した物理ベースの~」というところではなくて。まあそれはそれで大事で、Cylcesの接続を再現するためっぽいノードがごっそり追加されているのを見ても、いずれは目を通しておこうとは思うんだけど、とりあえずここで知りたいのは「ガンマ」とか「リニアなんちゃら」とかいうあのへんのことである。

何年か前にちょうど「リニアなんちゃら」が流行りだしたとき、それは物理的に正しいレンダリングを目指すものであり、最終的には「近似と感覚」で再現するしかないものだった。しかしそれによって、画像のガンマ値という概念がPoser界隈にやってきたのは確かな話だ。それから数年経った今、新しく実装されたレンダラではどのように扱われているのだろう。

というわけで実験。

160714-01

なんか懐かしいね(笑)。

小道具の四角を並べて拡散色を白にして(小道具のデフォルトの拡散色は完全な白ではないので注意)他の値は全部0、拡散値を0から1まで0.05刻みに増やして並べる。Superflyは拡散反射もきっちり他のオブジェクトに影響を与え合うので、背景や地面などは非表示にする。そしてライトを無限光1灯にして、色は白、強度は100%で真正面から当てる。

で、そのレンダリング結果をPhotoshopでカラープロファイルの割り当てをなしにして開き、スポイトツールで輝度を調べる。

160714-02

最初にランベルトさんが考えたように、もともとレンダリング結果というやつはカメラに届く「光の量」を表しているのであって、その光の量が人間の目に「どんな色に見えるか」を表しているのではなかった。光の量が白の50%であるとき、人間はそれを「ちょうど灰色(50%グレー)」ではなく「明るい灰色(70%ぐらい)」と認識する。ところが、ピクセルの輝度で表された「光の量」を私たちはまるで「人間の目に映る色」のように扱っていた。明るい歪みがかかった人間の目の世界よりも、物理的な光の量の世界は暗い。だからレンダリング結果はいつもなぜか暗いのだ。したがって旧来のレンダラでは「人間の目の歪み」を加えるという後処理が必要だった。それを「レンダラ内部でやりますよ、そのかわり使うテクスチャとか、ちゃんとガンマ値を考慮してね?」というのがリニアなんちゃらだ。

で、レンダリング結果。

160714-03

表にするのはちょっと大変だったのでグラフ。横軸が拡散値、縦軸がレンダ結果の輝度。

160714-04

プレビューレンダとFirefly・ガンマコレクションなしの結果はまあその通り。ガンマコレクションありの方は、ピンク色の線がxの1/2.2乗のカーブで、ちょうどガンマ値2.2の逆数のカーブがかかっているのがわかる。Superflyは同じように明るくなってるんだけど、なんでか2.2よりほんのちょっと暗い。で、拡散値が1を超えても出力結果が100%にならない。色飛びを抑えるために全体を0.98で掛けてるようにも見える。

とは言え、これでSuperflyレンダラはFireflyのガンマコレクション機能と同じように
レンダリング後に(ガンマ値2.1ぐらいの逆数の)明るい歪みをかけるレンダラである
ということがわかった。

さて、レンダリング後に明るい歪みをかけるリニアなんちゃらでは、レンダリング前に使用する画像ファイルに「暗い歪み」をかける。では、Superflyでは画像の扱いはどうなるのだろう。

ということで、こういうイメージマップを用意する。

160714-05

実はPhotoshopで作るグラデーションは完全な線形ではない。なので仕方なく鉛筆ツールで1ピクセルごとにRBGの値を1ずつ増やしていった。

いや暇じゃないのよ。

テクスチャ画像を読み込む時、テクスチャマネージャというダイアログが表示される。ここでレンダリング設定のガンマコレクションの値を使用するか、個別に指定するかを選択できる。

160714-06

なので、両方の場合について確認することになる。

比較対象は値ノードのuノード。

uノード及びvノードは、ジオメトリのUV値を参照するノードである。UV値の振られていない場所つまり頂点でないところは、その距離で補間される。これを基本小道具の片面の平面に接続すると、0から1まで線形に変化するグラデーションが得られる。

160714-07

まあこの時点でなんか「あ、はい」みたいな気持ちになっちゃうけど。

そんなこんなでまずは拡散色で比較。ガンマコレクション2.2で、画像に同じ値を設定したとき。

160714-08

ガンマコレクション機能を使用しないとき、グラデーションは線形になる。ガンマコレクション機能を使用すると、uノードのグラデーションは明るい方に歪み、ガンマ値2.2を指定した画像は歪まない。このガンマ値2.2とは、レンダリング前に暗い歪みをかける時の値である。暗く歪めてからレンダリングし、その結果を2.2の逆数で明るく歪める。なので元通りの線形に戻る。uノードの方は画像でなく単なる値なので、レンダリング前に暗く歪める処理が入らない。だからレンダリング後の明るい歪みだけが入り、結果、明るく歪むことになる。

画像のガンマ値に1.0を指定したとき。

160714-09

画像はuノードと同じ明るい歪みを見せる。逆に言うと、uノードはガンマ値1.0で固定、という解釈もできる。Superflyにはガンマコレクションを使わない、という選択肢はない。なので拡散色を指定するとき、その値はガンマ値2.1~2.2を意識することになる。まあ画像の場合、デフォルトの設定が「レンダ設定と同じにする」だから、ほとんど問題ないとは思うけど。

では次に、透明度に画像マップを指定する場合。ガンマコレクション機能が実装されたころに流行した薄毛症候群のアレである。拡散色は白、拡散値は1にして、グラデーションをそれぞれ透明度に接続する。

160714-10

しまった、縦向きだと比較しにくい。というわけで90度回転させてレンダリングする。

160714-11

Poserでは通常白い部分を不透明に、黒い部分を透明にレンダリングする。上の結果では、画像にガンマ値2.2を指定してガンマコレクションありでレンダリングしたFirefly、そしてSuperflyレンダでは本来意図したよりも多く透けていることがわかる。

レンダリング前にマップにガンマ値2.2の「暗い歪み」がかかっているために、中間部分がより暗く黒くなってしまうのだ。レンダリング後にかけられる「明るい歪み」は明るさに対してだけである。なので、失われてしまった毛髪……もとい、透明度が元に戻ることはない。

つまり、Superflyでも透明度マップはちゃんとガンマ値1.0を指定しよう、ということである。Fireflyで特にガンマコレクションを使ってこなかった、または意識してマテリアルを組んでなかった、という人は要注意かもしれない。

では最後に、バンプやディスプレイスメントについて。バンプだと結果がわかりにくいので、ディスプレイスメントを使う。Superflyではディスプレイスメントは最初から有効になっていて、オフにすることはできないっぽい。

160714-12

こんな感じで床に並べた平面にディスプレイスメントを設定、イメージしやすいように拡散色にも同じようにノードを接続している。白い部分で1m浮き上がっている。

で、これもレンダ。

160714-13

透明度とはちょっと違う結果になった。

まず、上段のFirefly・ガンマコレクションありの場合。ガンマ値2.2を指定した平面が曲面になっているのがわかる。レンダリング前に暗く歪められたことによって、凹型の曲線になったのだ。Fireflyでガンマコレクション機能を使う場合、バンプマップやディスプレイスメントマップもガンマ値1.0を指定しなければならなかった。

しかし下段のSuperflyを見ると、ガンマ値に2.2を指定したときと1.0を指定したとき、その変化量に違いがない。つまりSuperflyレンダラでは、バンプやディスプレイスメントに接続された画像ノードに対しては「ノードの設定にかかわらず、ガンマカーブを掛けない」という扱いになっているのがわかる。

透明度マップと異なり、バンプマップは古いアイテムだと拡散色マップを使い回しているものも結構ある。もしかしたらその対策なのかもしれない。

というわけで、以上のことをまとめてみる。

  • Superflyレンダラは、レンダリング後に明るい歪みをかけるレンダラである。
  • その歪みは約2.2の逆数であり、2.2よりちょっとだけ暗い。値は今の所変更できない。
  • 拡散色について、テクスチャ画像を使う場合、テクスチャマネージャで「レンダ設定と同じガンマ値」を指定しておけば特に歪みを意識する必要はない。
  • しかし、画像ではなく値を指定するような場合は、レンダ後の歪みを考慮して暗い値を設定する必要がある。
  • 透明度にテクスチャ画像を使う場合、テクスチャマネージャでガンマ値1.0を指定する。
  • バンプやディスプレイスメントに画像を使う場合、ガンマ値の指定は無視されるので設定しなくても構わない。ただし、Fireflyのガンマコレクション機能との互換を考えるなら、1.0を指定した方がいい。拡散色マップと共用の場合は「レンダ設定と同じガンマ値」にしておく。

という結果になった。ただしこれは、あくまで「今のPoserの状態」つまりPoser 11 SR4の場合だ。もしかしたら今後のバージョンでちょっとした修正が入って、透明度マップでも設定を無視したりとか、そういう仕様になる可能性は皆無とは言えない。

また、環境値や鏡面反射についてはどうなんだっていう話もあるけど、鏡面反射は根本から別物になってるのでここでは割愛することにする。いやめんどくさいからとか、決してそういうわけじゃ……(墓穴)。

まあ結局、ガンマ値はちゃんと設定しようね、ってことかな。

160714-14

そろそろ調整に戻らないと。





Menu

Profile

Kyotaro

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

Categories

Calendar

08 | 2023/09 | 10
- - - - - 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

Comments

Archives

Track back

RSS feed

Links

Search

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

※Internet Explorer非推奨。