環境光の強さ

Computer Graphics
第8回
レンダリング(2)
シェーディング
講義内容
 レンダリング(4章 p.95)

隠面消去の手法


レイトレーシング
シェーディング
シェーディング基礎
シェーディングモデル





2006/06/12
環境,拡散,鏡面反射
完全鏡面反射,透過,屈折
散乱,減衰
Computer Graphics
2
レイトレーシング法(光線追跡法)

レイ(光線)という1次元線分上での交点の前後判定による隠面消去法

cf. スキャンライン法:2次元走査平面上でのセグメントの可視判定による隠面消去
※物体の反射・透過・屈折特性も考慮可能
2006/06/12
Computer Graphics
3
レイトレーシング法によるレンダリング画像例
2006/06/12
Computer Graphics
4
レイと物体の交差判定
 レイと球の交差判定
レイ上の点P(x, y, z), 視点PE,レイの単位法線ベクトル E,
球の中心をS(xs, ys, zs)
両辺2乗
視点を通るレイの方程式
P  S P  S  r 2  0
ˆtP
PE
E
球の方程式
tに関する二次方程式
PS  r


レイと球が交点を持つか
どうかの判別式!
at 2  bt  c  0

ただし、

2
ˆ 1
a E
ˆ  P  S
bE
E
c  PE  S  r 2
2

2006/06/12
Computer Graphics
5
交差判定条件
 判別式D>0 →

t1, t2 > 0の場合


可視点の候補は,min(t1, t2)
t1, t2 < 0の場合


2点で交差
可視点候補なし(2つとも視点の背後に存在)
t1>0, t2<0 又は t1<0, t2>0の場合

可視点候補は,max(t1, t2)
 D=0 →
レイと球は接する
 D<0 →
交差なし
2006/06/12
Computer Graphics
6
レイとポリゴンとの交差判定
 ポリゴンを含む平面とレイとの交点を求める
 交点がポリゴン内部にあるかどうかを判定
視点を通るレイの方程式
平面
ˆtP
PE
E
Piを含む平面の方程式
P  Pi  N  0

2式を連立し,Pを消去,tを求める

t 
PE  Pi   N
ˆ N
E
t>0: 視点の前方で交差
t<0: 視点後方に平面
t=0: 視点が平面上に存在
E・N=0: レイと平面が平行

2006/06/12
Computer Graphics
7
交点がポリゴン内部にあるかどうかの判定(1)
 点を端点とする半直線とポリゴンの辺との交点の個数を
カウントして判定
奇数:内部
偶数:外部
2006/06/12
Computer Graphics
8
交点がポリゴン内部にあるかどうかの判定(2)
 点とポリゴンの各頂点を結ぶベクトルの外積の方向をチ
ェックする方法










N i  Pi1  P  Pi2  P

 

i=1, 2, 3, サイクリック

2006/06/12
Computer Graphics
9
交点がポリゴン内部にあるかどうかの判定(3)
 点とポリゴンの各頂点を結ぶベクトル間の角度を加算す
る方法
角度の総和
2π:内部
0:外部
2006/06/12
Computer Graphics
10
レイトレーシングの高速化
 バウンディングボリュームの利用
 空間分割法
 並列計算による方法
2006/06/12
Computer Graphics
11
レイトレーシング法の特徴
 形状モデルとの交差判定が直線




交点計算と可視点の決定が他の隠面消去法に比べ単純
処理に必要となるメモリも小
ソフトウェアでの実装も容易
ポリゴンだけでなく、球や円錐,パラメトリック曲面など
関数表現された物体も適用可能
 幾何光学に基づく手法

反射,透過,屈折など複雑な光学現象のシミュレーション,表
現が可能

鏡、ガラス、雲、波など
 画素毎の処理


2006/06/12
多くの計算時間(レイの数に依存)
高速化の工夫が必要
Computer Graphics
12
シェーディング(p.117〜)
 写実的表現のための技法

シェーディング


シャドウイング(影付け)

2006/06/12
物体表面の濃淡を光の当たり具体に基づき計算して表示
他の物体や面によって光が遮られた領域(影)を計算して表示
Computer Graphics
13
シェーディングを理解するために・・用語説明
 光の量(測光量),明るさなどを規定するための基本用語

光束




単位時間にある面を通過する放射エネルギー:放射量
放射束を眼の感度のフィルタ(視感度)に通して見た量:光束
単位はルーメン(lm)
光度



点光源のある方向への光度:光源位置を頂点とする単位立体角内に放射
される光束
単位はカンデラ(cd)
光源の空間に対する光度分布を表現→配光特性
立体角とは・・・
・ある面積Aを一点から見たときの全周に対する広がり度合い
・半径1の単位給への投影面積Ω
・立体角の単位[sr](ステラジアン)
・単位球の表面積4π = 立体角の最大値
2006/06/12
Computer Graphics
14
シェーディングを理解するために・・用語説明
 光の量(測光量),明るさなどを規定するための基本用語

照度


単位面積あたりに入射する光束.単位はルクス(lx)
点光源の場合,点光源から距離rの球面上のあらゆる点での照度
E


 4I
I


A 4r 2 r 2
光度に比例,距離の2乗に反比例
→逆2乗の法則
傾いた面上の照度
E 
cos
 E n cos
A
光の入射角の余弦に比例
→入射角余弦の法則

2006/06/12
Computer Graphics
15
シェーディングを理解するために・・用語説明
 光の量(測光量),明るさなどを規定するための基本用語

輝度


光源のθ方向への見かけの面積当たりの光度
(=眼で見たときに感じられる明るさ)
単位は[cd/m2](カンデラ毎平方メートル)
L 

dI
dI

dS dS cos
ランバートの余弦則
どの方向から見ても輝度の等しい表面を完全拡散面といい,
 以下の関係式が成立

dI  dIn cos
dIn: 法線方向の光度
2006/06/12
dIθ : θ方向の光度
Computer Graphics
16
シェーディング・モデル
 シェーディングモデル=照明モデル=ライティングモデル


光源の種類や特性,物体の反射特性を考慮し,どのような物理
モデルを用いて光源によって照らされた物体を表示するか?を
決定する
局所照明モデル


大域照明モデル

2006/06/12
直接光に関して物理的なモデルに基づいて照明計算を行う
直接光だけでなく,間接光までを含めて物理的なモデルに基づき
照明計算を行う
Computer Graphics
17
基本的なシェーディングモデル
 シェーディングモデルを構成する要素



2006/06/12
物体を照射する光源の種類と特性
光と物体の相互作用(直接光,反射光)
物体の性質:反射,透過,屈折特性
Computer Graphics
18
光の種類と性質
 物体を照射する光

直接光



平行光源:太陽光
点光源:電灯,スポットライト
大きさを持つ光源(線光源,面光源):蛍光灯、間接照明
被照面の反射光:拡散反射成分+鏡面反射成分

間接光

環境光
環境光反射成分
基本的なシェーディングモデル
→ この3つの反射成分を加え合わせることにより,面の明るさを計算するモデル
2006/06/12
Computer Graphics
19
シェーディングの例
各画素の輝度=環境光反射成分+拡散反射成分+鏡面反射成分
2006/06/12
Computer Graphics
20
(1)環境光
 環境光



壁などで反射を繰り返して空間中を一様に照らす,間接光
を近似値したもの
陰や影の部分にもある程度の明るさを与える
間接光を大まかに近似した光

ラジオシティ法:精密な間接光(相互反射)
環境光に対する物体面の反射光の強さ
I  ka I a
ka: 環境光に対する反射率, Ia : 環境光の強さ

2006/06/12
Computer Graphics
21
(2)拡散反射
 どの方向から見ても物体面の輝度が一定となる反射

視点位置による物体表面上の輝度変化はなし
 入射光が物質内の浅い部分で多重散乱後,表面から放射
された光
 拡散反射のみの面=完全拡散面(鏡面反射なし)
 物体面の輝度は以下のものに依存



2006/06/12
光源の位置・方向
面の向き
面の反射率
視点に依存しない!
Computer Graphics
22

拡散反射 〜平行光源の場合
 平行光線が入射角αで平面を照射する場合
平行光線に対する拡散反射光の計算法
この面をθ方向から見た時の輝度は
入射角余弦の法則より,
平面に入射する光束はcosαに比例
I
E  Ii dScos
平行光線で照射された場合の拡散反射光の強さI
ランバートの余弦則より,
物体面からθ方向への反射光の強度は
dI (Ii dScos)cos


2006/06/12
dI
 kd Ii cos
dS cos

I  kd Ii cos   k d Ii N  L

面の輝度は視線方向に依存しない!
ka: 拡散反射率,Ii:入射光の強さ
α:光の入射方向と面の法線のなす角(入射角)
Computer Graphics
23
拡散反射 〜点光源の場合
 点光源:光の強度が光源からの距離の2乗に反比例
点光源に対する物体面の拡散反射光の強さ
I
kd Iq
r2
cos  
k d Iq
r2
N  L
kd: 拡散反射率,Iq:点光源の光度,r:光源からPまでの距離

2006/06/12
N: 面の法線ベクトル,L: 光線の方向ベクトル
Computer Graphics
24
光源の配光特性を考慮した例
配光特性の数式モデルの例
Iq   Io 1 cos/2
※Ioは灯軸方向の光度
2006/06/12
Computer Graphics
25
拡散反射 〜線光源の場合
 線光源:蛍光灯など.点光源が直線上に並んだものとして計算
線光源に対する物体面の拡散反射光の強さ
kd Iq
I 2
r
L

0
cos 
cos dl
2
r
kd: 拡散反射率,Iq:線光源の単位長さ当たりの
灯軸方向の光度,L: 線光源の長さ,r:PQ間の距離

2006/06/12
Computer Graphics
26
拡散反射 〜面光源の場合
 面的な広がりを持つ光源に対する拡散反射
 面光源,多面体光源など
(a)面光源→表面上の輝度は,点Pでの光源の立体角の正射影面積に比例
(b)多面体光源→区分求積法により計算
(a) 面光源
I  kd La A
ka: 拡散反射率,La:光源の輝度
A’:点Pでの光源の立体角の正射影面積

(b) 多面体光源
k d La m
I
  l cosl
2 l1
ka: 拡散反射率,La:光源の輝度,βl: PQlとPQl+1のなす角
δl:三角形PQlQl+1の法線と被照面の法線とのなす角

2006/06/12
Computer Graphics
27
面光源・多面体光源によるレンダリング例
2006/06/12
Computer Graphics
28
(3)鏡面反射
 物体表面での直接反射によって生じる
 光沢のあるプラスチックや金属表面上のハイライトなど
 入射角=反射角の時,最も強く反射
 反射光の強度は以下に依存

2006/06/12
光源の方向と物体面の向き,面の反射特性,視点方向
Computer Graphics
29
鏡面反射 〜フォンのモデル
 代表的な鏡面反射計算:フォンのモデル
 視点方向と正反射方向のなす角γにより,鏡面反射成分を減少させる
フォンのモデルによる鏡面反射光の強さの算出

I  W  Ii cosn   W  Ii R V

n
W(α)(=ks) : 拡散反射率,Ii:入射光の強さ,γ:視点方向と正反射方向のなす角
n: ハイライト特性制御パラメータ

2006/06/12
Computer Graphics
30
各反射成分の統合
 環境、拡散、鏡面反射の3要素を考慮した場合の反射光
の強さ
I  ka Ia  Ii kd cos  ks cosn  
環境
拡散
鏡面

nおよび反射率を変化させた場合の比較
上の段はks=0.3、下の段は=0.6
nは左から3, 5, 10, 100
2006/06/12
Computer Graphics
31
(4)完全鏡面反射・透過・屈折
完全鏡面反射:鏡など,正反射方向の物体が表面に映り込む
 透過・屈折:透過した先の物体が透けて(歪んで)見える
 物体が反射だけでなく,透過・屈折を起こす場合





表面上の反射特性のみでは不十分
レイトレーシングなどで,物体内部の透過,屈折を考慮
レイ:反射方向+透過・屈折方向 →これらを求める必要!
レイの追跡における終了条件(再帰的に)


2006/06/12
レイが拡散反射面(完全鏡面反射も透過・屈折もなし)に当たった場合
レイが交差する物体がシーン中に存在しない場合(背景の色とする)
Computer Graphics
32
(4-1)正反射方向のレイの算出
 正反射:
入射角=反射角
 面の向き(法線ベクトルN)と視点方向(視点方向ベク
トルV)から,正反射方向ベクトルを求める
正反射方向ベクトルR
ˆ
R  V 2N
ˆ
V
V 
ˆ N
ˆ
V
正反射方向の単位ベクトル

R 
1
ˆ N
ˆ
V
ˆ R  V
ˆ N
ˆ R
R
R
2006/06/12
Computer
Graphics

33
(4-2)屈折方向のレイの算出
 透明,半透明な物体


面の法線ベクトル,視点方向ベクトル,2つの媒質の屈
折率(n1, n2)を既知として,屈折方向ベクトルTを計算
光は屈折率の異なる媒質の境界で
屈折
屈折→スネルの法則に基づき計算
n1sinθ1=n2sinθ2

kf: 屈折の程度を表す係数,これを求れば良い

n1sinθ1=n2sinθ2(スネルの法則)
n
sin1
n 2 
n1 sin2
ˆ  V
N
sin1 


2006/06/12

ˆ  V   N
ˆ
T  kf N
V
sin 2 
n 


ˆ  V
kf N
ˆ  V
kf N
T
ˆ  V  N
ˆ
kf N




ˆ  V  N
ˆ
kf N
Computer Graphics
k f V
34
(4-2)屈折方向のレイの算出(つづき)
 透明,半透明な物体


光は屈折率の異なる媒質の境界で
屈折
屈折→スネルの法則に基づき計算
n1sinθ1=n2sinθ2
両辺を2乗、(N+V)・N=0より
2
n2 
2 ˆ
ˆ
kf N
 V  N
kf 
k f 2 V
2
2
1
2
ˆ  V  2
n 2 V  N

2006/06/12
Computer Graphics
35
(4-3)反射率と透過率の算出

異なる屈折率を持つ媒質境界での反射率kr
フレネルの式から算出
2
2
1 sin 1  2  tan 1  2 
kr   2


2 sin 1  2  tan 2 1  2 


各レイにおける最終的な光の強さIv
Iv  kr Ir  k t It
反射方向からの光の強さ
2006/06/12
ただし,透過率kt=1-kr
屈折方向からの光の強さ
Computer Graphics
36
(5)散乱・減衰
 媒体に散乱粒子が含まれる場合に考慮

空気分子,水蒸気,塵,煙,霧,雲,水分子
等
 レイマーチング法

レイに沿って微小距離ずつ移動しながら,視点に到達するまでの
減衰を考慮して散乱光を加算し,輝度を決定
1.点Qからの反射光成分
2.光路PEQ間の点Rにおいて,光源からの光が
視点方向へ散乱された光の成分
2006/06/12
Computer Graphics
37
散乱・減衰を考慮したレンダリングの例
2006/06/12
Computer Graphics
38
次回講義内容
 レンダリング(3)

その他、シェーディング技法



2006/06/12
スムーズシェーディング(グロー、フォン)
影付け(shadowing)
大域照明モデル
Computer Graphics
39