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

Similar documents
Fair Curve and Surface Design System Using Tangent Control

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

コンピュータグラフィックス特論Ⅱ

コンピュータグラフィックス特論Ⅱ

コンピュータグラフィックスS 演習資料

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

コンピュータグラフィックス第8回

コンピュータグラフィックス特論Ⅱ

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

コンピュータグラフィックス特論Ⅱ

コンピュータグラフィックス特論Ⅱ

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

Microsoft PowerPoint - info_eng3_05ppt.pptx

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

スライド 1

Microsoft PowerPoint - CGによる画像生成.pptx

ライティングの基本要素ライト ( 光源 ) の位置や種類 強さを決め モデルやシーンの見せ方を決めることをライティングとよぶ また モデルの表面での光の反射の度合いを調節することで ライティングの効果を変化させることができる 今回は ライティングの基本的な要素を解説し SketchUp のライティン

コンピュータグラフィックス第6回

Microsoft PowerPoint - 9.レンダリング2.pptx

CG

Microsoft Word - 演習9.docx

免許法認定公開講座: コンピュータグラフィックス

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

vecrot

NB

PowerPoint プレゼンテーション

Computer Graphics

Graphics with Processing モデリング 塩澤秀和 1

コンピュータグラフィックス特論Ⅱ

コンピュータグラフィックス特論Ⅱ

補足 中学で学習したフレミング左手の法則 ( 電 磁 力 ) と関連付けると覚えやすい 電磁力は電流と磁界の外積で表される 力 F 磁 電磁力 F li 右ねじの回転の向き電 li ( l は導線の長さ ) 補足 有向線分とベクトル有向線分 : 矢印の位

パソコンシミュレータの現状

Microsoft Word - thesis.doc

OCW-iダランベールの原理

スライド 1

Microsoft Word - povray.docx

スライド 1

8. 自由曲線と曲面の概要 陽関数 陰関数 f x f x x y y y f f x y z g x y z パラメータ表現された 次元曲線 パラメータ表現は xyx 毎のパラメータによる陽関数表現 形状普遍性 座標独立性 曲線上の点を直接に計算可能 多価の曲線も表現可能 gx 低次の多項式は 計

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

といえる また で示した QEDSoft とは通常の Web ページにキャラクタを配置することのできる Web3D ソフトウェアであり 3DSMAX から変換することでキャラクタを作成することができるものである また Web3D としては Viewpoint も試みた その利用価値は高いことがわかっ

2008 年度下期未踏 IT 人材発掘 育成事業採択案件評価書 1. 担当 PM 田中二郎 PM ( 筑波大学大学院システム情報工学研究科教授 ) 2. 採択者氏名チーフクリエータ : 矢口裕明 ( 東京大学大学院情報理工学系研究科創造情報学専攻博士課程三年次学生 ) コクリエータ : なし 3.

Shade 13.2 アップデータ

tc15_tutorial02

XAML Do-It-Yourself シリーズ 第 12 回 3D グラフィックス -1-

Microsoft PowerPoint - [150421] CMP実習Ⅰ(2015) 橋本 CG編 第1回 幾何変換.pptx

Microsoft PowerPoint - pr_12_template-bs.pptx

代数 幾何 < ベクトル > 1 ベクトルの演算 和 差 実数倍については 文字の計算と同様 2 ベクトルの成分表示 平面ベクトル : a x e y e x, ) ( 1 y1 空間ベクトル : a x e y e z e x, y, ) ( 1 1 z1

ダイアログボックス内内でのパラメータ設定 : las ファイルを例として説明します 他の形式もことわりがない限り同様の操操作です 1 元パス : 変換換対象の点群群データのファイル (*.las) を保存しているフォルダを指指定します las ファイルが 1 つの場合合 直接 las ファイルが所在

アニメーションあり3 次元 CG アニメーションの CAVE への表示 藤本孝一 松本浩二 田島広太 高瀬祥平 井門俊治 埼玉工業大学工学部井門研究室 1, 目的 各種ツール プログラムで作成したモデル およびアニメーションの CAVE での表示を行う 2, 方法 AVE システムでの表示には今のと

円筒面で利用可能なARマーカ

CG

OpenFOAM(R) ソースコード入門 pt1 熱伝導方程式の解法から有限体積法の実装について考える 前編 : 有限体積法の基礎確認 2013/11/17 オープンCAE 富山富山県立大学中川慎二

Microsoft PowerPoint - 10.pptx

3D グラフィックス処理の一般過程 1. 3D グラフィックス処理の一般過程

座標系.rtf

/*p7-1-1*/

PowerPoint Presentation

モデリングとは

Microsoft PowerPoint - 9.pptx

す 局所領域 ωk において 線形変換に用いる係数 (ak 画素の係数 (ak bk ) を算出し 入力画像の信号成分を bk ) は次式のコスト関数 E を最小化するように最適化 有さない画素に対して 式 (2) より画素値を算出する される これにより 低解像度な画像から補間によるアップサ E(

PowerPoint Presentation

OpenGL & GLUTの基本関数の説明

スライド 1

2 レンダリング方程式 レンダリングの完全なモデル化

Display 表示の初期化が CAVE 表示の初期化に置き換わり CAVE 用のプログラムに書き換えることが出来る 表 2 1 画面 (Windows LINUX IRIX) 用の OpenGL #include<stdio.h> #include<windows.h> #include<gl/g


画像類似度測定の初歩的な手法の検証

画像処理工学

3次元CAD PYTHA新機能紹介マニュアル

地理院地図 3D の公開 99 地理院地図 3D の公開 Public release of the GSI Maps 3D on the Internet 地理空間情報部髙桑紀之 大木章一 藤村英範 岡安里津 Geospatial Information Department Noriyuki T

Autodesk Inventor Skill Builders Autodesk Inventor 2010 構造解析の精度改良 メッシュリファインメントによる収束計算 予想作業時間:15 分 対象のバージョン:Inventor 2010 もしくはそれ以降のバージョン シミュレーションを設定する際

技術者のための構造力学 2014/06/11 1. はじめに 資料 2 節点座標系による傾斜支持節点節点の処理 三好崇夫加藤久人 従来, マトリックス変位法に基づく骨組解析を紹介する教科書においては, 全体座標系に対して傾斜 した斜面上の支持条件を考慮する処理方法として, 一旦, 傾斜支持を無視した

2 図微小要素の流体の流入出 方向の断面の流体の流入出の収支断面 Ⅰ から微小要素に流入出する流体の流量 Q 断面 Ⅰ は 以下のように定式化できる Q 断面 Ⅰ 流量 密度 流速 断面 Ⅰ の面積 微小要素の断面 Ⅰ から だけ移動した断面 Ⅱ を流入出する流体の流量 Q 断面 Ⅱ は以下のように

Microsoft PowerPoint - 三次元座標測定 ppt

Microsoft Word - NumericalComputation.docx

Transcription:

コンピューターグラフィックス S 第 12 回シェーディング マッピング システム創成情報工学科尾下真樹 2018 年度 Q2

今回の内容 前回の復習 シェーディング 光のモデル スムーズシェーディング シェーディング ( 続き ) OpenGL での光源情報の設定 ラジオシティ 影の表現 BRDF マッピング

今回の内容 シェーディング 光の効果の表現 マッピング 生成画像 表面の素材の表現 オブジェクト オブジェクトの作成方法 オブジェクトの形状表現 表面の素材の表現 動きのデータの生成 画像処理 カメラから見える画像を計算 光源 光の効果の表現

教科書 ( 参考書 ) コンピュータグラフィックス CG-ARTS 協会編集 出版 4 章 4-4 4-7( 詳しい ) 4 章 4-5 ビジュアル情報処理 -CG 画像処理入門 - CG-ARTS 協会編集 出版 4 章 4-4~4-5 4 章 4-6

参考書 コンピュータグラフィックス CG-ARTS 協会編集 出版 (3,200 円 ) 4 章 3DCG アニメーション 栗原恒弥安生健一著 技術評論社出版 第 2 章 (68~108 ページ ) 3 次元 CG の基礎と応用 千葉則茂土井章男著 サイエンス社出版 第 2 章 (23~28 ページ ) 第 4 章 (35~39 ページ ) 第 5 章 (40~49 ページ ) 第 8 章 (73~75 ページ ) 第 9 章 (79~90 ページ )

前回の復習

光のモデル 輝度の計算式 全ての光による影響を足し合わせることで 物体上の点の輝度 (RGB の値 ) が求まる 各 I は光の明るさ (RGB) 各 k は物体の反射特性 (RGB) n L n I I k I k N L k R V k I k I a a i d s r r t t i 1 環境光 拡散反射光 鏡面反射光 ( 局所照明 ) 鏡面反射光 ( 大域照明 ) 透過光 それぞれの光源からの光 ( 局所照明 ) 大域照明

光のモデル 局所照明モデル 光源と一枚の面の関係のみを考慮したモデル 環境光 拡散反射光 鏡面反射光 大域照明モデル 周囲の物体の影響も考慮したモデル 環境光 鏡面反射光 透過光 同じ種類の光でも考慮する範囲に応じて局所モデルと大域モデルがあるので注意

光のモデルのまとめ 光源 N L R 拡散 鏡面反射光 ( 光源から来る光 ) 環境光 ( 周囲から来る光 ) 鏡面反射光 ( 映り込み ) n L 透過光 n I I k I k N L k R V k I k I a a i d s r r t t i 1 環境光 拡散反射光 鏡面反射光 ( 局所照明 ) 鏡面反射光 ( 大域照明 ) 透過光 それぞれの光源からの光 ( 局所照明 ) 大域照明

光源の種類 平行光源 一定方向からの光源 計算量が最も少ない 太陽などの遠くにある光源の表現に適している 点光源 位置の決まった光源 ライトなどの表現に適している 光の方向は点光源と面の位置関係により決まる 光の減衰も考慮できる 無限遠に光源があると見なす

光のモデルの計算 OpenGL による光の効果の計算 設定された光源情報 及び 法線に従い 局所照明モデルのみを計算 環境光には 一定の明るさを指定可能 光源の種類や位置を指定可能 ( 複数指定可能 ) n L n I I k I k N L k R V k I k I a a i d s r r t t i 1 環境光 拡散反射光 鏡面反射光 ( 局所照明 ) 鏡面反射光 ( 大域照明 ) 透過光 それぞれの光源からの光 ( 局所照明 ) 大域照明

プログラムの例 光源の位置や色の設定 ( 詳細は後日の演習 ) 以下の例では 環境光と 一つの点光源を設定 float light0_position[] = { 10.0, 10.0, 10.0, 1.0 }; float light0_diffuse[] = { 0.8, 0.8, 0.8, 1.0 }; float light0_specular[] = { 1.0, 1.0, 1.0, 1.0 }; float light0_ambient[] = { 0.1, 0.1, 0.1, 1.0 }; gllightfv( GL_LIGHT0, GL_POSITION, light0_position ); gllightfv( GL_LIGHT0, GL_DIFFUSE, light0_diffuse ); gllightfv( GL_LIGHT0, GL_SPECULAR, light0_specular ); gllightfv( GL_LIGHT0, GL_AMBIENT, light0_ambient ); glenable( GL_LIGHT0 ); glenalbe( GL_LIGHTING );

シェーディングの方法 フラットシェーディング スムーズシェーディング グローシェーディング フォンシェーディング フラットシェーディンググローシェーディングフォンシェーディング

シェーディングの処理のまとめ フラットシェーディング 面の法線から面の色を計算 グローシェーディング 頂点の法線から頂点の色を計算 頂点の色から 各点の色を決定 フォンシェーディング 頂点の法線から 面内の各点 ( ピクセル ) の法線を計算 各点の法線から 色を計算

頂点の法線 頂点の法線 もともと頂点には法線という概念はない シェーディングを計算するために 頂点の法線を利用 計算方法 頂点に隣接する全ての面の法線を平均 面の面積に応じて加重平均する方法もある 基礎と応用図 4.2

レポート課題 OpenGL を使った課題プログラムの作成 各自 自分に与えられた課題を実現するプログラムを作成する ポリゴンモデルの描画 視点操作インターフェースの拡張 アニメーション Moodle から提出 レポート 作成したプログラム一式を提出 レポートの締め切りは後日連絡 8 月上旬 ( 期末試験後 ) の締め切りを予定

OpenGL での光源情報の設定

OpenGL の光源処理の概要 光源と物体の素材 ( 頂点の色 ) 法線によって 描画される頂点 ( ポリゴン ) の色が決まる OpenGL の光源処理 OpenGLの関数を使って 光源や物体の素材 法線の情報を指定 OpenGLは 各頂点ごとに 自動的に光源処理を行い 各頂点の色を決定グローシェーディングにより 各頂点の色をもとに ポリゴンが描画される

レンダリング パイプライン 各頂点ごとに処理 各ポリゴンごとに処理 x y z 座標変換 x y z ラスタライズ 描画 頂点座標 スクリーン座標 カメラの位置 向き光源の情報 テクスチャの情報 光源の情報 物体の素材 法線を指定 各頂点ごとに 自動的に光源処理を行い 各頂点の色を決定 ( 座標変換 ) グローシェーディングにより 各頂点の色をもとに ポリゴンが描画される ( ラスタライズ )

光のモデル ( 復習 ) 輝度の計算式 全ての光による影響を足し合わせることで 物体上の点の輝度 (RGB の値 ) が求まる 各 I は光の明るさ (RGB) 各 k は物体の反射特性 (RGB) n L n I I k I k N L k R V k I k I a a i d s r r t t i 1 環境光 拡散反射光 鏡面反射光 ( 局所照明 ) 鏡面反射光 ( 大域照明 ) 透過光 それぞれの光源からの光 ( 局所照明 ) 大域照明

光のモデル ( 復習 ) 光源 N L R 拡散 鏡面反射光 ( 光源から来る光 ) 環境光 ( 周囲から来る光 ) 鏡面反射光 ( 映り込み ) n L 透過光 n I I k I k N L k R V k I k I a a i d s r r t t i 1 環境光 拡散反射光 鏡面反射光 ( 局所照明 ) 鏡面反射光 ( 大域照明 ) 透過光 それぞれの光源からの光 ( 局所照明 ) 大域照明

OpenGL の光源処理 光のモデルにもとづき 各光源による輝度を RGBごとに次式で計算して加算 Color L M max l n, 0 L M max{a, B} は A, B のうち大きい値を使用内積が負の場合は その項は 0 になる 全ての値を足し合わせた結果は 0.0~1.0 の範囲に丸められる L, ambient L, diffuse Lspecular は光の輝度 M, ambient M, diffuse M, specular M pecular_factor は素材の特性 s ambient ambient diffuse diffuse M s pecular_factor max sn, 0 L M specular specular

光源情報の設定 光源情報の設定 gllight(), gllightv() 関数を使用 光源番号 設定パラメタの種類 設定する値 を指定 gllight() 関数はスカラ値を設定 gllightv() 関数はベクトル値を設定 光源処理を有効にする 光源処理を有効にする glenable(gl_lighting) 各光源の影響を有効にする glenable(gl_light0)

光源情報の設定の例 (1) 初期化処理での設定 float light0_position[] = { 10.0, 10.0, 10.0, 1.0 }; float light0_diffuse[] = { 0.8, 0.8, 0.8, 1.0 }; float light0_specular[] = { 1.0, 1.0, 1.0, 1.0 }; float light0_ambient[] = { 0.1, 0.1, 0.1, 1.0 }; gllightfv( GL_LIGHT0, GL_POSITION, light0_position ); gllightfv( GL_LIGHT0, GL_DIFFUSE, light0_diffuse ); gllightfv( GL_LIGHT0, GL_SPECULAR, light0_specular ); gllightfv( GL_LIGHT0, GL_AMBIENT, light0_ambient ); glenable( GL_LIGHT0 ); glenalbe( GL_LIGHTING ); 詳細は 後ほど説明

光源情報の設定の例 (2) 変換行列の変更後に 光源位置を再設定 光源計算は カメラ座標系で適用されるため void display( void ) { // 変換行列を設定 ( ワールド座標系 カメラ座標系 ) glmatrixmode( GL_MODELVIEW ); // 光源位置を設定 ( 変換行列の変更にあわせて再設定 ) float light0_position[] = { 10.0, 10.0, 10.0, 1.0 }; gllightfv( GL_LIGHT0, GL_POSITION, light0_position );

サンプルプログラムの構成 ( 確認 ) main() 関数 initenvironment() 関数 display() 関数 ユーザ プログラム 初期化処理 描画 GLUT glutmainloop() reshape() 関数 mouse() 関数 motion() 関数 ウィンドウサイズ変更 マウス処理 入力待ち処理 idle() 関数 アニメーション処理 main() 関数 終了処理

光源の種類と設定方法 (1) 平行光源 (x,y,z) の方向から平行に光が来る 光源位置のw 座標を0.0に設定 無限遠に光源があると見なせる 点光源 (x,y,z) の位置に光源がある 光源位置のw 座標を1.0に設定

光源の種類と設定方法 (2) スポットライト光源 点光源にさらに スポットライトの向き 角度範囲などの情報を設定したもの 指定した方向 角度にのみ有効な点光源 光源の減衰も設定可能 点光源 スポットライト光源から距離が離れるほど暗くなるような効果を加える 設定方法の説明は省略

光源情報の設定の例 サンプルプログラムの例 float light0_position[] = { 10.0, 10.0, 10.0, 1.0 }; float light0_diffuse[] = { 0.8, 0.8, 0.8, 1.0 }; float light0_specular[] = { 1.0, 1.0, 1.0, 1.0 }; float light0_ambient[] = { 0.1, 0.1, 0.1, 1.0 }; gllightfv( GL_LIGHT0, GL_POSITION, light0_position ); gllightfv( GL_LIGHT0, GL_DIFFUSE, light0_diffuse ); gllightfv( GL_LIGHT0, GL_SPECULAR, light0_specular ); gllightfv( GL_LIGHT0, GL_AMBIENT, light0_ambient ); glenable( GL_LIGHT0 ); glenalbe( GL_LIGHTING ); 光源位置の w 座標が 1.0 なので 点光源となる LIGHT0 の 光源の位置 種類 拡散反射成分の色 鏡面反射成分の色を設定 LIGHT0 の 環境光成分の色を設定

光源位置 向きの設定 ( 注意 ) 光源の位置 向きは 描画関数内で毎回更新 光源の位置 向きは 現在のカメラ座標系にもとづいて設定されるため カメラが移動 回転する度に設定し直す必要がある void display( void ) { // 光源位置を設定 ( 変換行列の変更にあわせて再設定 ) float light0_position[] = { 10.0, 10.0, 10.0, 1.0 }; gllightfv( GL_LIGHT0, GL_POSITION, light0_position );

一般的な光源の設定方針 LIGHT0 を使って環境の主な光源を設定 その環境の明るさに応じて環境光を設定 全体の明るさを決めるような 平行光源 or 点光源を設定 LIGHT1 以降を使って追加の光を設定 電灯や車など 空間中にあるオブジェクトが周囲のオブジェクトを照らすような場合に 点光源やスポットライトを追加する 2 番目以降の光源では 環境光はあまり大きくしないことが多い

素材の設定 頂点の色の設定 glcolor() 関数 デフォルトでは 頂点の環境特性と拡散反射特性を同時に設定 ( 個別に設定することも可能 ) その他の素材特性を個別に設定 ( 詳細は省略 ) glmaterial() 関数 環境特性 拡散反射特性 鏡面反射特性 鏡面反射係数など Color L M max l n, 0 L M ambient ambient diffuse diffuse M s pecular_factor max sn, 0 L M specular specular

ラジオシティ

ラジオシティ 環境光をより正しく計算するための方法 面同士の相互反射を考慮 各面ごとの環境光を計算する方法 これまでのモデルでは 環境光は一定と仮定していたため 周囲の明るさによる影響を表現できなかった どのレンダリング手法とも組み合わせが可能 ただし非常に計算時間がかかる n L n I I k I k N L k R V k I k I a a i d s r r t t i 1 環境光 拡散反射光 鏡面反射光 ( 局所照明 ) 鏡面反射光 ( 大域照明 ) 透過光

レイトレーシングの限界 反射光や透過光はほぼ正しく計算できる 環境光を正しく計算するのは難しい 環境光を計算しようとすると レイと物体の衝突点から 無数の方向にレイを飛ばす必要があるため 基礎と応用図 8.2

ラジオシティの具体例 レイトレーシングとラジオシティの比較 鏡面反射による映り込み ( レイトレーシング ) と 拡散反射による色の影響 ( ラジオシティ ) CG 制作独習事典 p.5

レイトレーシング法鏡面反射により 周囲の一点の色が映り込む ラジオシティの具体例 ラジオシティ法周囲の面との明るさの相互影響を計算するこ レイトレーシングとラジオシティの比較 鏡面反射による映り込み ( レイトレーシングとで 周囲の面からぼ ) と 拡散反射による色の影響 ( ラジオシティ ) んやりと照らされる効果を表現 CG 制作独習事典 p.5

ラジオシティの考え方 (1) ラジオシティ ( 熱の放射エネルギー ) の考え方にもとづく 面ごとの環境光の計算 面同士の相互反射モデル ある面の明るさが 別の面の明るさに どの程度影響を与えるか ( フォームファクタ ) を計算 面同士が向き合っており 障害物がなければ 大きな影響を与える ( 一方が明るくなると もう一方も照らされて明るくなる ) 基礎と応用図 9.3

ラジオシティの考え方 (2) フォームファクタをもとに 全ての面同士の明るさがつり合うような各面の明るさを計算 エネルギーの分散と同様の考え方にもとづいて 光源となる面の明るさを フォームファクタの大きさに応じて 他の面に分散させていく フォームファクタ ( 面同士の明るさの影響 ) 明るさがつり合うように 光源の明るさを分散 光源となる面

ラジオシティの計算手順 ポリゴンを細かい面に分割 フォームファクタを計算 光源の情報などを設定 連立方程式を解く 計算結果の明るさを使ってレンダリング 基礎と応用図 9.4

ラジオシティ計算のための分割 もとのポリゴンモデルを細かく分割する それぞれの分割ポリゴンごとに フォームファクタによる明るさを計算 ある程度細かく分割する必要がある 3DCG アニメーション図 2.38

フォームファクタの計算 フォームファクタの計算モデル 球面に投影した面積を水平面に射影し その面積の広さによりフォームファクタを計算 基礎と応用図 9.7

フォームファクタの計算 障害物を考慮した計算 ( ヘミキューブ法 ) ある面の周囲にZバッファを持った面を置く 全ての面を周囲の面に描画 それぞれの面の最終的な面積によってフォームファクタを決める 基礎と応用図 9.8

連立方程式の計算 面の光の計算式 B E B F i i i j ij j 1 連立方程式 n Bi i 光の強さ 反射率 Ei F ij 放射光の強さ フォームファクタ 1 1F11 1F12 1F1 n B1 E1 2F21 1 n 2F22 2F 2n B 2 E 2 E BF F F 1 F B E n n1 n n2 n nn n n i i j ij j 1 ガウス - ザイデル法などを使って 解が収束するまで繰り返し計算

ラジオシティの具体例 基礎と応用図 9.1, 9.2 基礎と応用図 5.4

ラジオシティの特徴 どのレンダリング手法とも組み合わせ可能 レンダリングの前処理として計算される 光源や物体が動かなければ再計算の必要がないので リアルタイム処理でも利用可能 前もってラジオシティを計算した結果を保存しておく ウォークスルーなどでの利用 自然な照明の効果を計算するためには必須の技術

他の大域照明計算手法 モンテカルロ法 1 本のレイを追跡するレイトレーシングとは異なり 複数の経路を追跡する手法 乱数にもとづいて 反射面から複数の経路を生成する フォトンマッピング法 光源から放射される光を追跡することで 各点における明るさを計算する手法基礎と応用図 8.2

影の表現

影の表現方法 レイトレーシングやラジオシティなどを用いることで 影も自動的に表現できる CG 制作独習事典 p.5 コンピュータゲームなどで使用するのは難しい 影は非常に重要なので 他の手段で特別に実現

影の擬似的な表現方法 テクスチャマッピング 投影ポリゴン シャドウ ヴォリューム シャドウ マップ など ここでは各手法の説明は省略

BRDF

BRDF BRDF Bi-directional Reflectance Distribution Function 双方向反射分布 現実世界の物質の反射特性を正確に再現するための技術 イメージベースドレンダリングの考え方を発展させたもの

反射特性のモデル フォンのモデル 拡散反射光 I k I N L d d l 鏡面反射光 I ki RV d s l n 現実の物体 表面は平らではなく 乱反射などが起こる モデルとのずれが生じる 基礎と応用図 2.9 基礎と応用図 2.10

BRDF の考え方 反射特性を表現 カメラ方向 光源方向の関数によって表される 法線に対するカメラ方向 光源方向 特殊な装置を使って実際の素材から計測 CG WORLD 2004 年 12 月号

Debevec 2000 サンプル画像の取得

映画への応用 Spider-Man 2 完全 CG のキャラクタの 顔の皮膚の質感を再現 CG WORLD 2004 年 12 月号 Spider-Mann 2 Sony Pictures

映画への応用 Matrix (2, 3) 完全な CG キャラクタに BRDF が使われた最初の例 Matrix Warner Bros. CG WORLD 2004 年 12 月号

マッピング

マッピング マッピング 面を描画する時に 面の表面に画像を貼り付ける技術 複雑なモデリングをすることなく 細かい模様などを表現できる 基礎知識図 3-19 基礎と応用図 5.2

マッピングの方法 物体への画像の貼り付け方 マッピングの方向や繰り返しの方法 uv 座標系 基礎と応用図 5.3 テクスチャ画像の座標は (u,v) で表せる モデルデータの各頂点 (x,y,z) ごとに 対応するテクスチャ画像の (u,v) 座標を与えておく

マッピングの例 人体モデルへのマッピングの例 v 各頂点にテクスチャの (u,v) 座標を設定 u

自動マッピングの方法 ラッピング 各頂点の (u,v) 座標を自動的に計算する方法 主に単純な物体へのマッピング時に使用 平行ラッピング 曲座標ラッピング 基礎知識図 3-22

手動マッピングの方法 手動でのマッピング 複雑な物体へのマッピングをする時は モデリングをする人が手動で (u,v) 座標を設定 マッピング作成の手順 1. 最初にまずモデルを作成 2. モデルの展開図を作り モデルの各頂点に対応する (u,v) 座標を設定 ( モデリング用ソフトの機能 ) 3. テクスチャ画像を描く 後からモデルを大きく変更することは難しい

特殊なマッピング バンプマッピング 透過率や反射率のマッピング 環境マッピング

バンプマッピング バンプマッピング 面の色ではなく 法線を変化させる方法 法線を変化させることで 見た目の質感を変えることができる ピクセルの周囲との輝度の差に応じて法線を傾ける 形状そのものを変えるわけではないので 輪郭線はそのままであることに注意 各ピクセルごとに法線と色を計算することが必要になる ( フォンシェーディングとの組み合わせ )

バンプマッピングの原理 基礎と応用図 5.9 テクスチャに格納された各点の高さから 各点の傾き ( 法線を計算 ) テクスチャから計算された法線に従って各点の法線を変化

バンプマッピングの例 基礎と応用図 5.9 CG 制作独習事典 p.13

反射率 透過率のマッピング 反射率や透過率をマッピングすることも可能 透過率のマッピングは 髪の毛や破れた着物などを表現する時などに用いられる 細かい形状を一枚の大きなポリゴンで表現できる [Koh and Huang, CAS 2001]

環境マッピング 環境マッピング 物体の周囲の風景の画像を テクスチャマッピングを使って物体に貼り付けることで 周囲の風景の映り込みを表現する CG 制作独習事典 p.17

環境マッピングの手順 物体の周囲の画像をレンダリング カメラを物体の中心に置いて 各方向を見たときの画像を生成 例えばキューブ環境マップならば 6 枚分の画像を生成 周囲の物体が動かなければ 周囲の画像の生成は最初の一回だけで良い (2 回目からは高速に描画可能 ) レンダリングした画像を物体に貼り付ける テクスチャ座標は 各点の法線から自動的に計算できる

環境マッピングの例 CG 制作独習事典 p.17

マッピングの合成 複数の画像によるマッピング 実際の応用では 複数のマッピングを重ね合わせる ( 合成する ) 場合が多い 基本となる模様 (1 枚 ) + 環境や光などの影響 (1~ 数枚 ) 昔のハードウェアは 1 枚しかマッピングができなかった 最近のハードウェアは 4 枚 ~16 枚程度の同時マッピングに対応している

まとめ 前回の復習 シェーディング 光のモデル スムーズシェーディング シェーディング ( 続き ) OpenGL での光源情報の設定 ラジオシティ 影の表現 BRDF マッピング

次回予告 OpenGL 演習 シェーディング ( 光源情報の設定 ) マッピング