background

予習、もしくは復習。

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

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



ぎっくり。

2012年07月15日(Sun)

前回書いたエントリを下書きのまま公開し忘れていたとかもうね。

更新頻度は鍋底だけど、一応生息はしておりますんで。そんなわけで、今回もお題の絵を作ってて気になったこと。

今回の生レンダ。無限光一灯IDL+SSSとかそういうのは置いといて。

120715-1

orzに見えなくもない、とかそういうことも置いといて(笑)。なんか腰が変だなあ、と。

というわけで比較。V4の可動範囲まで足と胴を屈伸させてみた。

120715-2

P6 Jamesは他が色々アレなので(笑)、考慮に入れないとしてもやっぱりM4は飛び抜けてヘンだよなあ。ボーンの向きが決定的にアレなのか、JP調整でどうにかなるものなのか。このへんのFixアイテムは出てたかなあ(←楽したいという魂胆)。

脱ぎ要員はやっぱりG2かな(笑)。



最適化オプション

2012年04月11日(Wed)

DAZの春のとんちき祭りで買ったものをちょろちょろインストールしたり、それまでに落としてたフリーものをぽちぽちインストールしたり、インストールが追いつかないってことはつまり買っても使ってないってことなんだから、溜息つくぐらいなら買わなきゃいいじゃんと思いつつ、イザ使いたいブツが定価売りしてたときの、底値を知ってるからこその葛藤なんてのを考えたら押さえられるモノは押さえておいた方がいいのかなあとか、要するにあんまり目新しいことはしてなくて。

建物アイテムのテストレンダ中に、レンダリングオプションの "HDRI optimized output" って何をしてるのかなあ、とか考えたりして。

120411-01

そういやSponzaってレンダしたことなかったなあ、なんて思いついて、またまた寄り道。

Sponzaは海外のCGサイトの「みんなでGIレンダしようぜ」みたいな企画ページで使われている形状データだ。いろんな形式のファイルがフリー配布されている。よくレンダリング比較に使われていたりするので、目にした事がある人も結構いるんじゃないかな。
Radiosity competition - Sibenik Cathedral / Sponza Atrium

モデルはクロアチアにあるスポンザ宮殿で、現在は古文書館になっているらしい。いいなー。

企画ページには「条件揃えてレンダするときのルール」みたいなのがあって、建物のある緯度経度や年月日から太陽の位置を割り出して指定するようになってるんだけど、面倒臭いのでそういうのは他のソフトに任せることにする。実際、条件揃ってるレンダ画像ってあんまり見ないし。

Wavefront OBJ形式やLWO形式だとアーチ部分の多角ポリゴンがうまく読み込めなかったので、テクスチャ指定つきで読み込めた3DS形式で、41.0105%に縮小して旧Poser単位系からメートルへ換算。実際に寸法が合っているかは確認していない。

120411-02

無限光と拡散IBLの2灯で、拡散IBLには付属のsky.JPGをベタ繋ぎ。IDL使用。レタッチあり。

ちなみにIDLを使わずにライティングしてみると、ざっくりこんな感じ。

120411-03

拡散IBLのマップがベタ塗りなせいもあるけど、こういう大半直接光が当たらないシーンでは陰部分がのっぺりしてて、まともに使える絵にするには補助ライトを入れたり工夫する必要があるだろう。もうIDLのないPoserには戻れないカラダになってしまった、みたいな(笑)。

それはさておき、一枚目のライティングでトーンマッピングもガンマコレクションも使わずにレンダリングするとこんな感じになる。

120411-04

無限光はほんのちょっとだけ黄みがかった白色で400%、拡散IBLは200%。天空光に比べて太陽光が少し弱い感じだけど、あんまり上げても階調が飛びすぎるのでこれぐらいで。

で、このシーンをトーンマッピングとガンマコレクションでそれぞれHDRI optimized outputありなしでレンダし、TIFF形式とHDR形式で保存する。

結果は以下のとおり(クリックででかサイズ)。

120411-05

いっぱいあってわかりにくいかな。画像の並びはだいたいこんな感じになっている。

120411-07

最適化がHDRI optimized outputで、CGはガンマコレクション(値は2.2)。それぞれの上段がトーンマッピングなし、下段がトーンマッピング2.2。左側がTIFFで保存したもの、右側がHDRで保存してPhotoshopで開いてそのまま8ビット変換したもの。トーンマッピングを使用しているときは、テクスチャノードに手製ガンマ補正を挟んでいる。

まずガンマコレクションを使用していない上半分。TIFFとHDRで明るさがだいぶ違っている。

Poserのレンダリングは、内部では通常のPCが表示可能な1677万色を越える広い範囲で計算されている。レンダリングウィンドウの表示は、その1677万色を越えた部分を切り落としているのだ。範囲外の情報はPNGやTIFFなど従来の形式では保存されないが、HDRやOpenEXRではちゃんと保存されている。で、以前のエントリでしつこく確認したように、3DCGソフトのレンダリング結果は人間の目が感じる世界ではなく、物理的な光の量を表している。なのでHDRで保存された画像をOSX上でプレビューすると、その内容をPCが表示できる1677万色の範囲内に収め、なおかつ人間の目の感覚に近くなるよう「明るい歪み」を掛けるのだ。

ちなみにHDRIに対応したCS2以降のPhotoshopでは、HDR画像の明るさや歪み具合を調整することができる。人間の目が可変なように、シーンに応じて露光量を変更することができるわけだ。

というわけでTIFFでは失われている階調が、HDRで保存して開くと明るく歪んで見える。ところがガンマコレクションを使用している左下の4枚は、TIFFとHDRでほぼ違いがない。というかTIFF=レンダリングウィンドウの表示で、十分明るくなっている。ガンマコレクション機能によって、レンダリング結果に明るい歪みを掛けられているからである。

逆に右下の4枚、ガンマコレクションを使用して最適化オプションを使用しない場合、HDRの方は明るくなりすぎてしまっている。開いたときにかかる歪みのせいで、二重に明るくなったからだ。

つまりHDRI optimized outputオプションは、ガンマコレクションを使用した時に「内容にどれだけの歪みが掛かっているか」という情報を埋め込んでいることになる。

じゃあガンマコレクションを使用しない場合、最適化オプションは使わなくていいのかというとそうでもない。上半分の8枚はこの状態だとほとんど分からないが、PhotoshopでHDRの露光量を調整すると、最適化の有無によって暗部の階調(情報量)がずいぶん異なることがわかる。

120411-08

右部分の柱の暗いところ、最適化なしの方は階調がほとんどなくなっている。どうやら最適化オプションは暗部の情報量を多めに保存してくれているっぽい。つまり、ガンマコレクションの有無に関わらず、HDRで保存するときはHDRI optimized outputにチェックを入れてレンダするのがベターというわけだ。

果たして。

これだけ照度に差があるシーンだと、ガンマコレクションとトーンマッピングで歪み方にだいぶ差が出ている。明るさがレンダリングウィンドウで確認できるガンマコレクションの方が、使いやすいと言えば使いやすいかな。ちなみにガンマコレクションの方が色が強く出てるのは、自分のマテリアル組み替えミス。

まあどのみちマテリアルは画像のガンマ指定を総チェックしないといけないし、色味や彩度についてはPhotoshopでポストワークかけるわけで。そういう意味ではこういったいかにもIDLレンダって感じの画像は、HDR形式で保存するようにして調整はPhotoshopに丸投げしてもいいかもしれない。いくらでも色調補正できるし。

Poserのレンダリングウィンドウ上で、Photoshopの露光量みたいなリアルタイムな調整ができたら一番いいのになー。



UV情報とバンプ、検証について

2012年03月02日(Fri)

まず告知。第六回和風展が開催されています。投稿期間は11日いっぱいまで。年に一度の本気展、ぜひ奮ってご参加ください。

第六回和風展バナー中

じ、自分は鋭意作成中……(小声)。


さて、今回のエントリはろるふぃさんのブログ「POSERとHexagon中心に3DCGを楽しもう」の記事POSERのテキスタイル(バンプ)が保存できない不具合と解決法と、thattori43さんのブログ「TH Free Style」の記事ミレ犬お散歩グッズを受けての内容となる。お二人とも精力的にPoser活動なさっている方で、いつもブログを拝見しているのだけど、一点だけ勘違されていらっしゃると思しき箇所があるので訂正させていただくことにした。

ホントは自分はフォーラムに持ち込まれない限り、他の方のサイトの疑問などには応えないようにしてるんだけど。読んだ方が他にもいらっしゃるかもしれないので、ここは老婆心ということで容赦してほしい。コメント欄への書き込みでは説明し辛いし、メール等では他の読んだ方の目に触れなくなってしまうので。

問題の箇所は「UV情報が無いとバンプ関係のマテリアル設定がライブラリ登録時に消えてしまう」というもの。これが事実でないということ、なぜそんな誤解が起こったのかということを書いていこうと思う。

まず、UV情報を持たないオブジェクトを作成する。Shadeでプリミティブをポリゴン変換すると自動的にUVが設定されるので、WavefrontOBJのエクスポート時にUV値のチェックを外す。

120302-01

これをPoserでオプションを全部外して読み込む。最初は小道具の状態だ。適当にマテリアルを設定しておく。

120302-02

次に、セットアップルームで適当にフィギュア化。ライブラリに登録して、そのままロード。

120302-03

このように、フィギュア化してもバンプが失われることはない。ちなみに、ここで使用しているのは3Dテクスチャの乱気流(Turbulence)ノードである。

では、何が問題なのだろうか。

問題を正確に把握してみよう。ろるふぃさんのブログでは「バンプ情報が消える」「バンプ関係のマテリアル設定が消えてしまう」と書かれているけれど、マテリアルのキャプチャを拝見する限り、バンプにノードは接続されている。ということは、Poser内部でも保存されたファイルの中でも「バンプにテキスタイルノードを設定するという情報」はちゃんと保持されているということである。だから、「情報が消える」という書き方は正しくない。「バンプにマテリアルは設定されているけれど、レンダリングすると描画されない」もっと正確を期すと、本当に描画されていないのか今の段階では断言できないので「マテリアルは設定されているけれど、レンダリングすると描画されていないように見える」と表現しないといけない。

揚げ足取りみたいに思えるかもしれないけど、正確に表現することはとても大事だ。物事を正しく表現するには、現象を正しく把握する必要がある。表現が正確でないということは、現象を把握できていないということである。それでは正しい判断はできないし、物事を正確に伝えることもできない。

というわけで、問題の現象は「UV情報を持たないジオメトリをフィギュア化して再ロードすると、バンプに接続したテキスタイルノードが描画されなくなったように見える」ということになる。

ここで、「ん?」「2Dテクスチャのノードって、UVがないと使えないんじゃなかったっけ?」と思ったあなたは正しい。(UVに関しての説明は過去記事のこの辺の中盤あたりにある)

2Dテクスチャに分類されているノードは、平面(2D)方向に変化する情報を描画する。平面といっても、イメージマップノード以外はXY平面やXZ平面やYZ平面を指定することはできない。ではどの平面に対して描画を行うのかというと、UV平面しかない。つまり、2DテクスチャはUV平面に対して描画を行うノード群である。まあイメージマップノードは除外されるけど、イメージマップでUV以外を指定したことのある人はかなりレアだろう。

というわけで、UV情報を持たないオブジェクトには、そもそもUVを参照する2Dテクスチャノードが描画できるわけがないのである。

ではなぜ「小道具では正常に描画できてたのに、フィギュア化でバンプが消えた」と誤解されるような現象が起こったのか。

結論から言うと、この文章に間違いが三つある。

一つ、そもそも小道具の時に正常に描画されていたわけではない。
一つ、フィギュア化しても消えたわけではない。
一つ、バンプ以外でも同じことが起こる。

以下実証。UVを持たない小道具に対してテキスタイル(Weave)ノードを接続する。

120302-04

普通のアイテムに対してテキスタイルノードを使ったことがある人なら、これが正常な描画だとは思わないだろう。Poserの基本小道具(Primitives)内にあるボールを使って比較してみる。もちろんボールにはUVが設定されている。

110302-05

UV情報を持たない小道具では、パラメータを変更しても内容が反映されているようには見えない。ではバンプ以外、テキスタイル以外ではどうだろうか。拡散色(Diffuse_Color)に接続してみる。

120302-06

まったく同じ設定のノードを接続しても、UV情報を持たない小道具では異様な描画がされている。そもそも「その画素がUV上のどの位置に存在するか」が定義されていないのだから、いくら変位させるかも、何色で塗りつぶすのかもPoserが判断できるわけがないのだ。UV情報がないということは、「定義されていないから、不定」ということである。それを無理矢理描画させるものだから、イレギュラーな(不正な)描画になっている。

さて、フィギュア化したオブジェクトに対して2Dテクスチャノードを適用してみる。

120302-07

たしかに2Dテクスチャのノードが反映されなくなった……と、判断するのは誤りだ。本当にノードの情報が反映されていないのなら、イメージマップノードの「テクスチャの黄緑色」が描画されているはずがないからである。

では、フィギュア化によって一体何が変わったのだろうか。

Poserのインポートで作成されたオブジェクトは、その内部にジオメトリ情報を保持している。小道具としてライブラリに登録しても、ジオメトリ情報は小道具ファイルの中のgeomCustomという部分に保存されている。それに対し、セットアップルームでフィギュア化したフィギュアは、ライブラリに登録するとジオメトリファイルを別に出力する。つまり、フィギュア化したオブジェクトは、参照しているジオメトリが小道具であった時と異なるのである。

短いジオメトリ(8頂点の立方体)で試してみよう。左はインポート後そのままライブラリに小道具として登録したもの。右はフィギュア化してから、ライブラリに登録したときに生成されたもの。

120302-08

頭に「v」とついているのが頂点座標、「f」が一つ一つの面が参照している頂点番号/UV頂点だ。そして、頭に「vt」とついている行がUV値である。

フィギュア化したジオメトリには、UV値が一つだけ作成されている。そして、すべての面のUV頂点が同じUV座標 (0, 0) 、すなわち左下のただ一点を参照している。マップの同じ位置を参照しているのだから、凹凸や色の濃淡が生じるわけがないのだ。

フィギュア化したときにUVが生成されるのは、無用なトラブルを避けるためだろう。その結果、今まで不正な描画がされていたものが、正常な描画を行うようになったのだ。たまたま不正な描画の方が意図した結果に近く、正常な描画の方が意図した結果ではなかったために、それを不正な結果だと誤解してしまったのだろう。

以上のことをまとめると、

  • UV情報を持たないオブジェクトに対して、UV情報を参照する2Dテクスチャのノード群を適用すると、不正な描画が発生する。
  • フィギュア化でライブラリに登録したときに作成されるジオメトリは、元のジオメトリがUV値を持たない場合、自動的に (0, 0) のUV値を生成する。

ということになる。

UV値を持たないオブジェクトに凹凸や濃淡などつけたい場合は、2Dテクスチャではなく3Dテクスチャを使用すればいい。2Dテクスチャが(UV)平面方向に変化する情報を描画するノードだとすれば、3Dテクスチャは文字通り三次元方向に変化する情報を描画するノードである。つまりUVではなくジオメトリのXYZ座標によって内容が変化するのだ。縫い目やタイルのような2Dテクスチャと同じ描画はできないが、表面の粗さを表現するだけなら十分である。

作成したジオメトリにUV情報を付加するかどうかは、作者の任意による。ただ、もし配布するつもりがあるなら、一言「UV展開はしてません」程度に書き添えておいた方が親切だろう。巷のアイテムはUV展開されているものが大半だからだ。気に入ったアイテムのオリジナルテクスチャを作ろうとして、いざUVMapperを開いてみたら真っ白、となると「もう二度とDLしねえよ ヽ(`Д´)ノ」という気分になりかねない(実際に聞いた話・笑)。

なお、どうしてもフィギュアにUV情報を持たせたくない、という時はフィギュア化前のジオメトリを使用すればいい。PoserのWavefrontOBJエクスポートは法線情報は自動的に生成するが、UV値は生成しない。

120302-09

ちなみに自分は、フィギュア化で作成されるジオメトリは使用しないことにしている。以前のバージョンのPoserで、ポリゴンが欠落したり別のグループに割り当てられてしまうバグが発生するものがあったからだ。あと、フィギュア化するとジオメトリがパーツごとに分割されてしまう。これが個人的に不便なので、いつもPoser上でグループを整理したあと、フィギュア化直前に出力したものを使用している。


間違えること、失敗することは悪いことじゃないと思う。大切なのは疑ってかかること、何よりもまず自分自身を疑うことだ。他人の言っていることは正しくないかもしれない。悪意はなくとも正確ではないかもしれない。そして、自分の考えや行動はもっと間違っているかもしれない。もっと他にうまいやり方があるかもしれない。常にそう考え続けることはしんどいけれど、そうでなければ人間はすぐに自分の判断が正しいという考えに溺れてしまう。

考えて疑って、注意深く観察して、誰がどうやっても動かしようのない事実だけを積み上げていく。自分が正しいことを証明するのではなく、自分が間違っていることを証明するのだ。その結果間違いであることが証明できなかったなら、今のところはそれが「暫定正解」になる。そしていつか間違いであることが証明されたなら、新しい暫定正解に取って代わられる。古い間違いは決して無駄ではなく、新しい暫定正解をより正解に近いところに押し上げるのだ。

検証というのは、そういうものだと思う。



Poser Pro 2012の被写界深度

2011年11月30日(Wed)

Poser Pro 2012のセールスポイントの一つに、レンダリング品質の向上というのがあった。具体的には透過や被写界深度あたりが改善されたらしい。というわけで、今まで実用性皆無だった被写界深度について、改善された効果を確認してみる。

被写界深度というのは、カメラ用語でピントが合っている範囲(奥行き)のこと。転じて、CGではピントが合ってない部分をボカす効果のことを指す。英語でDepth Of Field、DOFと略されることもある。というわけで以下DOFと呼ぶことにする。

使用したシーンはこんな感じ。

111130-1(クリックで原寸表示)

ライトは無限光3灯でシャドウマップのみ。レイトレースなし、トーンマッピング、ガンマコレクションもオフ。マテリアルの一部にディスプレイスメントが使用されていたので、「ディスプレイスメントマップを使用」にはチェックを入れている。

ちなみにPoser Pro 2010とPoser Pro 2012では基本的なレンダリングエンジンが大きく変わったということはないので、簡単なシーンでは設定が同じならレンダリング結果は同じになる。バージョンアップしてレンダリング結果が変わったと思い込んでいる人は、ちゃんと設定を確認しよう。

111130-3

クリックで原寸画像。焦点距離は新Poser単位系で75mm、f値は1.4。車のドア部分(カメラからの距離はだいたい9mぐらい)にピントを合わせる。現実のカメラではf値はシャッターの絞りを表していて、f値を小さくする(=シャッターを絞って光の通る量を少なくする)とボケのサイズが大きくなるだけでなく、画像全体が暗くなる。が、3DGC、少なくともPoserではf値を変化させても画像の明るさが変わることはない。単純にボケのサイズだけが変化する。

レンダリング結果を確認すると、縮小表示の状態でもPro 2010のギザギザなボケがPro 2012では改善されているのがわかる。とはいえPro 2012でも、ザラザラしたノイズが乗っているように見える。これはボケを計算するためのサンプリング数が足りないためだ。そこで、レンダリングオプションでピクセルサンプルを上げていく。部分アップで比較してみよう。

Poser Pro 2010の場合。

111130-5

Poser Pro 2012の場合。

111130-6

ピクセルサンプルを上げていくと、Pro 2012では品質が改善されているのがはっきりとわかる。縮小前提ならサンプル7あたりで十分使いものになるんじゃないだろうか。まあ品質が上がったというよりは、どちらかというとPoser 6→Poser 7あたりで一旦劣化させたボカシのアルゴリズムを、ちゃんとしたものに戻したという感じだけど。もちろんP6当初とは比べ物にならないぐらいレンダリング時間は改善されているわけで、実際にかかった時間をストップウォッチで計測してみた。

表: レンダリング所要時間(単位:秒)
ピクセルサンプルPro 2010Pro 2012
3(DOF OFF)1:010:26
32:381:27
55:283:14
79:475:47
915:039:22

Pro 2012ではDOFを使わない普通のレンダでも2倍ぐらい早くなっている。体感的にはテクスチャのキャッシュとシャドウマップのレンダリングが特に早くなった感じ。で、ピクセルサンプルを上げれば当然レンダ時間は増えていくわけだけども、それでもPro 2012はPro 2010の1.6倍ぐらいの速度になっている。

ところでもう一つ、PoserのDOFではレンダリングのフチがボケ幅の分だけ抜けて、背景が見えてしまうという残念な問題があった。これを確認するために、PNG形式で保存した画像の背景に緑色のレイヤーを置いてみる。

Poser Pro 2010の場合。

111130-7

Poser Pro 2012の場合。

111130-8

残念ながら、Pro 2012でもフチが抜ける点は変わっていないようだ。

そんなわけでザックリと確認してみたけど、一応使えないこともないレベルになっているんじゃないかと思う。特にPhotoshopなどのレンズぼかしが苦手にしている、急激に距離が変化する入り組んだ部分など、どうしてもポストワークでは難しいボケなどには効果を発揮するんじゃないかなあ、と。

PhotoshopのフィルタにしろPoserのDOFにしろ、最初から光学的に正しいボケを再現しているわけではない。なので正確さには拘らず、使いやすい方を使えばいいんじゃないかなと思う。





Menu

Profile

Kyotaro

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

Categories

Calendar

10 | 2023/11 | 12
- - - 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非推奨。