background

スポンサーサイト

--年--月--日(--)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


Superflyがいろん・1

2016年09月25日(Sun)

SuperflyはPoser 11から新しく実装されたレンダラである。

レンダラとはデータを所定の手続きで「描画(レンダリング)」するプログラムのことである。フィギュアやカメラをぐりぐり動かして、その様子をプレビューウインドウで確認できるのは、プレビューレンダラがリアルタイムで頑張った結果だ。また、Webブラウザが実際にはテキストファイルであるHTML文書を、こうやって色々装飾しながら表示するのもレンダリングという。コンピュータはいろんなものをレンダリングしている。

160925-01

実際に計算を行う根幹のプログラムのことを、レンダリングエンジンと呼んだりする。3DCGソフトなら、それに加えてシーン内のライトやマテリアルの解釈を行う部分や、レンダリング設定などの要素もまとめたものがレンダラというとになる。

Poserにレンダラが追加されたのはFirefly以来だから、ずいぶん久しぶりのことだ。久しぶりすぎて、なかなか体当たりできない人も多いんじゃないだろうか。今までのFireflyだってそれなりのことができてたわけだし、イマイチSuperflyのすごさがわからないし、と。

すごいかどうか結論は据え置くとして、SuperflyはFireflyと何がどう違うのか、そもそもSuperflyレンダラはどういうものなのか、そのへんをちょっと考えてみようと思う。

実際のところ、自分もまだ全容を把握できているわけではないので、不正確な部分や間違いもあると思う。そのへんはやんわり教えてもらえるとありがたい。


公式サイトやマニュアルを読むと、SuperflyはBlenderで使われているCyclesというレンダリングエンジンを元にしたレイトレースレンダラであると書かれている。物理ベースのレンダラであり、分散パストレーシングによって、リアルな画像を得られるとのことだ。

この分散パストレーシングというのはちょっと誤訳風味で、Branched=分岐するパストレーシング、と解釈した方がいいかもしれない。パストレーシングの原理自体と、どのへんが分岐なのかは後で説明するとして、大事なポイントはSuperflyが「物理ベース」のレンダラということだ。

では、物理ベースとはどういう意味だろうか。

「物理ベース」は何年か前にCG界隈で流行し始めた言葉だ。「リニアワークフロー」の次ぐらいなんじゃないかな。コンピュータの性能が向上するに従って、できることは増えていく。提唱されていた理論がようやく実用に足るレベルで実装できるようになると、一気に流行りだすのだ。

もちろん、目新しさだけで新しい技術が流行るわけではない。「リアルな結果になる」というのは、普遍的なニーズの一つだ。だけど物理ベースにはもう一つの切実なメリットがある。言葉遊びのようだけども、それは「物理ベースである」という点だ。物理ベースのレンダラとは、より物理法則に忠実なデータを、なるべく物理法則に従ってレンダリングするレンダラなのだ。つまり、より現実的で、嘘がない。

じゃあ今までのレンダラは嘘だったのだろうか。もちろんそうだ。嘘というと聞こえが悪いけど、近似や代替、簡略化といったものは、コンピュータの処理能力が限られている以上どうしても必要になる。あらゆる物理法則が完璧に計算で再現できるようになるまで、何かしらの誤魔化しは続く。物理ベースのレンダラだって、まだまだいろんなところを端折ったり誤魔化したりしている。

それでも従来のレンダラに比べれば、いくつかの代替概念とサヨナラして、より現実的なレンダリングを行えるようになったのだ。そう、リアルなレンダリングとは、もう誤魔化さなくてもいいレンダリングのことなのである。

例えば、Poser 4レンダラからFireflyになった時のことを思い出してみよう。Fireflyではレイトレース反射を描画できるようになった。それまで金属やエナメルなど、反射マップを使っていた表現を、そのまま反射で表現できるようになったんである。

160925-02

計算時間が増える代わりに、より現実的な描画ができるようになった。さらに、反射マップを作る必要がなくなった。それっぽい反射マップを作るのは製作スキルの一つだったろう。だけどレイトレース反射を適切に設定すれば、誰でも同じようにリアルな結果を得ることができる。新しい技術が、個人のスキルに依存する部分を減らし、より上質な結果をもたらした。そういう感じのパラダイムシフトが、物理ベースでもやってきたんである。

ではここでちょっと、Fireflyの描画を確認してみよう。

160925-03

FireflyはRendermanというレンダラのエンジンを元にしており、基本的にはスキャンラインレンダラである。スキャンラインというのは、ざっくり言えばレイトレースより早くて単純な計算方法だ。そこに足りない様々な計算結果を追加していく。まずはシャドウマップやレイトレースで影を乗算する。

160925-04

レイトレースで反射や屈折の計算結果を加算したり、AOを乗算したり。

160925-05

IDLを使うと、レンダリング前に間接光の計算をする。

160925-06

SSSを適用したマテリアルがあったら、その分だけ別に前計算をしたり。

160925-07

そういう結果を色々加味して、最終的にレンダリング結果が得られる。

160925-08

だけど、よくよく考えてみよう。現実の世界では、影はライトからの距離や遮蔽物に応じて黒く塗りつぶされているわけではない。ただ光が当たっていないから暗いんである。日陰が真っ暗でないのは、脳内で二次反射光を加算しているからではない。光がエネルギーを失うまで何度も反射を繰り返した結果、日陰からもわずかに目に届く光があるから、明るくなっているんである。

より現実的な結果を再現しようとして、複雑な計算をいくつも重ねてきた。だけど別々に計算している限り、どこかに齟齬は出る。実際、Fireflyは屈折の中の被写界深度を表現できなかったり、透過体の中のIDLを計算しようとするととんでもない時間がかかったりする。そろそろ限界じゃないかなあ、というのが旧来のレンダラのネックだったのだ。

また、こうも考えてみよう。

光は物質の表面に当たったとき、いくらか吸収され、いくらか反射して、いくらかは屈折する。表面の微細な凹凸によってあちこちに拡散した反射が拡散反射で、一定の方向に反射したのが鏡面反射だ。反射した光はまた別の物質にぶつかって、吸収されたり、反射したりする。

160925-09

物質の色を決めているのはなんだろう? 物質がある特定の色に見えるのは、その波長の光を反射しているからだ。逆に言えば、他の波長の光は吸収している。どの波長の光を吸収するかはだいたい分子構造で決まる。もんのすごくいい加減に説明すると、分子の周りを回っている電子と同じ波長を持つ光は、ぶつかったときにその分子をぐるぐる回って安定してしまい、出てこれなくなるのだ。吸収されなかった光は屈折して物質の中を進む。屈折率は物質の誘電率や透磁率で決まる。不純物にぶつかったらまた反射して、その中のいくつかは、物質に入った地点からそう遠くない場所に出てくるだろう。皮下散乱である。

光の経路を考えてみると、鏡面反射とレイトレース反射を分けて考える方が、むしろ奇妙に感じてくるだろう。ハイライトとは結局、反射した光源の姿そのものだからだ。また、拡散反射とレイトレース反射と屈折は合計を1以下に設定する、というのも納得がいくだろう。1以上にしたら、入った以上の光が出てくることになってしまうからだ。

そういえば拡散反射を描画するランバートシェーディングは、光が当たった時すべての方向に等しく拡散するという前提で式を簡略化している。しかし実際のところ、それは理想であって現実的ではない。どの色をどの方向にどれだけ反射するのか、そういう指標が本当は必要なはずだ。

色というのも再考の余地がある。ヒトが色を感じるのはある範囲の波長に反応する光の受容体が三種類ほど眼の中にあるからだ。その感度は均等でなく、さらに個人差もある。

160925-10

今は赤青緑の三色で計算しているけど、世界に溢れている電磁波の中にはいろいろな波長が含まれているし、物質が反射する光だって三色だけではない。分光反射率特性で色を設定し、あらゆる波長の光を積分し、ヒトの(あるいは別の生物の)眼の受容体の感度に基づいてレンダリングする。そういう未来も、やがては来るかもしれない。

まあ、そこまで話が飛んでしまうと、もう手がつけられないので(汗)。

せめて光が通るあらゆる経路を考慮して、物質表面の状態で反射率や色々を計算できたら、どんな風になるだろう? その考え方はとてもシンプルだ。そして膨大な時間がかかるだろう。なるべく簡単な計算方法を考えて、コンピュータの性能がどんどん向上して……今、ようやくある程度の精度を、そこそこの時間で叩き出せるようになった。

だったらもう、今までのマテリアルやその他もろもろの概念は、一旦捨ててしまおう。より素直に、ありのままの姿を計算しよう。

そういう考え方が、物理ベースなのだ。(つづく)

160925-11

次はパストレーシングとマテリアルのざっくりとした考え方についての予定。そしてこれは、使わなかったレンダリング比較(笑)。



Comments

嬉しくて急いで書いたので

唐突なコメントに成ってしまいますが、
私、最近、理系の本に凝っていまして。
と言っても理系の人の為の本ではなく、理系の人が数式を理解できない人の為に、数式を使わずに最新物理理論の概念を伝えようと工夫して書いて有る本です。
因みに特殊相対性理論から進んで一般相対性理論に読み進みまして、いよいよ最新量子論に読み進めようとしているところであります。
まるで夢絵空事の様な世界観ですが、それが実世界で立証されつつ有るというのが、まことに摩訶不思議でついつい夢中になってしまいます。

と、唐突な事を書いたのは、物質の色を決めるところの解説が同じように面白かったからです。
此処まで突っ込んだ解説は初めて読みました(^^
1以下にするという説明もとても解り良くて納得できました。
kyotaroさんが以前ブログで書かれていたので、何故かはわからずとも、Shade等で材質設定する時も守っていました。

そしていよいよ物理的に正しい「物理ベース」のレンダラですね。
実は物理的に正しいとはどういう事か、初めて目にした時から一番知りたい事でした。
つづきがとても楽しみです。
懐かしのワンコも実験に参加させていただいて有難うございます(^^

Name
sannzi #u2lyCPR2
Site
URL
Post Date
2016-09-25
Post Hour
23:48:32

Edit

続きはなるべく早く……(汗

>sannziさん
いいですね~理系解説本。そういえばホーキング博士の著作に「数式が一つ書かれるごとに読者は減っていく」と書かれていましたが、式を使わないで概念を説明するというのは、とても大切なことだと思います。理論が実証されていくのってわくわくしますよね。

自分は高一の科学の時間に、銅イオン水溶液にアンモニアを加えて行った時の美しい青色がとても不思議で、テスト用紙の端に「なぜあのような色になるのか教えて欲しい」と書いてギッシリと回答をもらったのですが、その時はちんぷんかんぷんで理解を諦めたのでした。色の仕組みを理解できたのは、高三の物理で波と電磁波を学んでからでした。数式で書かれた説明は結構あるのですが、概念だけを取り出してなんとなく理解させる、というのはなかなか難しいようです。

sannziさんのGlassDog、ようやく納得のいくマテリアルでレンダリングできた気がします(^^

Name
Kyotaro #NWbyPjWY
Site
URL
Post Date
2016-09-26
Post Hour
22:01:10

Edit

概論だやっほー

しかもひら仮名でがいろんだーやったー(笑)

とりあえずスタート地点をP4からにしてもらえたので、P4→P7→P11という経歴の持ち主にとても分かりやすかったです。
思えばFireflyの時点でこういう概念をつかんでおけなかったのがマテリアルルームへの恐怖の始まりだったかも知れません。

だいたい「数学苦手」という人の大部分が分数の乗除で失敗しているのと同じで、ここんとこ知らないとその先に進みようがないんですよね。解らない人が一番解らないといけない部分、だと思います。
いえ、手っ取り早く「ここをこうしろ」も重要なんですけども(笑)

というわけでこの続き非常に楽しみです。
よろしくお願いします。

あー、sannziさんのGlassDog、実際にあったらこんな美しいんだー。Superflyすげーなというのを納得しやすいアイテムですねえ!

Name
rose #4SZw2tfw
Site
URL
Post Date
2016-09-27
Post Hour
00:06:06

Edit

お待たせしました~

>roseさん
ようやくどうやって書いていけばいいか掴めてきた感じです(笑)。思えばP4レンダラからFireflyの時も、結構ユーザー内で抵抗みたいなのがあったような気がします。自分は主にP6からなので、むしろメリットを追求してやろう、みたいな気持ちになったりして、それが今につながっているのかもしれません。

次はちょっとパストレースの原理的な話になっちゃうので、さらっと読み流してくださいまし。具体的なものはなるべく後回しに……(時間稼ぎ・笑)

CGアイテムに実際にあったらってのも妙な気はしますが、確かに説得力があります(笑)。こういう小物が美しいのはレンダしてて嬉しくなりますね。

Name
Kyotaro #NWbyPjWY
Site
URL
Post Date
2016-09-28
Post Hour
04:20:14

Edit

Post Comment

管理者にだけ表示を許可する


Trackback

※このブログにトラックバックを送信する場合、お手数ですが本文中にブログ該当記事へのリンクを含めてください。

トラックバックURL:http://rutenshikai.blog63.fc2.com/tb.php/523-790c8226



Menu

Profile

Kyotaro

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

Categories

Calendar

04 | 2017/05 | 06
- 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非推奨。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。