2007-02-22 現在のMaterial+BSDFシステムメモ nytr ShadeTreeパーシング実装に向けて現状整理。設計したのが去年の6月らしく、あんまり覚えてない。大きくかかわってくるのが2つのクラス Material (src/renderer/Material.h) 主なメンバ関数 evalBSDFxCOSxPI を計算する。 sampleBSDFxCOSxPI 入射方向の重点的サンプリングを行い、の値とを返す。 bouncePhoton フォトンマップ用フォトン反射処理 反射方向: 反射後フォトンにかける係数: スペキュラ反射かどうかのフラグ rhd 放射照度(Irradiance)に対してどれだけの放射輝度(radiance)を出すか。但しIrradianceは半球面全部なのに対し放射輝度はper solid angle: あれ?なんか未実装。後で近似計算を実装する。 shade NPRパス用の関数 カメラレイ(微分情報アリ)に対してどういう放射輝度を返すか。 BSDF (src/renderer/BSDF.h) Materialクラスのメンバ関数の中で内部的に使われる。Physically Correctな挙動。 主なメンバ関数 FxCOSxPI を計算する。 sampleF 入射方向の重点的サンプリングを行い、の値とを返す。 bouncePhoton フォトンマップ用フォトン反射処理 反射方向: 反射後フォトンにかける係数: