顯示具有 book notes 標籤的文章。 顯示所有文章
顯示具有 book notes 標籤的文章。 顯示所有文章

2021年12月6日 星期一

Oblique Matrix 推導的疑惑

為什麼Eric先生 (Thank U
要用(sgn(C'.x),sgn(C'.y),1,1)
而不是F * (sgn(C'.x),sgn(C'.y),1,1)呢?

--------------

在projectin space
right平面和top平面會相交在1條線b
在b上的點,只有(F,F,F,F)是4個值相等的
而(F,F,F,F)/w之後
會得到 (1,1,1,1)

--------------

P是projection matrix (OpenGL Right Hand Fov version 
P的逆矩陣是 P^-1
P^-1 (F,F,F,F)=( Ratio F tan(θ), F tan(θ),-F,1 )=QF
P^-1 (1,1,1,1)=( Ratio tan(θ), tan(θ), -1,1/F )=Q

Matrix (Thank U

calculate

在view space , w =1
Q = Q/Q.w =QF
Q和QF其實是同1個點

用Q和QF算出來的 a 也是同1個東西
(因為上下都有1/F,最後就互相消掉了

--------------

3D平面 vs 4D平面
平面在3D的定義是
(X-P)。N=0
X、P、N都是3維的向量
。是內積;P是位在平面上的1點

X。N-P。N=0
X。N+d=0
展開來就是
(x,y,z,1)。(Nx,Ny,Nz,d)=0

Eric文章裡C指的是(Nx,Ny,Nz,d)
把平面當成了1個4D向量
view space C變換到Projection space的結果是C'

fov=2θ(half fov=θ)
Right裁切平面的情況為(以下為右手座標)
C'  = (-1,0,0,1)
C  = (-1/(R*tan(θ)),0,-1,0)

在view space是
(x,y,z,1)。(-1/(R*tan(θ)),0,-1,0) =0
-x/(R*tan(θ))+z=0

在projection space(4D)是
(x',y',z',w)。(-1,0,0,1) =0
-x'+w =0

2021年11月1日 星期一

對函數進行旋轉

 


用座標變換 對函數進行旋轉




轉45度也可以 只是GeoGebra不能畫
要用別的軟體畫

2021年10月28日 星期四

Diffuse BRDF推導過程的疑惑

➡️ 目錄

CG 魚書ch 13.8裡Perfect Diffuse BRDF的 推導過程

reflectance即albedo(texture color)
(13.9)就是render equation裡的半球積分 只考慮RGB其中1個component (且值為1) 有Diffuse BRDF為 F= 1 / π

有個地方讓我困惑

第1個黃色

告訴我們
往不同方向出去的Lo有個cos(θo)修正

第2個黃色

卻告訴我們進入dA 的E 會平均分到半球的各個方向 (各方向出去的Lo為定值)

實際來算算看

假設所有Li都相等

當F = 1 / π

跑1次 式13.11
E = ∫ cos(θi) Li
會得到 E = Li * π B
跑1次 式13.9
Lo = ∫ F cos(θi) Li
會得到 Lo = Li * F * π
使用F = 1 / π
會得到
Lo = Li 式C
(代表E在任1個方向o會產生Lo)
那所有方向o 就是跑1次 式 13.12
E = ∫ cos(θo) Lo
E = Lo * π 式A

因為式C 所以
式B = 式A
E = E
能量守恆
如果跑式13.12 時忽略cos(θo)項
E = ∫ Lo
Eo = Lo * 2π
就沒有能量守恆了

當F = cos(θo) (1 / π)

跑1次 式13.9
Lo = ∫ F cos(θi) Lii
會得到
Lo = F Li cos(θi) i
Lo = cos(θo) (1 / π) Li π
Lo = cos(θo) Li 式D

再跑1次 式13.12 (不使用cos(θo) )
E = ∫ Lo
會得到
Eo = ∫ Lo dωo
Eo = ∫ cos(θo) Li dωo
Eo = Li cos(θo) dωo
Eo = Li π

實際來畫畫看

光用猜的也知道
F = cos(θo) * (1 / π) 的結果會很奇怪
現實生活中沒看過球的輪廓是黑黑的一圈

F = 1 / (π)

F = cos(θo) * 1 / (π)

到底那出了問題?

看起來像是

迷團(1)

面光源進行直接光照的計算

Lo要乘上cos(θo)


迷團(2)

從diffuse物體直接到達眼睛的Lo不用
為什麼有(1)和(2)的區別
迷團(3)

如果直目(直接目視)面光源

面光源對眼睛來說是Lo 還是 Lo * cos(θo) ?

解開迷團?

我感覺迷團(2)的答案和透視有關
透視不只是近大遠小
還包括dA的朝向