WebGL による physically based rendering(PBR) チュートリアルのイントロ記事! 今後に期待高まる!
物理ベースシェーディングの勉強に
今回ご紹介するのは、昨今、様々なところで目にする機会の増えた PBR(physically based randering)のチュートリアル記事……の第一弾となるイントロ記事です。
この記事自体は、WebGL だけでなく 3DCG の分野で有名な Marcin Ignac 氏のブログエントリです。氏は、WebGL を Node.js 環境で開発するための pex というライブラリを手掛けるなど、とても精力的に WebGL 関連の活動をしている方でもあります。
今回ご紹介するのは連載の第一弾となるイントロ記事なのですが、実行可能な WebGL サンプルへのリンク、また参考になりそうな多数のコンテンツへのリンクなどが豊富に含まれており、一見の価値ありとなっています。
PBR ってなんなの?
「What Is Physically Based Rendering (PBR)?」という謳いだしで始まる今回の記事。私も含めて、まだまだ PBR についてはあまりしっかり理解できていないという人が多いのではないでしょうか。
もしくは、そもそも PBR なんて初めて聞いたんですけど!? という人も、意外と多いかもしれません。
今回紹介している記事の中では、そのあたりの疑問も含めて、少しずつ簡潔に、PBR の概要を説明しています。レンダリング結果のキャプチャなども豊富に使われているので、わかりやすいのではないでしょうか。
何を隠そう私自身も、人に説明できるほどしっかり物理ベースシェーディングを理解しているかと言われると、正直ちょっと怪しい……今回の記事の続きをウォッチしつつ、勉強していけたらいいなと思っています。
誤解を恐れずに書くと、物理ベースシェーディングは、より現実の世界に近いリアリティのある描画結果を得るための概念です。
レイトレーシングなどの世界では、まさにこういった現実世界の物理現象に即した数学や物理の概念を多く使いますが、それと同じように、現実に近い形でのレンダリング結果を得られることを目指して実装していきます。
たとえば、レンダリングする物体は金属なのか、そうでないのか、あるいは拡散光や反射光の影響力はどの程度なのか、表面のざらつき具合はどの程度なのか……などなど。できる限り、現実世界の物体と同じ質感に見えるように、様々なパラメータを調整して描画結果を変化させられるようにするのですね。
ブログ記事からは、実際に実行できるサンプルへのリンクも用意されていますので、実行してどのようなレンダリング結果が得られるのかを確かめてみるのもいいでしょう。
正直なところ、かなり重めなサンプルなので、あまり非力なマシンだとつらいかもしれません。
質感を変化させてみたり、あるいは法線などの特定の情報だけを抜き出して描画してみたりと、かなりいろんなことができるようになっているので、それを見ているだけでもどのようなパラメータを使って描画を行っているのか、参考にできる点は多いと思います。
上の図は法線だけを描画した様子ですね。
物理ベースシェーディングは見た目が本当に綺麗です。
ただしその分、実装はかなり難しいものになります。これは正直なところ仕方のないことかなと思います。こればっかりは努力して勉強するしかないでしょう。
日本語での資料もかなり少ない……というか、英語が読めないと勉強することも難しい、というのが現実です。その点、今回ご紹介したイントロ記事と、それに続くであろうチュートリアル記事には、期待感高まります。このブログの著者さんのこれまでの傾向として、キャプチャ画像などを多めに使ってわかりやすく解説してくれるイメージがあります。
今回の記事のなかにも、たくさんの有用なリンクが置かれています。
それらを参考にして、自分なりに勉強してみるのもいいと思います。PBR に関する日本語の記述は本当に希少なので、誰か勉強して解説記事書いてください(笑)
冗談はさておき、今後にも期待できる今回のブログエントリ。
当然英語の記事ですが、サンプルやキャプチャ画像を見るだけでも、参考にできる点は多いはずです。ぜひチェックしてみてください。