Document

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