隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8...

26
1 隠れ面の消去を行う 教科書 7

Transcript of 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8...

Page 1: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

1

隠れ面の消去を行う

教科書 7章

Page 2: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

2

レンダリング

図形や形状を写実的に表示するための技術を総称してレンダリング(rendering)と呼ぶ.

隠れ面消去Zバッファ法(Z-buffer algorithm)スキャンライン法(scan-line algorithm)

シェーディング(shading)フラットシェーディング(flat shading)あるいはコンスタントシェーディング(constant shading)スムーズシェーディング(smooth shading)

グーロー(Gourand)シェーディング

フォン(Phong)シェーディング

Page 3: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

3

レンダリング(const.)

総称してレンダリング(rendering)と呼ぶ.(cont.)テクスチャマッピング(texture mapping)

画像マッピング

バンプマッピング(bump mapping)環境マッピング

反射マッピング

屈折マッピング

ソリッドテクスチャマッピング

レイトレーシング(ray tracing)

Page 4: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

4

隠れ面消去

ポリゴン(多角形平面)でモデル化された3次元

オブジェクトを対象にして,投影による不可視面を消去する技術を隠れ面消去と呼ぶ.

Page 5: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

5

隠れ面消去(cont.)

ポリゴンの外向き法線ベクトルを用いる方法ポリゴンの外向き法線ベクトル N と視線の方向ベクトル E の内積を用いる.

問題点

N

E

( ) ( )( )( )

1 0 2 0

0

0

= − × −

⋅ ≥

⋅ <

N P P P P

N E

N E

可視

不可視1P0P

2P

Page 6: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

6

隠れ面消去(cont.)Zバッファ法

画素(ピクセル)ごとの奥行き値(正規化視座標系の z 値)を格納するメモリ(Zバッファ)を用いる方法をZバッファ法と呼ぶ.

手順画素ごとの色を格納するメモリ(フレームバッファ)の他に,Zバッファを用意する.

すべての画素 (x,y) に対して,フレームバッファ値 f(x,y) に背景色, Zバッファ値 b(x,y) は背景の距離に初期化する.

すべてのポリゴンに対して,対象ポリゴンの画素 (x,y) における奥行き値 z (x,y) を求め,次式の書き換えを行う.

( ) ( )( ) ( ) ( ) ( )

If , , , then

, : , and , :

z x y b x y

b x y z x y f x y

<

= = 対象ポリゴンの色

Page 7: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

7

隠れ面消去(cont.)

スキャンライン法

画面上の走査線(スキャンライン)単位で隠面消去を行う方法をスキャンライン法と呼ぶ.

手順

視線方向を向いたすべてのポリゴンを正規化視座標系に変換し,各ポリゴンの最大・最小 y 値,ポリライン(セグメント)ごとの最大・最小 y 値を求め,最小 y 値の昇順でソート(Yソート)する.

スキャンライン平面

Page 8: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

8

隠れ面消去(cont.)手順(cont.)

スキャンラインごとに次のこと行う.

スキャンライン平面とすべての平面の交差を調べ,交差するすべてのポリラインの最大・最小 x 値を求め,最小 x 値の昇順でソート(Xソート)したリスト(アクティブセグメントリスト)を作成する.

アクティブセグメントリストのポリラインデータを z 値の昇順でソート(Zソート)し, z 値が最小のポリゴンの色をフレームバッファに格納する.

特徴隣り合うスキャンラインのアクティブセグメントリストの類似性(コヒーレンス coherence)を利用している.

Page 9: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

9

シェーディングとマッピングを行う

教科書 8章

Page 10: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

10

シェーディング

物体表面から視点に到達する光の輝度を計算方法をシェーディング(shading)と呼ぶ.

3原色(RGB)それぞれに対して輝度が定義されていると考える.

光の輝度成分 I= Id+ Is+ Ia拡散反射成分(ランバート(Lambert)則)

Id= Iin Kd cosθ = Iin Kd (N⋅L)Iin 入射光輝度

Kd 拡散反射率(0≤Kd ≤1)θ 入射角(0≤θ ≤π/2)

θinI N

L

Page 11: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

11

シェーディング(cont.)

光の輝度成分(cont.)鏡面反射成分(フォン(Phong)モデル) Is= Iin Ks (cosα)n = Iin Ks (N⋅E)n

Iin 入射光輝度,Ks 鏡面反射率(0≤Kd ≤1),α 全反射方向と視線ベクトルのなす角,n 反射光の鋭さ (n>0)

θinI θ

αNE

Page 12: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

12

シェーディング(cont.)

光の輝度成分(cont.)環境光反射成分 Ia= Iamp Ka

Iamb 環境光の輝度

Ka 反射係数(0≤Kd ≤1)屋外シーンでは Id,Is の 10%~20%を Ia とする.

室内ではラジオシティ (radiosity)法(面のパッチに出入りするす

べての光を考慮した輝度計算法)が用いられる.

透過光成分 It= I0 dI0 物体後方の光の屈折方向における輝度

d透過係数(0≤d ≤1)

Page 13: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

13

スムーズシェーディング

多面体モデルをそのままシェーディングする方法をフラットシェーディングあるいはコンスタントシェーディングと呼ぶ.

多面体モデルを擬似的に曲面に見せる方法をスムーズシェーディングと呼ぶ.

グーローシェーディング

フォンシェーディング

Page 14: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

14

スムーズシェーディング(cont.)

ポリゴンの頂点のみで輝度計算を行い,ポリゴン内部を線形補間する方法をグーローシェーディングあるいは輝度補間法と呼ぶ.

各頂点の平均法線ベクトルを計算する.

平均法線ベクトルを用いて輝度 Iを計算する.

ポリゴン内部を1次内挿補間する.

2N11

m

i

m==∑N

N

1N

3N

4N 1L2L

3L

Page 15: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

15

スムーズシェーディング(cont.)

各頂点の平均法線ベクトルからポリゴン内部の法線ベクトルを線型補間する方法をフォンシェーディングあるいは法線補間法と呼ぶ.

各頂点の平均法線ベクトルを計算する.

平均法線ベクトルを用いてポリゴン内部の法線ベクトルを1次内挿補間する.

ポリゴン内部の法線ベクトルから輝度 Iを計算する.

1L2L

3L

Page 16: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

16

テクスチャマッピング

3次元オブジェクトの表面に,表面の形状に沿って模様(texture)を貼り付ける処理をテクスチャマッピングと呼ぶ.

画像データのマッピングツーパートテクスチャマッピング

バンプマッピング

環境マッピング反射マッピング

屈折マッピング

ソリッドテクスチャ

Page 17: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

17

テクスチャマッピング(cont.)

画像データのマッピング2次元の画像データを3次元オブジェクトの表面に貼り

付ける処理を狭義のテクスチャマッピングと呼ぶ.

オブジェクトの周囲に画像データをマッピングした面を設けて,オブジェクト表面からの法線と交差したマッピング平面の色を立体表面の色とする方法をツーパートテクスチャマッピングと呼ぶ.

Page 18: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

18

テクスチャマッピング(cont.)

バンプマッピング

オブジェクト表面の細かな凸凹を法線方向の変化のみで輝度の変化を計算する方法をバンプマッピングと呼ぶ.

Page 19: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

19

テクスチャマッピング(cont.)

環境マッピング

オブジェクトの周囲に背景や前景をマッピングした面を設けて,視点から到達した色を表示する方法を環境マッピングと呼ぶ.

反射マッピング:オブジェクト表面で反射を1回行う.

屈折マッピング:オブジェクト表面で屈折を1回行う.

Page 20: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

20

テクスチャマッピング(cont.)

ソリッドテクスチャ3次元空間のテクスチャを数式やアルゴリズムで作成

し,オブジェクトの表面から内部に連続しているテクスチャを表現する方法をソリッドテクスチャと呼ぶ.

木材や岩石などの表現で使われている.

Page 21: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

21

レイトレーシングを学ぶ

教科書 9章

Page 22: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

22

レイトレーシング

目に到達するまでの光を逆に辿ることによって色を計算する方法をレイトレーシングと呼ぶ.

Page 23: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

23

レイトレーシング(cont.)

レイトレーシングのアルゴリズム

空間中に視点とスクリーンを定義する.

各画素について,次の計算を行う.

画素点と視点を直線(レイ)を作成する.

レイとすべてのオブジェクトとの交点を求める.

交点がなければ,その画素の輝度は背景色とする.

交点があれば,視点に一番近い交点を可視点とし,可視点の輝度を計算し,その画素の輝度とする.

Page 24: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

24

レイトレーシング(cont.)

可視点の輝度計算光源からの光が直接可視点で反射してきた成分∑光源数 Id+ ∑光源数 Is

他のオブジェクトでの反射光(完全鏡面反射のみを考慮)が可視点で反射した成分

kr1Ir1

光源あるいは他の物体からきた光が屈折した成分

kr2Ir2

Page 25: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

25

レイトレーシング(cont.)

可視点の輝度計算(cont.)光源 Id

l (l=1,2,…,L) のとき,一つの可視点について

輝度の合計を計算する.

その際,そこで必要となる他のオブジェクトからの反射光・屈折光はそれぞれの点での輝度の合計を計算する.

反射光・屈折光の回数が上限値に達するまで繰り返す.

視点

光源

反射屈折

可視点

Page 26: 隠れ面の消去を行う - 名大の授業 (NU OCW)ocw.nagoya-u.jp/files/34/CS12.pdf8 隠れ面消去(cont.) z手順(cont.) zスキャンラインごとに次のこと行う.

26

参考文献

1. コンピュータグラフィックス, 前川佳徳(編著), オーム社, 2001.

2. 3次元CADの基礎と応用, 鳥谷浩志,千代倉弘明 編著, 共立出版, 1991.