2015/1/6 コンピュータグラフィックス特論Ⅱ 第11回 今回の内容 • アニメーションプログラミング コンピュータグラフィックス特論Ⅱ • 3次元グラフィックスの最新技術 – イメージベースドレンダリング – BRDFによる質感の表現 – HDRレンダリング 第11回 グラフィックスの最新技術 システム創成情報工学科 尾下真樹 アニメーションプログラミング • アニメーション速度を一定に保つための工夫 – アイドル処理が呼ばれる毎に一定時間アニメー ションを進めるような単純なプログラムでは、コ ンピュータの性能や画面サイズなどにより、実行 速度が大きく変わってしまう アニメーションプログラミング – アニメーション処理(アイドル処理)が一定周期 で実行されるかどうか、保証はない – 描画速度に合わせて、アニメーション速度を自 動的に調節するような工夫が必要 Δt t GLUTのイベントモデル(復習) • イベントドリブン – 描画処理やアイドル 処理を設定しておく ことで、必要なときに それらが呼ばれる – アイドル処理は、定 期的に呼ばれる • アニメーション処理を ここに記述 • どれくらいの頻度で 呼ばれるかは不明 ユーザ・プログラム GLUT アニメーションの処理 • 非マルチプロセス環境(ゲーム機など) – 常に一定のタイミングで処理ができる 初期化処理 移動 描画 移動 描画 移動 描画 ウィンドウループ • マルチプロセス環境 (Windows, Java など) – どのようなタイミング・頻度で処理が呼ばれるか 分からない 時間 OS 終了処理 時間 1/30秒など(早く終わったら一定タイミングまで待つ) 描画 アイドル処理 移動 描画 移動 描画 移動 描画 移動 描画 時間 1 2015/1/6 コンピュータグラフィックス特論Ⅱ 第11回 再生速度の問題 再生速度を一定にする工夫 • 1度の移動処理の度に一定量移動を行う、 というプログラムになっていると・・・ • アイドル関数(移動処理)での移動量を調整 – 移動処理が呼び出される頻度によって、移動速 度が異なってしまう 実行回数が多いので、結果的に沢山移動 移動 描画 移動 描画 移動 描画 時間 実行回数が少ないので、結果的に少しだけ移動 移動 描画 移動 描画 時間 – 現在の時刻を取得 → curr_time – 前回呼ばれたときとの時間の差を計算 delta = curr_time – last_time; – delta の大きさに合わせて、物体を動かす – 今回の時刻を記録 last_time = curr_time; – last_time は、静的である必要がある 移動 last_time 時刻の取得 • C標準関数 描画 delta 移動 時間 curr_time → 次回の last_time になる 今回の内容 • アニメーションプログラミング – time() 秒単位の精度でしか取得できない • Windows API 関数 – timeGetTime() OS起動時からの時刻をミリ秒で 返す – OSによっては、精度が悪い(10ミリ秒程度)ので、 timeBeginPeriod() で調整 • 3次元グラフィックスの最新技術 – イメージベースドレンダリング – BRDFによる質感の表現 – HDRレンダリング • Java – java.lang.System.currentTimeMillis() 参考書 • 「コンピュータグラフィックス」 CG-ARTS協会 編集・出版(3,200円) • 「3DCGアニメーション」 栗原恒弥 安生健一 著、技術評論社 出版(2,980円) イメージベースド レンダリング (モデリング) • Image-Based Rendering – Paul Debevec (http://www.debevec.org/) • HDRレンダリング – http://www.watch.impress.co.jp/game/docs/ 20050525/3dhl2lc.htm 2 2015/1/6 コンピュータグラフィックス特論Ⅱ 第11回 3Dグラフィックスと実写の関係 • 3Dグラフィックス 問題点 • 3Dグラフィックスでは、現実世界同様の形 状・テクスチャ・素材(反射特性)を作成する のに多くの時間がかかってしまう – 制作には労力がかかる – 存在しないものも表現可 – 人間などの再現は難しい • 実写 – 実物をそのまま撮影できる – 人間などは実写の方が向いている Jurassic Park III Universal Pictures • 従来は、両者をうまく使い分けて合成する、 という方法がとられてきた イメージベースド レンダリング (モデリング) • 実際の画像から、3Dモデルの情報を取得 – 形状、テクスチャ、反射特性 • 入力画像は、必ずしも、実写画像である必要はない • 下は、複数画像から、1枚のテクスチャを取り出す例 • グラフィックスだけ、実写だけでは再現でき ないものもある – 例: 激しく吹き飛ばされる人間など → 解決方法 – 現実世界のデータを取り込んで、3Dグラフィック スの世界を作る イメージベースド レンダリング (モデリング) • 主に2つの方向性がある • 3Dモデルの正確な形状・素材・反射特性な どを画像から取得する – レンダリングには、一般的な 3Dグラフィックスの 方法を使う • 取得した画像を使って、物体をそのまま描画 – 画像を使ったレンダリングに特化した、モデル表 現・レンダリング手法を使う 参考書 図4.18 [Pighin 98] 3Dモデル・テクスチャ取得の例 形状データの推定 • 有名な UC Berkeley の塔の例(1997年) – Debevec ら – http://www.debevec.org/ 取得した形状データ+テクスチャを使って描画 3 2015/1/6 コンピュータグラフィックス特論Ⅱ 第11回 映画などへの応用 • Matrixの有名なシーン – 背景はすべてCGで描画 周囲の環境(光)を取得 • 周囲から得た環境光の情報を人物の顔 (CG)のレンダリングに適用 • 前のスライドで紹介した 手法が使われている – 人物については実写 • 俳優の周囲に並べた 多数のカメラで撮影 • 各カメラの画像を順に 補間 教科書 図5.46 Debevec 2002 Matrix Warner Bros. 画像をそのまま描画する方法 • 画像から奥行き値を計算 • 奥行き値を使い、異なる視点の画像を生成 BRDF – もとの画像で隠れている箇所は描画できないこ とに注意 教科書 図7.3 [McMillan 1999] BRDF • BRDF – Bi-directional Reflectance Distribution Function – 双方向反射分布 • 現実世界の物質の反射特性を正確に再現 するための技術 • イメージベースドレンダリングの考え方を発 展させたもの 反射特性のモデル • フォンのモデル – 拡散反射光 I k I N L d d l – 鏡面反射光 I d ks Il R V • 現実の物体 n 基礎と応用 図2.9 – 表面は平らではなく、 乱反射などが起こる – モデルとのずれが生じる 基礎と応用 図2.10 4 2015/1/6 コンピュータグラフィックス特論Ⅱ 第11回 BRDFの考え方 サンプル画像の取得 • 反射特性を表現 – 視点方向・光源方向の関数によって表される • 法線に対する視点方向・光源方向 – 特殊な装置を使って実際の素材から計測 Debevec 2000 CG WORLD 2004年12月号 映画への応用 • Spider-Man 2 – 完全CGのキャラクタの、顔の皮膚の質感を再現 映画への応用 • Matrix (2, 3) – 完全なCGキャラクタにBRDFが使われた最初の例 Matrix Warner Bros. CG WORLD Spider-Mann 2 2004年12月号 Sony Pictures CG WORLD 2004年12月号 デジタル・エミリー プロジェクト • 俳優の表情・質感をCGで再現(2010) HDRレンダリング http://gl.ict.usc.edu/Research/DigitalEmily/ 5 2015/1/6 コンピュータグラフィックス特論Ⅱ 第11回 HDRレンダリング • High Dynamic Range(HDR) – 人間の目がとらえることのできる輝度の範囲は、 かなり広い • R:G:B = 8:8:8 = 24ビットで表せる範囲より広い – 浮動小数点を使って、各ピクセルのより正確な 輝度(色)を表現する • HDRレンダリング(HDRR) – High Dynamic Range を考慮して、浮動小数点 バッファ(32ビット or 64ビット)にレンダリング – 画面に表示する際に、24ビット画像に変換 参考資料: http://www.watch.impress.co.jp/game/docs/20050525/3dhl2lc.htm 通常のレンダリング HDRRの概要 • 人間の視覚レンジは広い • 表示の解像度自体は変わらない • 周囲の明るさに応じて、そのうち一部を認識 • 計算の段階でHDRで計算 • 認識レンジは動的に調節される • 通常は、適切な固定の認識レンジに24ビット を割り当てることで、レンダリング 視覚レンジ 認識レンジ(暗室) – 24ビットよりも高い精度・広い範囲を使用 • 適切な範囲を表示色にマッピングする – シーンの明るさに応じて認識レンジを動的に調節 視覚レンジ 認識レンジ(屋外) HDRRによる効果 • 周囲の明るさの変化によるHDRRの変化 – 暗いところから明るいところへ出たときの効果な どが再現できる 認識レンジ(自動判定) 明るさの変化による効果 視覚レンジ 認識レンジ(自動判定) 認識レンジ(自動判定) 急に明るいところに出る(右半分がHDR) 徐々に目が慣れる • 激しく明るいところの表現 – まぶしく輝くような効果を再現できる • 計算の精度が上がる – いままでの方法では暗くて描画されなかった物 体も、強い光が当たると見えるようになる • 暗い素材 × 非常に明るい光 = 普通の色で見える 参考資料: http://www.watch.impress.co.jp/game/docs/20050525/3dhl2lc.htm 6 2015/1/6 コンピュータグラフィックス特論Ⅱ 第11回 激しく明るいところの表現 疑似HDRR • 太陽光源、太陽光源が直接反射する場所 • 激しく明るい箇所に特殊な効果を適用する 手法は、これまでにも使われていた – 激しく輝いて見える – 周囲のピクセルまでぼんやりと明るくなる – フレア効果(光源が直接見えるときに描画) • 周囲のピクセルの輝度も何らかのルールで明るくする Hal Life 2 「DOUBLE S.T.E.A.L.」(ぶんか社) 「Incoming」(Rage) HDRRの他の応用例 川瀬正樹 (ぶんか社) まとめ • アニメーションプログラミング • 3次元グラフィックスの最新技術 – イメージベースドレンダリング – BRDFによる質感の表現 – HDRレンダリング vVidia http://www.nzone.com/object/ nzone_timbury_downloads.html Age of Empires III 次回予告 • 最終レポート課題 プレゼンテーション 最終レポート課題 • レポート課題 – 講義で学習した内容を利用して、何らかのプログラムを作 成する • • • • なるべく実用的なプログラムの方が望ましい 講義で学習した範囲外の技術を自分で勉強して使っても構わない なるべく2つ以上の技術を組み合わせることが望ましい 昔自分で作成したプログラムの改良でも良い (追加内容のみを評価対象とする) – 1月12日(月) プログラム+スライド提出締め切り • 発表(プレゼンテーション) – 1月13日・1月20日の授業中 – 1人 発表 8分・質疑 5分(予定) 7
© Copyright 2024