顯示具有 基函數 標籤的文章。 顯示所有文章
顯示具有 基函數 標籤的文章。 顯示所有文章

2023年3月17日 星期五

速覽SH for glossy transport

今天本來不想卷的,但

上次看GAMES202

有個部分沒想通,做個記錄

p = q,積分項=1
p ≠ q,積分項 = 0

第6堂:Precomputed Radiance Transfer


第7堂:SH for glossy transport
這個矩陣怎麼來的?

SH一瞥

SH是一組2維基函數

抓前面m個基函數來使用


投影到SH

因為Diffuse和視角無關,上面橘色框框只是1個2維函數F

把F投影到SH上,得到投影系數C1…Cm


Glossy BRDF一瞥

BRDF每個ωo,會對映到多個ωi

等同於每個ωo,都對映到1個2維函數Fn


在球面上取n個方向

令每個方向為ωn

每個ωn,都會對映到1個2維函數Fn


第1次投影:把BRDF投影到SH

對每個ωn,把Fn投影到SH上
得到投影系數Tn1Tnm
(水平方向)

畫成表格就是

    m ➡️  SH系數
  n
⬇️    T11T1m
⬇️    T21T2m
⬇️            :
⬇️    Tn1Tnm
 方
 向


用SH系數重新分組

令 m=1 為一組
可以得到1個2維函數S1

    m ➡️  SH系數
  n
⬇️    T11
⬇️    T21
⬇️       :
⬇️    Tn1
 方
 向

全部分組完,可以得到m個2維函數Sm

第2次投影

把每個2維函數Sm都投影到SH上
最後會得到m組t1m...tMm
(垂直方向)

m = M
    m ➡️  SH系數
 M
⬇️    t11t1m         
⬇️    t21t2m
⬇️           :            
⬇️    tM1tMm   
 SH
 系
 數

到這裡都是預計算(Offline)

還原

已知ωo的方向為 n=2
進行m次基函數的疊加可以還原成

    m ➡️  SH系數
  n
⬇️         
⬇️    T21T2m
⬇️            
⬇️    
 方
 向


再把上面投影片
藍色框框的系數cp和T21T2m做內積
就是最後的光照結果

我叫tMm,這裡叫tij

把上面的過程寫成矩陣乘法

L = ( B t ) l = B ( t l )

和下面是同個意思



2021年10月26日 星期二

投影與組合

有1個在世界座標定義的向量V(x,y,z)

在世界座標定義1個正交座標系 W ,W不包含位移,只有3軸,而且3軸彼此互相垂直

  • x-axis
  • y-axis
  • z-axis

投影

那麼

把V 從世界座標(空間)變換到W座標(空間)的方法,就是把v投影到W的3軸(基向量)

使用內積(dot)來投影 圖示

  • x_w =dot(V, x-axis)
  • y_w =dot(V, y-axis)
  • z_w =dot(V, z-axis)

x_w =dot(V, x-axis) = 
x✖️x-axis.x ➕ y✖️x-axis.y ➕ z✖️x-axis.z

如果把函數想成無窮維度的向量
那麼 傅立葉變換 就是在做內積


f(x)向量 投影到 基向量

組合

把 (x_w,y_w,z_w)從W座標(空間)變換回世界座標(空間)

就是 圖示

從W空間的原點(0,0,0)開始

  • 移動x_w長度的x-axis
  • 再移動y_w長度的y-axis
  • 再移動z_w長度的z-axis

(0,0,0) ➕ x_w✖️x-axis y_w✖️y-axis z_w✖️z-axis

等同於在做3個基向量的組合

傅立葉逆變換 就是在 重新組合所有的基函數



座標變換:上半是投影、下半是組合

座標變換 VS 傅立葉變換

x_w、y_w、z_w都是實數c

但F(w)可以是複數 a+bi


為什麼基函數不一樣

為什麼?

傅立葉變換用的基函數是 

傅立葉逆變換 用的基函數是 

 
上面用到了歐拉公式

看起來投影得到的 a- bn i

組合之後實數部才會是

Σ ( acos(2π n x) + bn sin(2π n x) )