Tools + Simulatorsnanase.cc / tools

シェーディング

反射モデル

計算中…
Lambert
Phong
Blinn-Phong
GGX

種類

θ 光の角度

°

φ 光の方位

°

d 光の距離

P 明るさ

倍

T 色温度

K

A 環境光

r 粗さ

色
m メタリック

F₀ 非金属の反射率

Phong の指数

正規化

Lambert
—
Phong
—
Blinn-Phong
—
GGX
—

フラット
グーロー
フォン
N 分割数

r = 0.2—
r = 0.4—
r = 0.6—
r = 0.8—
r = 1.0—
多重散乱の補正

動作原理と式

反射モデル

Lo=frπLi(n·l)+ARfr=ρπ+fs
モデル鏡面反射の項 fsハイライトを決めるもの
Lambert[1]なしなし
Phong[2][3]ksnP+22π(r·v)nP反射ベクトルと視線のなす角
Blinn-Phong[4]ksnB+88π(n·h)nB法線とハーフベクトルのなす角
GGX[5][6]DFG4(n·v)(n·l)マイクロファセットの法線分布
  • 同じ指数なら Phong のハイライトの方が太い
    • Blinn-Phong の指数を約 4 倍にすると太さがそろう
  • 光が低いと形に差が出る
    • 床では Phong は丸く、Blinn-Phong と GGX は縦に伸びる
  • 正規化を切ると元の式 ks(r·v)n に戻り、指数を上げるほどハイライトの光が減る

GGX の項

D=α2π((n·h)2(α2−1)+1)2F=F0+(1−F0)(1−v·h)5G=11+Λ(v)+Λ(l)
  • D: 法線分布関数[6]
  • F: フレネル項の Schlick 近似[7]
  • G: 高さに相関のある Smith のマスキング・シャドウイング関数[8]
  • 金属の F0: 複素屈折率から求める[12]
  • メタリック: 拡散反射の色と F0 を混ぜる割合

ローブと反射率

R(μ)=∫Ωfrcosθdω
  • ローブ: 入射角を固定したときの fr の入射面での断面
    • 半径が値で、対数の目盛りは 3 桁
    • 入射角はハイライトの中心で測る。球では光の角度 θ の半分
  • 反射率: 入射角の余弦が μ の光を面が返す割合(輝度)
    • 棒の目盛りの線が 1
    • 1 を超えるのは正規化を切ったときと入射角が大きい非金属

ファーネステストと多重散乱

fms=(1−E(μo))(1−E(μi))π(1−Eavg)Fms=Favg2Eavg1−Favg(1−Eavg)Eavg=2∫01E(μ)μdμFavg=F0+1−F021
  • ファーネステスト: 全方向から放射輝度 1 の光が来る中に F0=1 の球を置く[9]
    • エネルギーを失わなければ、球は背景と見分けがつかない
    • 図の下の数値は半球の平均 Eavg
  • GGX の式は 1 回の反射だけを数えるので、粗いほど多重散乱の分を失って暗くなる
  • 失った分 1−E を fms で補うと、平均はちょうど 1 になる[9]
  • Fms: 跳ね返りのたびに吸収される分を含めた色の係数[10]

シェーディングの補間

補間計算する場所見え方
フラット面の中心で 1 回面の形がそのまま見える
グーロー[11]頂点で計算して色を補間頂点の配置でハイライトが欠ける
フォン[2]法線を補間して画素ごとに計算輪郭は多面体のまま、ハイライトは滑らか

このツールで決めたこと

  • 粗さと指数の関係: α=r2、nB=2/α2−2
    • Beckmann と Blinn-Phong の対応[6]を GGX の α にも使う
  • 近似として使う値: nP=nB/4 と Blinn-Phong の係数 (n+8)/8π
  • 粗さの下限: 0.05
  • Phong の裏側: r·v≤0 なら粗さ 1 でも 0
  • 正規化を切った式の ks: 非金属は 0.5、金属は色
    • BRDF に直すため (n·l)(下限 0.02)で割る
  • 金属の Lambert: 色をそのまま拡散反射に使う
    • メタリックで消すと球が黒くなり、比べられないため
  • Fms: 文献 [10] の Fss を Favg に置き換えた形
  • 環境光: 全方向から一様
    • 鏡面反射の分は μ と粗さの 32 × 32 の表を引く
  • 点光源: 球の中心の明るさを平行光にそろえ、距離の 2 乗で割る
  • 光の色: 色温度から求める[13]
  • 画面の値: 0.8 までは線形で、その上はなだらかに 1 へ寄せる
  • 金属の複素屈折率の波長: R・G・B に 617・521・451 nm を当てる
  • 関連: レイトレーシング

出典

  1. 拡散反射J. H. Lambert, Photometria, 1760
  2. Phong の反射モデルと補間B. T. Phong, “Illumination for computer generated pictures,” Commun. ACM, vol. 18, no. 6, pp. 311–317, 1975. doi:10.1145/360825.360839
  3. Phong の正規化E. P. Lafortune and Y. D. Willems, “Using the modified Phong reflectance model for physically based rendering,” Report CW197, Dept. of Computer Science, K.U. Leuven, 1994
  4. Blinn-PhongJ. F. Blinn, “Models of light reflection for computer synthesized pictures,” SIGGRAPH ’77, pp. 192–198, 1977. doi:10.1145/563858.563893
  5. マイクロファセットモデルR. L. Cook and K. E. Torrance, “A reflectance model for computer graphics,” ACM Trans. Graphics, vol. 1, no. 1, pp. 7–24, 1982. doi:10.1145/357290.357293
  6. GGXB. Walter, S. R. Marschner, H. Li, and K. E. Torrance, “Microfacet models for refraction through rough surfaces,” EGSR 2007, pp. 195–206. doi:10.2312/EGWR/EGSR07/195-206
  7. Schlick 近似C. Schlick, “An inexpensive BRDF model for physically-based rendering,” Computer Graphics Forum, vol. 13, no. 3, pp. 233–246, 1994. doi:10.1111/1467-8659.1330233
  8. Smith のマスキング・シャドウイング関数E. Heitz, “Understanding the masking-shadowing function in microfacet-based BRDFs,” JCGT, vol. 3, no. 2, 2014
  9. ファーネステストと多重散乱の補正C. Kulla and A. Conty, “Revisiting physically based shading at Imageworks,” SIGGRAPH 2017 course: Physically Based Shading in Theory and Practice. スライド
  10. 多重散乱の色の係数C. J. Fdez-Agüera, “A multiple-scattering microfacet model for real-time image-based lighting,” JCGT, vol. 8, no. 1, pp. 45–55, 2019. jcgt.org
  11. グーローシェーディングH. Gouraud, “Continuous shading of curved surfaces,” IEEE Trans. Computers, vol. C-20, no. 6, pp. 623–629, 1971. doi:10.1109/T-C.1971.223313
  12. 金属の光学定数P. B. Johnson and R. W. Christy, “Optical constants of the noble metals,” Phys. Rev. B, vol. 6, pp. 4370–4379, 1972. doi:10.1103/PhysRevB.6.4370(値は refractiveindex.info、CC0)
  13. 色温度の近似B. Kang, O. Moon, C. Hong, H. Lee, B. Cho, and Y. Kim, “Design of advanced color temperature control system for HDTV applications,” J. Korean Physical Society, vol. 41, no. 6, pp. 865–871, 2002

関連ツール