Unity物理ベースレンダリングに入門するための連載の第1回です。今回は物理ベースレンダリングの概念とその背後にある考え方についてまとめます。屈折した光の行方サブサーフェイス・スキャタリング拡散反射の簡易モデルまとめ連載一覧はじめにこの連載では物理ベースレンダリングに関する基礎的な知識をまとめていきます。この第1回目では物理ベースレンダリングの概念について説明します。第2回では実装を行う上で用いる式を一通り紹介し、第3回ではUnityにおける実装を行います。リアルタイムレンダリングを前提としているため、オフラインのパストレーシングなどの話題は取り扱いません。物理ベースレンダリングと銘打ってはいますが、シェーディングモデルを中心に解説していく予定です。物理ベースレンダリングとはさて物理ベースレンダリングとは、物理的な根拠に基づいてレンダリングを行う手法です。Renderingで、ここからPBRと略されたりもします。物理ベースレンダリングよりも前から存在する古典的な手法としては、LambertやBlinn-Phongなどのシェーディングモデルがあります。これらを使うと以下のように物体を立体的に表現できます。昔ながらのシェーディングモデルの例ただ、これらの手法は実は「なんとなくそれらしく見えるように」計算式を組み立ててあるだけです。そのためフォトリアルな絵作りをする場合にはアラが目立ちどこかリアリティに欠けた結果となりがちです。そこで、物理ベースのシェーディングでは「可能な限り物理的な根拠に基づいて」計算式を組み立てます。この「可能な限り物理的な根拠に基づいて」については次節以降で詳しく説明します。ここにさらに、周囲の環境を映し込む間接光の影響を反映したり、ポストエフェクトによる露光調整を行ったりすることでフォトリアルな結果を得られます。物理ベースレンダリングの例このようなレンダリング手法を物理ベースレンダリングと呼びます。物体に入射する光の行方さてここからは物体に入射する光の行方を追うことで物理ベースレンダリングの背後にある考え方を学びます。物体に光が入射すると、光は反射成分と屈折成分に分かれます。物理ベースレンダリングではここで、エネルギー保存の法則という物理法則を考えます。エネルギー保存の法則とは、エネルギーの総量は常に一定であるという法則です。反射成分と屈折成分のエネルギーの総量は入射光のものと等しいということになります。物理ベースレンダリングでは、常に総エネルギー量が一定であるように設計をすることでエネルギー保存の法則を守ります。フレネル反射また、フレネル反射と呼ばれる物理現象についても考慮します。反対に掠めるような角度から見た時には反射して水中が見えづらくなる現象です。下の写真では下部ほど水中がよく見え、上部は景色の反射が強いことがわかります。水やプラスチックなどの非金属において特に顕著にみられます。次に物体表面で反射した光の行方をより詳しく見ていきます。反射光このように物体表面で反射する光を鏡面反射光(Specular)と呼びます。マイクロファセットこれをフォトリアルに見せるために重要なのが、マイクロファセット(微細表面)という考え方です。平らに見える表面でも、顕微鏡で見ると細かい凹凸があったりします。マイクロファセット物理ベースレンダリングではこのような微細な表面をマイクロファセットと呼びます。マイクロファセットによる凹凸が多いと、その凹凸により光は多方面に散乱します。多方面に散乱その結果、反射はすりガラスとかマット加工されたアクセサリーのようなぼやけた感じになります。反対に凹凸がなくツルツルだと鏡のようにくっきりとした反射になります。物理ベースレンダリングではこのような物体表面の粗さをラフネスというパラメータを用いて表します。幾何減衰また、マイクロファセットによる凹凸があると、反射した光の一部がその凹凸によりが遮蔽されます。反射光の遮蔽また入射時点でも同じようにマイクロファセットにより遮蔽されることが考えられます。結果として細かい凹凸があるほど物体の色は暗く見えます。これを幾何減衰と呼びます。屈折した光の行方さて次に物体の中に屈折して入っていく光を追ってみます。物体の中に入った光は物体内部の粒子に衝突し散乱を繰り返します。一部の波長が吸収されることで色が付きます。散乱を繰り返しながら色付いていく一部の光は散乱の結果、吸収されないまま物体表面から外に出てきます。このような光を拡散反射光(Diffuse)と呼びます。光の通過した軌道によって吸収される波長が異なり色づき方が変わることが考えられます。皮膚の下に赤い血管がある人間の肌では、深いところを通った光ほど赤く色づきます。肌の表面化散乱このような現象はサブサーフェイス・スキャタリング(表面化散乱)と呼ばれます。拡散反射の簡易モデルこのように、拡散反射光の働きは鏡面反射光に比べて複雑です。下図のように物体内部で反射した光が入射位置から出てくると考える簡易モデルを使うことも多いです。拡散反射の簡易モデルまとめ以上、物理ベースレンダリングの概念とその背後にある考え方について簡単にまとめました。物理ベースレンダリングでは、これらの考え方を式とソースコードに落とし込んでフォトリアルなレンダリングを実現します。自動車のクリアコート塗装のような特殊な層を持つものなどまだまだ考慮するべきことはたくさんあります。現実には間接光が法線を中心とした半球上のあらゆる方向から注ぐことになります。これを表現するためにはグローバル・イルミネーション(大域照明)の技術が必要になります。現実の光の輝度のレンジはディスプレイに表示できる輝度のレンジより大きいため、HDR(ハイダイナミックレンジ)を扱えるパイプラインとポストエフェクトによるトーンマッピングを行う必要があります。物理的に正しく計算を行うため、リニアワークフローを用いることも重要です。本記事は入門編ということでこのあたりで締めくくりたいと思います。その2では今回の内容を実際に計算するための計算式を紹介します。1はてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。