Transcript Document
Computer Graphics
第7回
レンダリング(1)
写実的表現法,隠面消去法
芝浦工業大学情報工学科
青木 義満
講義内容
レンダリング(4章 p.95)
写実的表現法(4-1, p.96)
隠面消去(4-2, p.100)
2007/06/05
Computer Graphics
2
レンダリング
レンダリングとは?
モデリングによって定義された3次元物体に対し、カ
メラや光源の位置や方向を指定し、光の物理的な性
質に基づいて描画を行うこと
写実的表現法
幾何学的形状表現+物体の材質感
物体表面での光の反射・透過・屈折特性を考慮
コンピュータ内部の3Dモデルから写実的画像を生成
するための手法
→ フォトリアリスティック・レンダリング
2007/06/05
Computer Graphics
3
写実的表現のレベル
低
隠線消去
隠面消去
テクスチャ
シェーディング
高
写実的表現のレベル
2007/06/05
Computer Graphics
4
リアリティの要素
リアリティの向上に関与する要素
遠近感
可視面表示
透視投影
デプスキューイング
隠線消去
隠面消去
表面の明るさ(陰影付け),影の表示
2007/06/05
物体属性:材質,表面の滑らかさ,色(反射特性)
反射光計算(直接光+間接光)
Computer Graphics
5
レンダリングを構成する処理
写実的表現のレンダリング処理の流れ
ベクタデータ
2007/06/05
ラスタデータ
Computer Graphics
テクスチャマッピング等
6
隠面消去(p.100)
バックフェース・カリング
視点から不可視の裏面(back face)を除去
物体の表の面と裏の面を判定する必要
表の面/裏の面の判別方法(数式記入)
2007/06/05
Computer Graphics
7
法線ベクトルの算出
平面:同一直線上にない3点で一意に決定
法線ベクトル:ポリゴンを構成する3頂点から算出可能
シェーディングにおいても重要!
2007/06/05
Computer Graphics
8
バックフェースカリングの問題点
バックフェースカリングで対応できないケース
シーンに複数の物体が含まれる場合(他物体による遮蔽)
凹形状の物体(自己遮蔽)
2007/06/05
Computer Graphics
9
代表的な隠面消去法
処理を行う空間により3分類
物体空間アルゴリズム
画像空間アルゴリズム
投影面上のスキャンライン(走査線)や画素(ピクセル)単位
で隠面消去
スキャンライン法,Zバッファ法,レイトレーシング等
優先順位アルゴリズム
2007/06/05
3D空間で隠面消去判定を直接行う
面の可視性の優先順位に基づき隠面消去。物体空間アルゴリズ
ムと画像空間アルゴリズムの中間
Computer Graphics
10
優先順位アルゴリズム(例:奥行きソート法)
奥行きソート法
2007/06/05
可視性の優先順位に従って面をソート,可視性の低い遠方
の面から順にフレームバッファに重ね描きする方法
ポリゴン重心などの代表点における奥行き値でソート
Computer Graphics
11
奥行きソート法の問題点
2007/06/05
Computer Graphics
12
スキャンライン法
スキャンライン(走査線)に基づいて隠面消去を行う方法
2007/06/05
Computer Graphics
13
スキャンライン法のアルゴリズム
2007/06/05
Computer Graphics
14
ポリゴンの走査変換
増分法による交点算出(数式記入)
ポリゴンの辺とスキャンラインとの交点を求め,
ポリゴンに含まれる画素を決定
全てのスキャンラインについてこの処理を実行,
ポリゴン内部の画素を塗りつぶす
ベクタ →
ポリゴンのラスタ化
辺の傾きを求めておくことで,
増分法により高速に交点算出
2007/06/05
Computer Graphics
15
スキャンライン法の特徴
長所
所要メモリ:スキャンライン一本分の両
端点のx座標値を記憶する配列のみ
ポリゴン数が多くてもメモリ消費小,計
算量小
短所
2007/06/05
アルゴリズムの実装がやや複雑
反射による映り込みや屈折を生じる物体
に適用不可
Computer Graphics
16
Zバッファ法
奥行きを画素ごとに格納するZバッファの値により,各
画素の描画色を決定
2007/06/05
Computer Graphics
17
Zバッファ法のアルゴリズム
2007/06/05
Computer Graphics
18
Zバッファ法 〜ポリゴンの奥行き(z値)計算
奥行き計算法(数式記入)
2007/06/05
Computer Graphics
19
Zバッファ法の特徴
フレームバッファの他にZバッファが必要だが,アルゴリズ
ムが簡単でハードウェア化が容易
GPUの多くで採用,隠面消去リアルタイムレンダリング
画素単位の計算で,平面ポリゴンの他,曲面にも適用可能
面の交差にも対応可能
2007/06/05
Computer Graphics
20
レイトレーシング法(光線追跡法)
レイ(光線)という1次元線分上での交点の前後判定による隠面消去法
cf. スキャンライン法:2次元走査平面上でのセグメントの可視判定による隠面消去
※物体の反射・透過・屈折特性も考慮可能
2007/06/05
Computer Graphics
21
レイトレーシング法によるレンダリング画像例
2007/06/05
Computer Graphics
22
レイと物体の交差判定
レイと球の交差判定
2007/06/05
Computer Graphics
23
交差判定条件
判別式D>0 →
2点で交差
t1, t2 > 0の場合
t1, t2 < 0の場合
t1>0, t2<0 又は t1<0, t2>0の場合
D=0 →
レイと球は接する
D<0 →
交差なし
2007/06/05
Computer Graphics
24
レイとポリゴンとの交差判定
ポリゴンを含む平面とレイとの交点を求める
交点がポリゴン内部にあるかどうかを判定
平面
t>0: 視点の前方で交差
t<0: 視点後方に平面
t=0: 視点が平面上に存在
E・N=0: レイと平面が平行
2007/06/05
Computer Graphics
25
交点がポリゴン内部にあるかどうかの判定(1)
点を端点とする半直線とポリゴンの辺との交点の個数を
カウントして判定
2007/06/05
Computer Graphics
26
交点がポリゴン内部にあるかどうかの判定(2)
点とポリゴンの各頂点を結ぶベクトルの外積の方向をチ
ェックする方法
2007/06/05
Computer Graphics
27
交点がポリゴン内部にあるかどうかの判定(3)
点とポリゴンの各頂点を結ぶベクトル間の角度を加算す
る方法
2007/06/05
Computer Graphics
28
レイトレーシングの高速化
バウンディングボリュームの利用
空間分割法
並列計算による方法
2007/06/05
Computer Graphics
29
レイトレーシング法の特徴
形状モデルとの交差判定が直線
交点計算と可視点の決定が他の隠面消去法に比べ単純
処理に必要となるメモリも小
ソフトウェアでの実装も容易
ポリゴンだけでなく、球や円錐,パラメトリック曲面など
関数表現された物体も適用可能
幾何光学に基づく手法
反射,透過,屈折など複雑な光学現象のシミュレーション,表
現が可能
鏡、ガラス、雲、波など
画素毎の処理
2007/06/05
多くの計算時間(レイの数に依存)
高速化の工夫が必要
Computer Graphics
30
次回講義内容
レンダリング(2)
2007/06/05
シェーディング
Computer Graphics
31