cost term data term レンダリング部 ハーフベクトルh(i,j)において パラメータXでレンダリングした結果 (s,t)はブロック内の画素位置 観測データ生成部 誤差を最小化したいハーフベクトルh(i,j)においての観測データ(目標データ) 自己相似性を用いたMatchingで各ブロックの画素をTransportして生成する (s,t)はブロック内の画素位置 問題:SVBRDFのパラメータXを求める パラメータXを求めるマスタータイルのブロックサイズを h x wとしたとき 1.画素毎のSurface Normal (x・y方向):h x w x 2 2.画素毎のDiffuse Albedo (カラー):h x w x 3 3.画素毎のSpecular Luminance:h x w x 1 4.画素毎のSpecular Anisotropy:h x w x 3 5.全体のSpecular Color:2 6.全体のシェーディングの程度:1 7.全体のSpecular Pointiness(Roughness):1 求めるパラメータXについての詳細 合計パラメータ数:h x w x 9 + 4 例えばブロックサイズが192 x 192だと 192 x 192 x 9 + 4 = 331780個のパラメータを最適化する問題となる ハーフベクトル(i,j)・画素位置(s,t)毎にHuber Loss 1 2 3 4 5 6 7 h x w x 9 4
= [xp,yp,1]T p = (xp,yp) 1 0 xp h 最適化するパラメータX レンダリング画素のハーフベクトルh(i,j)によって変化する変数 ※E=[0 0 1]T この問題設定(対象が平面かつカメラと正対、更に光源とカメラが同軸と近似可能)では、 観測ベクトルおよび光源ベクトルとハーフベクトルは等しいため、このような定式化が可能 つまり、ハーフベクトルとパラメータが決まればレンダリング可能(光源・観測を分けて考える必要がないため) Camera Object ケラレ項 光量逆二乗減衰 入射角依存 (Cos項) BradyのBRDFモデルを異方性化 j i s t
cost term 問題:SVBRDFのパラメータXを求める 拡散反射の値は小さくなるように 鏡面反射輝度は小さくなるように かつ、外れ値を避けるように 法線は正対に近くなるように 鏡面反射異方性は小さくなるように かつ、外れ値を避けるように 広い鏡面反射ローブのBRDFに収束しやすくなる パラメータXを求めるマスタータイルのブロックサイズを h x wとしたとき 1.画素毎のSurface Normal (x・y方向):h x w x 2 2.画素毎のDiffuse Albedo (カラー):h x w x 3 3.画素毎のSpecular Luminance:h x w x 1 4.画素毎のSpecular Anisotropy:h x w x 3 5.全体のSpecular Color:2 6.全体のシェーディングの程度:1 7.全体のSpecular Pointiness(Roughness):1 求めるパラメータXについての詳細 合計パラメータ数:h x w x 9 + 4 例えばブロックサイズが192 x 192だと 192 x 192 x 9 + 4 = 331780個のパラメータを最適化する問題となる 1 2 3 4 5 6 7 h x w x 9 4 prior term Rp
cost term 問題:SVBRDFのパラメータXを求める パラメータXを求めるマスタータイルのブロックサイズを h x wとしたとき 1.画素毎のSurface Normal (x・y方向):h x w x 2 2.画素毎のDiffuse Albedo (カラー):h x w x 3 3.画素毎のSpecular Luminance:h x w x 1 4.画素毎のSpecular Anisotropy:h x w x 3 5.全体のSpecular Color:2 6.全体のシェーディングの程度:1 7.全体のSpecular Pointiness(Roughness):1 求めるパラメータXについての詳細 合計パラメータ数:h x w x 9 + 4 例えばブロックサイズが192 x 192だと 192 x 192 x 9 + 4 = 331780個のパラメータを最適化する問題となる 1 2 3 4 5 6 7 h x w x 9 4 各画素毎パラメータのX方向勾配 各画素毎パラメータのY方向勾配 パラメータの空間勾配を最小化する(滑らかにする) Huber Loss smooth term Rs
cost term cost term Ri 問題:SVBRDFのパラメータXを求める 法線のX方向に対するY方向勾配 法線のY方向に対するX方向勾配 法線のCurl量 法線のCurl量を最小化する パラメータXを求めるマスタータイルのブロックサイズを h x wとしたとき 1.画素毎のSurface Normal (x・y方向):h x w x 2 2.画素毎のDiffuse Albedo (カラー):h x w x 3 3.画素毎のSpecular Luminance:h x w x 1 4.画素毎のSpecular Anisotropy:h x w x 3 5.全体のSpecular Color:2 6.全体のシェーディングの程度:1 7.全体のSpecular Pointiness(Roughness):1 求めるパラメータXについての詳細 合計パラメータ数:h x w x 9 + 4 例えばブロックサイズが192 x 192だと 192 x 192 x 9 + 4 = 331780個のパラメータを最適化する問題となる 1 2 3 4 5 6 7 h x w x 9 4 normal curl term Ri
w x 3 x N h x w x 9 data term prior smooth normal curl h x w h x w x 2 x 9 h x w個の画素での 観測データとレンダリング結果の差 カラーかつハーフベクトルN個分 h x w個の画素での 画素毎パラメータ9個の Priorとの差 h x w個の画素での 画素毎パラメータ9個の X・Y方向の勾配 h x w個の画素での 法線のCurl 式の個数 Y = … … … … … … h x w x 3 x N h x w x 9 h x w x 2 x 9 h x w パラメータXに対する結果として 巨大な連立した非線形の 関数が定義される → レーベンバーグ・マルカート法で解く h x w x (3N + 28)
パラメータ行列X (h x w x 9 + 4) を入力したら最小化したい行列Y (h x w x (3N + 28)) を返す無名関数(実際はf(X,Y)を定義する) パラメータXの初期値(h x w x 9 + 4) 非線形最小二乗Solver ※ 実際はレーベンバーグ・マルカート法で動作させるにはオプションが必要 (あと本当は各関数での偏微分結果(ヤコビアン)を出力する関数も必要)