ゲームグラフィックス特論 第9回

74
ゲームグラフィックス特論 9回 高度な陰影付け

Upload: -

Post on 25-Jun-2015

4.643 views

Category:

Education


13 download

DESCRIPTION

BRDF, 微小面モデル

TRANSCRIPT

Page 1: ゲームグラフィックス特論 第9回

ゲームグラフィックス特論 第9回 高度な陰影付け

Page 2: ゲームグラフィックス特論 第9回

物理的に正確な照明計算 放射照度 (Irradiance) と放射輝度 (Radiance)

2

Page 3: ゲームグラフィックス特論 第9回

平行光源 (directional lights) • 単一方向に進む光

•  太陽のように極端に遠方にある光源

•  シーン中のどこでも同じ方向を向いている •  光線ベクトル L(ワールド座標系,単位ベクトル)

•  光線の進行方向とは逆

3

無限の彼方にある光源

L

Page 4: ゲームグラフィックス特論 第9回

放射束 (radiant flux) • 単位時間当たりのエネルギー

•  単位 W (ワット)

4

発生

輸送

到達

エネルギー量は同じ

Page 5: ゲームグラフィックス特論 第9回

5

放射照度 (irradiance) • L と直交する平面を通過する単位面積あたりのエネルギー

•  単位 W/m2

L

Page 6: ゲームグラフィックス特論 第9回

面の照度

• 面の法線ベクトル N • N と L のなす角 θi

• N と直交する面の照度 E • L と直交する面の照度 EL

6

NL

NL

d

!i!i ��

!icosd

E = ELcos✓i

cos✓i = max(cos ✓i, 0)= max(N · L, 0)

Page 7: ゲームグラフィックス特論 第9回

7

任意の方向から入射する光の照度

N

!ik

ELk

E =

nX

k=1

Elkcos✓ik

合計になる

Page 8: ゲームグラフィックス特論 第9回

8

放射発散度 (radiant exitance) • 平面から放射される単位面積あたりのエネルギー

•  単位 W/m2

• 入射光の照度は面の放射照度で計測する

• 反射光の照度は放射発散度で計測する

• 面の色 c = 放射発散度÷放射照度

•  0~1の値を持つ

•  色によって異なる

•  CG では RGB のベクトルで表す N

Page 9: ゲームグラフィックス特論 第9回

9

放射輝度 (radiance) • ある点からある方向に放射されるエネルギー

•  単位 W/sr・m2

•  sr: ステラジアン(立体角) •  単位面積あたりに入射する放射点の単位立体角あたりのエネルギー

•  一本の光線の明るさと色の計測値

立体角

単位面積

Page 10: ゲームグラフィックス特論 第9回

10

陰影付け

• 材質特性(マテリアル)と光源情報をもとに視線ベクトル V 方向の放射輝度 Lo を計算する

NL !i

V!o

EL

Lo

Page 11: ゲームグラフィックス特論 第9回

拡散反射光の放射輝度

• 完全拡散反射面の拡散発散度 Mdiff,光源の放射照度 EL,光線ベクトル L,拡散反射色 cdiff ,放射輝度 Ldiff

11

⊗ : 要素ごとの積

Mdiff = cdiff ⌦ ELcos✓i

Ldiff =

Mdiff

=

cdiff⇡

⌦ ELcos✓i

EL

MdiffLdiff

! ELcos✓i

✓i

Page 12: ゲームグラフィックス特論 第9回

12

拡散反射光による陰影

Page 13: ゲームグラフィックス特論 第9回

13

鏡面反射光の放射輝度

• 拡散発散度 Mspec,入射光の放射照度 EL,光線ベクトル L,視線ベクトル V,鏡面反射色 cspec,放射輝度 Lspec

中間ベクトル H =L+V

|L+V|

Mspec = cspec ⌦ ELcos✓i

Lspec(V) =

m+ 8

8⇡cos

m✓hMspec

=

m+ 8

8⇡cos

m✓hcspec ⌦ ELcos✓i

m:輝き係数 (shininess)

cos✓h = max(H ·N, 0)

Page 14: ゲームグラフィックス特論 第9回

14

鏡面反射成分による陰影

Page 15: ゲームグラフィックス特論 第9回

15

放射輝度

• 拡散反射成分と鏡面反射成分の和

• 一般に使われている Blinn-Phong モデル

•  BL: “明るさ (brightness)”・・・ ad hoc に決定

Lo

(V) =

✓cdiff

⇡+

m+ 8

8⇡cos

m✓h

cspec

◆⌦ E

L

cos✓i

Lo

(V) = (cos✓i

cdiff

+ cos

m✓h

cspec

)⌦BL

Page 16: ゲームグラフィックス特論 第9回

16

陰影付け方程式の実装

•  n 個の光源

Lo

(V) =

nX

k=1

⇢✓cdiff

⇡+

m+ 8

8⇡cos

m✓hkcspec

◆⌦ E

Lkcos✓ik

Lo

(V) =

nX

k=1

{(Kdiff

+Kspec

cos

m✓hk)⌦ E

Lkcos✓ik}

Kdiff =cdiff⇡

, Kspec =m+ 8

8⇡cspec, Kdiff +Kspec 1

Page 17: ゲームグラフィックス特論 第9回

輝き係数

!

"

#

$

%

&"'( &" &!'( )! )!'( )" )"'(

m = 1m = 10m = 50m = 90

17

Page 18: ゲームグラフィックス特論 第9回

18

輝き係数によるハイライトの制御

正規化しない場合

小 大m

m = 10 m = 50 m = 90

Kshi = 10 Kshi = 50 Kshi = 90

Page 19: ゲームグラフィックス特論 第9回

BRDF 双方向反射率分布関数

19

Page 20: ゲームグラフィックス特論 第9回

BRDF • Bidirectional Reflectance Distribution Function

•  双方向反射率分布関数

• L 方向の微小立体角から入射する光の放射照度 dE に対する V 方向の微小立体角への反射光の放射輝度 dLo の割合

dLo dE

V L

N

t

φi φo

φ

θo θi

20

f(L,V) =dL

o

(V)

dE(L)

f(✓i

,�i

, ✓o

,�o

) =dL

o

(✓o

,�o

)

dE(✓i

,�i

)

Page 21: ゲームグラフィックス特論 第9回

光源が点の場合の BRDF • 光源が面積を持たない

• 複数光源による放射輝度 Lo EL

V L

N

t

φi φo

φ

θo θi

21

f(L,V) =

dLo

(V)

EL

cos✓i

Lo

(V) =

nX

k=1

f(Lk

,V)⌦ ELkcos✓ik

Page 22: ゲームグラフィックス特論 第9回

BRDF の特性 • 光の入射方向と放射方向は,それぞれ2つの自由度を持つ

•  方位角φi , φo ,仰角θi , θo

•  したがって,BRDF は4変数の関数

• 入射方向と反射方向を入れ替えても成立する •  f (L, V) = f (V, L) •  ヘルムホルツの相反性 (Helmholtz reciprocity)

• 等方性 (Isotropic) BRDF •  個々の方位角に依存しない

•  相対的な方位角φに依存する

•  3変数の関数 (θi , θo , φ)

• エネルギー保存の法則

•  放射されるエネルギーは入射エネルギーを超えない

22

Page 23: ゲームグラフィックス特論 第9回

指向性半球反射率

• Directional-Hemispherical Reflectance •  L 方向から入射した光の量に対する入射点を中心とする半球に放射さ

れる光の量の割合

•  光源が面積を持たないとき

L dB dE

→色

23

R(L) =dB

dE(L)0 R(L) 1

R(L) =M

ELcos✓i

Page 24: ゲームグラフィックス特論 第9回

指向性半球反射率と BRDF の関係

• BRDF から指向性半球反射率を求める

• BRDF が完全拡散反射面 (Lambertian)

•  R(L) は色→cdiff

• 放射輝度 Ω

dωo

θo V

N

24

R(L) =

Z

⌦f(L,V) cos ✓

o

d!o

R(L) = ⇡f(L,V)

f(L,V) =cdiff⇡

Lo

(V) =

cdiff

⇡⌦

nX

k=1

ELkcos✓ik

Page 25: ゲームグラフィックス特論 第9回

Phong のモデルの BRDF

• Phong の陰影付けモデル

•  EL = BL / π とみなして上式から BRDF の項を取り出すと

25

αr

V N

R L θi

Lo

(V) = (cos✓i

cdiff

+ cos

m↵r

cspec

)⌦BL

f(L,V) =

cdiff⇡

+

cspeccosm↵r

⇡cos✓i

Page 26: ゲームグラフィックス特論 第9回

•  cdiff •  指向性半球反射率により求まる

•  0~1 の値を持つ

•  cspec •  0~1 の値を持つ

•  指向性半球反射率 Rspec の値に上限はない

•  上式で入射角 θi → 90° とすると鏡面反射率が大きくなりすぎる

Phong のモデルの BRDF の特性

26

f(L,V) =

cdiff⇡

+

cspeccosm↵r

⇡cos✓i

Page 27: ゲームグラフィックス特論 第9回

鏡面反射項の指向性半球反射率

• 入射角 θi → 0°のとき 大値 2cspec / (m + 2) •  2 / (m + 2) で割る → cspec が指向性半球反射率の 大値に等しくなる

• エネルギー保存の法則 •  cdiff + cspec ≤ 1

27

f(L,V) =

cdiff⇡

+

m+ 2

2⇡cspeccos

m↵r

Page 28: ゲームグラフィックス特論 第9回

中間ベクトルを用いた場合

• Sloan と Hoffman •  Blinn-Phong BRDF (1977) を正規化 (2008)

• これは微小面 BRDF(後述)に似ている •  cspec はフレネル反射率(後述) RF(θi) に置き換える

•  この cosmθh の項は正規分布関数に相当する

28

f(L,V) =

cdiff⇡

+

m+ 8

8⇡cspeccos

m✓h

θi

V

N H L

θh

f(L,V) =

cdiff⇡

+

m+ 8

8⇡RF (✓i)cos

m✓h

Page 29: ゲームグラフィックス特論 第9回

表面下散乱を考慮する場合 • BRDF は表面下散乱を考慮していない • 鏡面反射光も拡散反射光

も入射点から放射されると考える(局所表面下散乱)

• 表面下散乱がある場合 • 鏡面反射光は入射点で反

射するが拡散反射光の放射位置は入射点と異なる

• 入射位置から放射位置に輸送される光が存在する

29

Page 30: ゲームグラフィックス特論 第9回

表面下散乱がある場合の反射光

30

Page 31: ゲームグラフィックス特論 第9回

BSSRDF • Bidirectional Surface Scattering Distribution Function

•  双方向表面散乱分布関数

• BRDF を一般化したもの

•  関数の入力として入射位置と放射位置を加える •  f(L, V) → f(xi, xo, L, V)

•  表面下散乱を含むために下記の光を考慮する

•  入射方向に沿った光の割合

•  表面上のある点から別の点へ移動する光の割合

•  放射方向に沿った光の割合

• カメラが十分に遠い場合

•  入射位置と放射位置が一致すると近似できる

31

Page 32: ゲームグラフィックス特論 第9回

さらに一般化

• 材質は物体表面全体で均一ではない •  単一の物質でも粗さや汚れなどで変化する

•  SVBRDF (Spatially Varying BRDF), または SBRDF (Spatial BRDF)

• 光の偏光 •  偏光面によって反射率や透過率が異なる

• 光の輸送

•  two BRDF •  two BTDF (Bidirectional Transmission Distribution Function)

32

Page 33: ゲームグラフィックス特論 第9回

課題

• 表面下散乱を再現する場合について,スケールが大きくなる,あるいはカメラが遠くなるに従って,表面下散乱の影響が小さくなる理由を考えなさい.

33

Page 34: ゲームグラフィックス特論 第9回

フレネル反射 表面反射と本体反射の配分

34

Page 35: ゲームグラフィックス特論 第9回

表面反射と本体反射

• 表面反射 (Surface reflection) •  物体の内部に進入せずに表面で発生する反射

•  鏡面反射

• 本体反射 (Body reflection) •  物体内部に進入した光が散乱して外部に再放出されることによって発

生する反射

•  拡散反射

• 反射の仕方による分類 → 反射する場所による分類

35

Page 36: ゲームグラフィックス特論 第9回

フレネル反射 (Fresnel Reflectance)

Ri

L

T

-N

N

θi θi

θt

n1

n2

L

Lt

Li

スネルの法則

正反射方向

36

Lt = (1�RF (✓i))sin2 ✓isin2 ✓t

L

n1 sin ✓i = n2 sin ✓t

Lt = (1�RF (✓i))n22

n21

L

Ri = 2(N · L)N� L

Li = RF (✓i)L

Page 37: ゲームグラフィックス特論 第9回

フレネルの式

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

0 10 20 30 40 50 60 70 80 90

1.1 1.3 1.5 1.7 1.9

屈折率の比 n

入射角

反射率 RF(θi)

37

n: 屈折率の比

c = cos ✓i

g =

pn2

+ c2 + 1

RF (✓i) =1

2

(g � c)2

(g + c)2

✓1 +

(c(g + c)� 1)

2

(c(g � c)� 1)

2

Page 38: ゲームグラフィックス特論 第9回

Schlick の近似

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

0 10 20 30 40 50 60 70 80 90

Fresnel Schlick

屈折率の比 n = 1.5

入射角

反射率 RF(θi)

38

RF (✓i) ⇡ RF (0�) + (1�RF (0

�))(1� cos✓i)5

n1 ! 1, n2 ! n ) RF (0�) =

✓n� 1

n+ 1

◆2

Page 39: ゲームグラフィックス特論 第9回

内部反射 (Internal Reflection) • 光が透明な物体の内部から外部に出る時

Ri

L

T

-n

N

θi θi

θt

n1

n2

入射角 θi が臨界角 θc を超えると 反射率 RF(θi ) = 1 となる

39

n1 > n2

sin ✓t > sin ✓i

sin ✓c =n2

n1=

1�p

RF (0�)

1 +p

RF (0�)

Page 40: ゲームグラフィックス特論 第9回

内部反射と外部反射の反射率

内部反射

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

0 10 20 30 40 50 60 70 80 90

1/1.1

1/1.3

1/1.5

1/1.7

1/1.9

外部反射

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

0 10 20 30 40 50 60 70 80 90

1.1 1.3 1.5 1.7 1.9

屈折率の比 n

入射角

RF(θi)

屈折率 の比 n

入射角

RF(θi)

40

Page 41: ゲームグラフィックス特論 第9回

拡散 BRDF 項 ρ:散乱アルベド (albedo) ,射光強度に対する反射光強度の比

拡散反射色はフレネルの法則と散乱アルベドで決まる

Shirley の式

κnorm はエネルギー保存を保証することにより決まる定数

41

fdiff (L,V) =cdiff⇡

cdiff = (1� cspec)⇢

fdiff (L,V) = (1�RF (✓i))⇢

拡散反射色は入射光から鏡面反射色を引いたものに散乱アルベドをかけたもの

fdiff

(L,V) =

21

20⇡(1�RF

(0

�))

(1� (1� cos✓i

)

5)(1� (1� cos✓

o

)

5)⇢

fdiff

(L,V) = norm

(1�Rspec

(L))(1�Rspec

(V))⇢

Ashikhmin と Shirley の式

Page 42: ゲームグラフィックス特論 第9回

微小面モデル 表面の粗さの影響

42

Page 43: ゲームグラフィックス特論 第9回

微小形状 (Micro geometry)

43

Page 44: ゲームグラフィックス特論 第9回

微小形状による効果

44

Page 45: ゲームグラフィックス特論 第9回

微小形状の高さと法線ベクトル

45

Page 46: ゲームグラフィックス特論 第9回

再帰性反射 (Retro-reflection) • 光の入射方向が視線と一致するときに も明るくなる現象

• 滑らかな表面では入射光の正反射方向が も明るくなる

46

Page 47: ゲームグラフィックス特論 第9回

微小面理論 (Microfacet Theory) •  Torrance and Sparrow [1967]

•  “Theory for Off-Specular Reflection From Roughened Surfaces”

• Blinn [1977] •  “Models of Light Reflection for Computer Synthesized Pictures”

• Cook and Torrance [1981] •  “A Reflectance Model for Computer Graphics”

47

Page 48: ゲームグラフィックス特論 第9回

表面の粗さの微小面によるモデル化 • 表面の微小形状を微小面の集合として扱う

•  微小面は平坦なフレネル反射する鏡であるとする

•  表面特性は微小面の法線の分布で決まる

•  分布には正規分布関数 (normal distribution function, NDF) を用いる

•  これを p(x) とする

p(x)

x

48

Page 49: ゲームグラフィックス特論 第9回

微小面の法線ベクトル L L L L L

H H H H HV V V V V

49

Page 50: ゲームグラフィックス特論 第9回

微小面の法線が特定方向に向く確率

nµN

• 法線ベクトルが nµ 方向の立体角 dω の範囲を向いている確率– p(nµ) dω

p(nµ)

p(nµ) dω

50

Page 51: ゲームグラフィックス特論 第9回

中間ベクトルにもとづくフレネル反射率

θh

αhαh

NH

V

L• αh

• L(またはV)と H のなす角

• θh • N と H のなす角

• フレネル反射率 • Schlickの近似

51

RF (↵h) ⇡ RF (0�) + (1�RF (0

�))(1� cos↵h)

5

Page 52: ゲームグラフィックス特論 第9回

微小面理論にもとづく BRDF

G(L, V):幾何減衰係数 (Geometrical Attenuation Factor) マスキング/シャドウィングの影響を表す関数

p(θh) は通常対称(等方性をもつ)

52

f(L,V) =

p(H)G(L,V)RF

(↵h

)

4kp

cos✓i

cos✓o

kp =

Z

⌦p(H) cos ✓hd!h

f(L,V) =

p(✓h

)G(L,V)RF

(↵h

)

4kp

cos✓i

cos✓o

Page 53: ゲームグラフィックス特論 第9回

幾何減衰係数 G(L,V)

マスキング シャドウイング

53

G(L,V) = min

✓1,

2(N ·H)(N · L)H · L ,

2(N ·H)(N ·V)

H · L

Page 54: ゲームグラフィックス特論 第9回

Torrance and Sparrow の BRDF

• 幾何減衰係数

• 可視度項

54

GTS

(L,V) = min

✓1,

cos✓h

cos✓o

cos↵h

,cos✓

h

cos✓i

cos↵h

GTS

(L,V)

cos✓i

cos✓o

⇡ 2

1 + L ·V =

4

H0 ·H0 =1

cos

2 ↵h

Page 55: ゲームグラフィックス特論 第9回

Smith の幾何減衰係数

• 表面の粗さに依存した2つの幾何減衰係数 •  Sancer よって導かれ Stam が diffraction BRDF で用いたもの

•  Smith によって導かれ HTSG BRDF モデルで用いられたもの

• 両方ともとても複雑で計算コストが高い •  Schlick によって導かれた Smith のシャドウィング関数

55

GSmith

(L,V) ⇡✓

cos✓i

cos✓i

(1� k) + k

◆✓cos✓

o

cos✓o

(1� k) + k

k =

r2m2

Page 56: ゲームグラフィックス特論 第9回

Phong BRDF の微小面 BRDF

• 微小面理論にもとづく BRDF

• 正規分布関数の代わりに cos の指数関数を用いた BRDF

正規分布関数 cos のべき乗関数

56

f(L,V) =

p(✓h

)G(L,V)RF

(↵h

)

4kp

cos✓i

cos✓o

p(✓h)

4kp

m+ 8

8⇡cos

m✓h

f(L,V) =

✓G(L,V)

cos✓i

cos✓o

◆✓m+ 8

8⇡cos

m✓h

◆R

F

(↵h

)

Page 57: ゲームグラフィックス特論 第9回

微小面 BRDF における幾何減衰係数

• 正規分布関数の代わりに cos のべき乗関数を用いた BRDF

• Blinn-Phong BRDF の鏡面反射項

• この比較から Blinn-Phong BRDF の(隠れた)幾何減衰係数 GBF は

57

f(L,V) =

✓G(L,V)

cos✓i

cos✓o

◆✓m+ 8

8⇡cos

m✓h

◆R

F

(↵h

)

fspec(L,V) =

✓m+ 8

8⇡cos

m✓h

◆RF (↵h)

GBF

(L,V) = cos✓i

cos✓o

Page 58: ゲームグラフィックス特論 第9回

可視度項 (visibility term) • 正規分布関数の代わりに cos の指数関数を用いた BRDF

• Blinn-Phong BRDF の可視度項: •  →浅い角度から見たときに暗すぎる

• Ward BRDF の可視度項:

•  →浅い角度から見たときに明るすぎる

• Neumann et al. :

• Ashikhmin and Premože :

可視度項

58

f(L,V) =

✓G(L,V)

cos✓i

cos✓o

◆✓m+ 8

8⇡cos

m✓h

◆R

F

(↵h

)

G(L,V) = cos✓i

cos✓o

G(L,V) = 11/(cos✓

i

cos✓o

)

1/max(cos✓i

, cos✓o

)

1

1/ cos↵h

max(cos✓i

, cos✓o

)

1/(cos✓i

+ cos✓o

� cos✓i

cos✓o

)

Page 59: ゲームグラフィックス特論 第9回

正反射ベクトルか中間ベクトルか

正反射ベクトル

αrθiθi

N

R

V

L

中間ベクトル

θh

αhαh

NH

V

L

L と V の中間ベクトル H と法線ベクトル N とのなす角 θh

L の反射ベクトル R と視線ベクトル V とのなす角 αr

59

Page 60: ゲームグラフィックス特論 第9回

レンダリング結果の違い

正反射ベクトルによるハイライト 中間ベクトルによるハイライト

60

篠原 靖知:“粗い物体の表面形状計測に基づく陰影付けモデルの決定および樹脂成型物の質感設計への応用,” 和歌山大学システム工学部卒業論文 (2001)

Page 61: ゲームグラフィックス特論 第9回

現実のシーン

61

Page 62: ゲームグラフィックス特論 第9回

Oren-Nayer BRDF • 拡散反射面 (Lambertian facets) に微小面理論を適用

62

f(L,V) =

cdiff

⇡(A+Bcos� sin(min(✓

i

, ✓o

)) tan(max(✓i

, ✓o

)))

A = 1� 0.5�2

�2+ 0.33

B = 0.45�2

�2+ 0.09

Page 63: ゲームグラフィックス特論 第9回

粗さ σ

σ = 0.0 σ = 3.0

63

Page 64: ゲームグラフィックス特論 第9回

実装

V L

N

tφi

φo

φ

θo θi

Lproj

Vproj

64

Vproj

= V �N(N ·V)

Lproj

= L�N(N ·V)

cos� =

Vproj

|Vproj

| ·Lproj

|Lproj

|

f(L,V) =

cdiff

⇡(A+Bcos� sin(min(✓

i

, ✓o

)) tan(max(✓i

, ✓o

)))

sin ✓i

=|L

proj

||L| , sin ✓

o

=|V

proj

||V| , tan ✓

i

=|L

proj

|N · L , tan ✓

o

=|V

proj

|N ·V

f(L,V) =

cdiff

⇡(A+Bcos�min(sin ✓

i

, sin ✓o

)max(tan ✓i

, tan ✓o

))

Page 65: ゲームグラフィックス特論 第9回

異方性をもつ面

• 面の粗さが方向によって異なる

•  反射光の広がりが方向によって異なる

65

(自宅の鍋) (嫁の頭)

Page 66: ゲームグラフィックス特論 第9回

円柱に対する鏡面反射

66

Page 67: ゲームグラフィックス特論 第9回

異方性 BRDF •  The Kajiya-Kay BRDF (The Banks BRDF)

θ´i:l と軸 t に直交する面がなす角

α´r:v と,円柱による反射光ベクトル r´ がなす角

67

ndiff

l

iθ't

nspecl

t

r'

vrα'

鏡面反射光 拡散反射光

t:円柱の軸ベクトル cos✓0i =

p1� (l · t)2

cos↵0r = max

⇣p1� (l · t)2

p1� (v · t)2 � (l · t)(v · t), 0

⌘これを輝き係数でベキ乗する

Page 68: ゲームグラフィックス特論 第9回

実測にもとづく BRDF • 計測方法

•  ゴニオメーター (Goniometer) •  imaging bidirectional reflectmeter •  イメージベースド手法

• データベース •  Cornell University Program of Computer Graphics Measurement

Data •  Colombia-Utrecht Reflectance and Texture Database •  MIT Anisotropic BRDF Measurement Data

68

Page 69: ゲームグラフィックス特論 第9回

計測 BRDF の表現

• BRDF の測定結果 • 巨大で密に標本化された4次元データ

•  SVBRDF では6次元

• ノイズを含んでいる •  そのままではレンダリングに使えない

• 計測値と一致する解析的な BRDF モデルを選択しパラメータを算出する • 非常にコンパクトな表現になる • レンダリングも速い • BRDF モデルの選択は単純だとは限らない

• 複数の BRDF の項の重み付け和で表現する •  Lafortune BRDF

69

Page 70: ゲームグラフィックス特論 第9回

BRDFのテーブル化

• BRDFは4変数の関数

• 多数の仰角と方位角に対するデータを配列に格納し,必要なBRDF値を補間により求める •  実験的に取得されたBRDF値にも応用できる

•  実験データに含まれる雑音やデータの欠落の取り扱いに注意が必要である

•  等方性の表面においてBRDFは3変数で表せる

•  3次元テクスチャマップが応用できる

•  それでも非常にメモリを食う

• BRDFデータのコンパクト化 •  以下のことを回避できる

•  精密な理論モデルの評価(計算)コスト

•  記憶容量の要求

•  取得したデータの雑音の影響

70

Page 71: ゲームグラフィックス特論 第9回

因数分解による方法

• BRDFは4変数の関数 •  入射角の仰角と方位角

•  反射角の仰角と方位角

• 因数分解による近似 •  4変数関数を二つの2変数関数の積の和で近似する

71

f(✓i

,�i

, ✓o

,�o

) ⇡nX

j=1

pj

(✓i

,�i

)qj

(✓o

,�o

)

Page 72: ゲームグラフィックス特論 第9回

テクスチャの応用

• 関数 p, q をテクスチャで表す •  n を大きくしなければならないかもしれない

• BRDFを可能な限り少ない項で表現する

•  多くの材質において大体納得できる結果を得るのに,高々一組 (n = 1) の2枚のテクスチャで充分 •  McCool, “Homomorphic Factorization of BRDFs for High-Performance

Rendering,” SIGGRAPH ’01 Proceedings, 2001. •  Wynn, “Real-Time BRDF-based Lighting using Cube-Maps,” NVIDIA

White Paper, 2001.

• 問題点 •  光源ごとに少なくとも2枚のテクスチャアクセスが必要

•  光源として点光源と平行光線しか扱えない

72

q(ωo) p(ωi)

Page 73: ゲームグラフィックス特論 第9回

宿題

• 次のプログラムは Phong モデルによる陰影を付けた球を回転するアニメーションを表示します. •  https://github.com/tokoik/ggsample09

• これを Kajiya-Kay モデルの陰影に変更してください.

• 円柱の軸は接線ベクトル t 方向を向いているとします.

•  simple.frag をメールに添付してください. •  送り先 [email protected]

Kajiya-Kay モデルによる異方性反射の陰影付けを実装してください.

73

Page 74: ゲームグラフィックス特論 第9回

宿題プログラムの生成画像

Phong モデルの陰影 Kajiya-Kay モデルの陰影

74