Modified Phongの正規化

Phongの改良版と思われるModified Phongシェーディングの正規化をしてみます。

Modified Phongシェーディング

実は、このModified Phongと呼ばれるものが存在することを、昨日まで知りませんでした。このモデルのSpecular項の計算は(RdotV)^n(NdotL)となっています。ちょうど、オリジナルのPhongのSpecular項に(NdotL)を掛けたものです。このモデルの初出はどこか良くわからないのですが、”Using the Modified Phong Refletance Model for Physically Based Rendering”[1994 Lafortune et al.]ではないかと思います(つまりLafortuneモデルの簡易実装と言うことになるのでしょうか)。
このモデルは、オリジナルのPhongのSpecular項を、物体のBRDF(Bidirectional Reflectance Distribution function 反射の分布関数)の一つの項と考えたものであると思います。そういえば奇しくも以前の記事で、NdotLの由来を説明している際に、NdotLは単位面積当たりに入射するエネルギーを計算していると説明しました。つまりこのモデルでは、入射したエネルギーに鏡面反射の分布関数を掛けたものを、鏡面反射としています。

Modified PhongのBRDFの正規化

Modified PhongのBRDFは、照射ベクトルと放射ベクトルの関数になっています。

このcosθは照射ベクトルを平面の法線で反射したベクトルと、放射ベクトルのなす角度です。このままでは積分できないので、条件を与えます。照射は、平面に向けて垂直の方向から行われるものとします。こうすると、反射ベクトルは、平面の法線ベクトルと同じになります。この限定条件下のBRDFを用いて、微小平面の放射を半球で積分すると、

となります。BRDFの積分の際に出てくるcosθは法線と放射ベクトルの成す角なので、この限定条件下のBRDFのSpecular項のcosθと同じです。従って、

となり、Specular項の積分は以前の記事で行ったPhongの積分のnをn+1とするだけです。従って、

となります。Irradianceを1と仮定すると、この積分が1より大きくなることは許されません。ここでDiffuseの反射能をkdとし、Specularの反射能をksとするならば、Modified PhongのBRDFは、

となります。

積分の条件について

Modified PhongのBRDFのSpecular項の正規化は、積分の際に定義した条件と異なるケースでは正確ではありません。上記のModified PhongのBRDFの積分は、Irradianceが法線方向からという条件を与えています。おそらくこの条件は、この積分の最大値になると思います。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中