1コンピュータグラフィックス

９. レンダリング２－ シェーディング －教科書P.117-135

佐藤証 ⻄9-613
akashi.satoh@uec.ac.jp

シェーディングと影付け
 光の当たり具合によって濃淡が変化する部分の明るさを計算して表⽰することをシェーディングと呼ぶ
 他の物体や⾯によって光がさえぎられた領域には影付けを⾏う

2放射量と測光量
 光学では光の物理的なエネルギーを放射量として，照明⼯学では⽬というフィルタを通した光を測光量として扱うが，シェーディングの基礎となる照明⼯学を扱う① 光束- 単位時間にある⾯を通過するエネルギー量放射則を⽬のフィルタ(視感度)に通して⾒た量を光束と呼びlm(ルーメン)で表す② 光度- 点光源のある⽅向への光度は，光源を頂点とする単位⽴体⾓内に放射される光束で定義しcd(カンデラ)で表す- 光源の空間に対する光度分布を配光特性と呼ぶ

⽴体⾓

配光特性

kandelaar3放射量と測光量③ 照度- 単位⾯積当りに⼊射する光束でlx(ルクス)で表す- 半径 r の球の中⼼に全⽅向への光度が l の光源を置いたとき，全光束は4 で，球の内側の全⾯積4に⼊射するので，球⾯上の任意の点の照度 E は次の式で与えられ距離の2乗に逆⽐例する(逆2乗の法則)
44- ⾯積 A に垂直に光束 が⼊射している/ となり，とき⾯上の照度はこの⾯を⾓度 θ 傾けたときの照度 は次式で与えられる(⼊射⾓余弦の法則)
cos

cos
⼊射⾓余弦の法則
4放射量と測光量④ 光束発散度- 単位⾯積から発散する光束が光束発散度でlm/m2で表す- 単位⾯積に⼊射する光束の照度と逆の関係⑤ 輝度- 反射⾯や発光⾯をある⾓度から⾒たとき，その⽅向への光度を⾒かけの⾯積で割った値で，眼で⾒たときに感じる明るさ- θ ⽅向の光度を ，⾒かけの⾯積を とすると，θ ⽅向の輝度Lθは次式で与えられ，単位はcd/m2

cos- どの⽅向から⾒ても輝度の等しい表⾯を完全拡散⾯と⾔い
法線⽅向の光度 とθ⽅向の光度 の間には次のランバー
トの余弦即が成り⽴つ
cos

輝度
5

シェーディングモデル
 直接光に関して照明計算を⾏う局所照明モデルと間接光まで考慮する⼤域照明モデルに分類される
 光源は太陽光の様な平⾏光線，1点から放射状に広がる点光源，⻑さを持つ線光源，⼤きさを持つ⾯光源に分けられる
 直接光は光源から出た光で，間接光は光源から出た光が他の物と相互作⽤を起こしたもの 間接光は反射光(鏡⾯反射，拡散反射)，物質を通過した透過光，微粒⼦で散乱された散乱光に分けられる

6

シェーディングモデルの発展 1960-70年代の平⾏光線や点光源による基礎的な⼿法か
ら1980年代には配光特性や線光源，⾯光源，多⾯体光源
間接光を考慮した⼿法が開発された
 反射も物体表⾯から，内部の深い部分での多重散乱後後に出てくる光を精密に扱うBSSRDF等が開発されている
 反射光が他の物体を照らす明暗の分布，⽔⾯の屈折光が⽔底に作る集光現象，⼤気中の微粒⼦による散乱･減衰，光の⼲渉･回折現象等よりリアルなシェーディングモデルが登場している光の⼲渉現象7

平行光線の拡散反射
 どの⽅向から⾒ても物体⾯の輝度が⼀定となる反射を拡散反射と呼ぶ
 ⼊射⾓αの平⾏光線で照射された拡散反射光の強さIは
cos

0.0, 1.0∙

kd：拡散反射率
Ii ：⼊射光の強さ

0.2, 0.80.8, 0.21.0, 0.00.4, 0.60.6, 0.4
環境光に対する反射率Kaと拡散反射率kdの変化にともなう陰影の違い

8点光源の拡散反射
 点光源の光の強度は光源からの距離2乗に反⽐例 ⼊射⾓αの点光源による物体⾯の拡散反射の強さIは
cos∙

kd：拡散反射率
Iq ：点光源の光度 全ての光源は⼤きさを持つが，物体から⽐較的離れた⼩さな光源は点光源と⾒なすことが可能
 実際の光源は固有の配光特性を持つ

光源の配光特性を考慮した表⽰

9線光源の拡散反射
 線光源は直線状に連続的に並んだ点光源として計算可能
 線光源の⻑さ⽅向の断⾯では，配光特性は光源を中⼼にした円形となる
 ⾯上の点Pの反射光の強さIは，光源の⻑さ⽅向Lの積分式で表される
cos
cos
kd：拡散反射率
Iq ：線光源の単位⻑さあたりの灯軸⽅向の光度
θ：点Pと線光源上の点Qを結ぶ線分と灯軸のなす⾓度
α：点Pと点Qを結ぶ線分と法線のなす⾓度
r：PQ間の距離10面光源の拡散反射 ⼤きさAを持つ輝度Laに対する反射光の強さIは，点Pでの光源の⽴体⾓の正射影⾯積Aʻに⽐例する
kd：拡散反射率

 輝度Laのm⾓形の光源に対する反射光の強さIは
2

cos：PQlとPQl+1のなす⾓：三⾓形線PQlQl+1の法線と被照射⾯の法線のなす⾓度

11

鏡面反射
 拡散反射は物質内の浅い部分で多重散乱した光であるのに対し，鏡⾯反射は物質表⾯での直接反射で⽣じる
 フォンのモデルで強さ の⼊射光に対する鏡⾯反射光の強さIは視線⽅向と正反対⽅向のなす⾓ により
cos∙：鏡⾯反射率n：ハイライト特性制御

鏡⾯反射フォンのモデルによるハイライトの違い

12

レイトレーシング法による反射と透過・屈折 レイトレーシング法は反射，透過･屈折の度にレイを分割し，拡散反射⾯に当たるか交差する物体がなくなるまで再帰的に繰り返す
 計算に時間がかかるため，光の減衰やレイの分割回数に応じて追跡を中⽌する⼯夫が取られる

13

正反対方向ベクトル 鏡のような物体表⾯に⼊射したレイが⾯の法線に対して⼊射⾓と等しい⾓度で反射する正反対⽅向ベクトルRとその単位ベクトル は2 ,∙∙

2：⾯の単位法線ベクトル：視線⽅向への単位ベクトル14屈折方向ベクトル レイが屈折する効果の係数kfで屈折⽅向ベクトルTを表すと＝1：レイが屈折率の同じ媒質中を直進
1：屈折率低⇒屈折率⼤1：屈折率⼤⇒屈折率⼩ 屈折率n1,n2の媒質の相対屈折率nは′15

反射率と透過率
 異なる屈折率持つ媒質の境界での反射率 は
1 sin
2 sin
12tantan
111：⼊射⾓， ：屈折率
1cos ,

 視点側に届く光の強さ
は反射と屈折⽅向の光の強さ と を⽤いて

16

散乱・減衰 光が通過する媒体が散乱粒⼦を含むと散乱･減衰が⽣じる レイトレーシング法を拡張したレイマーチング法を⽤いる- レイに沿って微⼩距離ずつ移動しながら，視点に到達するまでの減衰を考慮して散乱光を加算- 視線⽅向Eと光源⽅向とのなす⾓θの関数で粒⼦の散乱特性を表す位相関数を⽤いて点Rの散乱を計算- 位相関数の分布形状は散乱粒⼦の⼤きさと光の波⻑に⼤きく依存17

スムーズシェーディング 代表点の輝度でポリゴンを表⽰するコンスタントシェー
ディングでは，輝度に敏感な⽬の特性(マッハバンド効果)のため近似したポリゴン形状が⾒えてしまう ポリゴン内の輝度を保管してなめらかな明るさ表⽰を⾏う⽅法をスムーズシェーディングと呼ぶ
 表⽰された物体の輪郭部分の形状は変わらない

コンスタントシェーディングとスムーズシェーディング

グローとフォンのスムーズシェーディング18

グローのスムーズシェーディング ポリゴン内の点P(xP,yP)の輝度 を各頂点A,B,C,Dでの輝度, , , で補完 ポリゴンの辺とスキャンラインの交点L(xL,yL), R(xR,yR)での輝度 , を頂点での輝度で線形補完：スキャンラインのy座標

ポリゴンとスキャンライン

ポリゴンの頂点における法線ベクトル19フォンのスムーズシェーディング グローのスムーズシェーディングはハイライトが⼗分に表現できず，ポリゴン境界での輝度値は連続だが，輝度値の変化は不連続で視覚的に完全にスムーズにならない フォンのスムーズシェーディングは点Pの法線NPベクトルを頂点の法線ベクトル , , , で補完する- グローのスムーズシェーディングのIをNで置き換える マッハバンド効果を減少させハイライトもリアルに表現できるが，毎回のベクトルの正規化に要する計算量が多い

20

本影と半影 平⾏線や点光源によって⽣じる影は，境界とそうでない部分がはっきり分かれるが，⾯光源は境界がぼやける- 本影：光源からの光がまったく届かない領域- 半影：光源からの光の⼀部が到達する領域

 平⾏光源や点光源の影付は⽐較的簡単に⾏える- 主な⽅法に①レイトレーシング法 ②スキャンライン単位の⽅法③物体空間における２段階法 ④シャドウポリゴン法 ⑤Zバッファ法を⽤いた２段階法 などがある

21

レイトレーシング法による本影
 各画素に表⽰される⾯の位置と光源を結び，光源からの光を遮る遮へい物があるかどうかを調べる
 各画素ごとに判定を⾏うので処理時間がかかる

22スキャンライン単位の方法による本影
 光源から⾒たときの表の⾯の各辺を操作⾯上の処理を⾏う可視⾯に投影する
 ⾯S1の可視区間P1〜P3で⾯S2による影の区間P1〜P2を計算して影付けを⾏う

23

物体空間における２段階法による本影
 光源と視点からの2つの透視図を求め，表⽰の際に影の領域をマッピングする⽅法でスキャンライン法やZバッ
ファ法に適⽤ 影の領域を求めることと隠⾯消去が同⼀アルゴリズムで実⾏可能

24

シャドウポリゴン法による本影
 光源と遮へい物によって⽣じる影の空間(シャドウボリューム)とその構成⾯シャドウポリゴンをモデリングの際に物体データに付加 シャドウポリゴンと可視⾯との交線を求めて影の領域を決定 シャドウポリゴンは影付だけに使われそれ⾃⾝は表⽰されない

25

Zバッファを用いた２段階法による本影
 Zバッファを⽤いて光源を可視点とした可視⾯までの距離を画素ごとに求めたシャドウマップを作成
 各画素での実際の可視点に対するシャドウマップの値と光源から可視点までの距離を⽐較し，可視点までの距離が⻑ければ遮へい物が存在し影と判定

26

大きさをもつ光源による影 近似的に求める⽅法- 光源の表⾯上に複数の点光源を配置して近似する⽅法は点光源の密度が低い場合計算誤差が⼤きい- 光源を球として考え，円錐と物体との交差領域で影の度合を近似

 積分法により求める⽅法- 半影内の点の明るさはそこから⾒た光源の可視領域の⼤きさに依存し，積分によって求めることが可能

27

ラジオシティ法 ⼤域照明モデルは間接光も含めた精密な照明計算を⾏う ラジオシティ法はシーンを構成するポリゴンを⼩さなパッチに分解し，各パッチのラジオシティ(放射発散度)を未知数とした連⽴⼀次⽅程式を解く
 ラジオシティ法の特徴① 半影(ぼやけた影)を伴う② 直接光が届かない部分も相互反射による間接光で照らされる③ 反射⾯の⾊が隣接する⾯に影響する(カラーブリーディング)

カラーブリーディングのレイ

ラジオシティ法のパッチ分割28

ラジオシティ法 パッチ同⼠のラジオシティ授受の割合を⽰すフォーム
ファクタはパッチの形状や配置から計算され，光源や視点とは無関係で事前計算できる
 拡散反射成分だけを考慮した相互反射光の計算はパッチの放射輝度は⽅向によらず⼀定
 鏡⾯反射成分を考慮した計算では放射輝度が⽅向性を持つため処理が複雑となる

29

フォトンマップ法
 ラジオシティ法で鏡⾯反射や屈折を⽣じる透明な物体で⽣じる集光現象の表現は困難 レイトレーシング法を拡張したフォトンマップ法は拡散反射⾯での光の相互反射と集光現象を統⼀的に扱え，パッチ分割も不要
 2段階のレイトレーシングを⾏って光の相互反射を考慮したレンダリングを⾏う30

フォトンマップ法
 フォトンマップの構築(第1段階)- 光源からフォトンを放出して追跡し，鏡⾯反射成分を持たない⾯に到達したときはフォトンマップにそのフォトンの情報を登録• コースティックフォトンマップ：フォトンが1回以上鏡⾯反射された集光現象に関係する光の成分• グローバルフォトンマップ：全ての反射⾯や散乱粒⼦の相互反射
光を近似する情報でフォトンが拡散⾯に到達したときに登録• ボリュームフォトンマップ：多重散乱光を扱うため反射⾯や散乱粒⼦により再度空間に放出されたフォトンの情報を登録

 フォトンマップを利⽤した描画(第2段階)- フォトンマップの情報を参照しながら分散レイトレーシングでレンダリング- ⼊射光を直接⼯，鏡⾯反射･透過による間接光，拡散反射による間接光の3成分に分類し，さらに⾯の反射成分も拡散反射と鏡⾯反射の2つに分類- 直接光は通常のレイトレーシング法- 影付には影フォトンを利⽤する
31

32