GLSLで物理ベースシェーディングを試すために、いろいろなBRDFを実装してみました。 サンプルを以下においておきました。マクロで使用するBRDFを変更することができます。 http://glslsandbox.com/e#54592.0 マウス位置のx方向でroughnessパラメータを、y方向でmetallicパラメータを変更することができます。 下準備 BRDFを定義する際に使用する変数です。 \begin{eqnarray} \rho_{d}&:& 拡散リフレクタンス\\ \rho_{s}&:& 鏡面リフレクタンス\\ \vec{n}&:& 法線(normal)ベクトル\\ \vec{v}&:& 視線(view)ベクトル\\ \vec{l}&:& 光源(light)ベクトル\\ \vec{r}&:& 反射(reflect)ベクトル\\ \vec{h}&:& ハーフ(half)ベクト