動的環境マッピングと リアルタイムモーションブラー 川瀬正樹 http://www.daionet.gr.jp/~masa/ 清水亮 株式会社ドワンゴ 動的環境マッピング • 環境マッピングとは – 周囲の映りこみをテクスチャによって擬似的に 表現 • 原理 ①周囲の背景を描いた環境マップを作成 ②環境マップをテクスチャとし、視線の反射方向 からテクスチャ座標を決定 問題点およびその解決方法 • 問題点 – 基本的に静的であり、周囲のオブジェクトの変 化にリアルタイムに対応できない • 解決方法 – 環境マップを動的に作成 環境マップの座標系 • Sphereマップ – リアルタイムでは一般的 – 球状の鏡を無限遠から撮影した画像 – 円形部分に360度全景が映りこむ 前 上 後 斜め後 環境マップ 反射した視線の方向ベクトルか ら(u,v)の計算 m 2 x y (z 1 ) 2 x u 0.5 m y v 0.5 m 2 2 動的環境マップの作成 • 環境マップの作成 ①周囲のオブジェクトの位置から、各頂点の方 向ベクトルを計算 ②方向ベクトルから環境マップ上の座標(u,v)を 計算 ③(u,v)を元に環境マップに描画 • 実際の描画 作成した環境マップをテクスチャに設定して実際 の描画 環境マップとレンダリング結果 作成した環境マップ 最終レンダリング結果 動的環境マップの考察 • 作成した環境マップをテクスチャにセットす る部分がネックとなり、速度が遅い • テクスチャへの直接レンダリングがサポー トされることにより解決 Cubic Environment Mapping 立方環境マッピングについて Sphere環境マップの問題点 • 歪みが大きい • 直線をレンダリングする際に彎曲させなく てはならない リアルタイムな環境マップ生成に関して障害 キューブ環境マップ TOP TOP LEFT FRONT RIGHT BACK RIGHT FRONT BOTTOM 展開図 環境立方体 キューブ環境マッピングによる 動的環境マップ実現の手順 1. あるメッシュについて、 重心を中心とした環境立方体を想定する 2. 環境立方体のそれぞれの面について、 レンダリングする • テクスチャに対するレンダリングを行う 3. キューブ環境マップを行う キューブ環境マップの 長所と短所 • 長所 – – – – 理解しやすい 歪みが少ない 特異点がない ハードウェア化が容易 • 短所 – レンダリング時間が増加する • 環境マップテクスチャをレンダリングするため 動作原理 1. 頂点ごとに、 反射ベクトルの各要素を計算する 2. 反射ベクトルの各要素から、 最も絶対値の大きい方向をもとめ、 使用するテクスチャを決定する 3. テクスチャが決定したら、残り二つの要素 からテクスチャ座標を求める。 モーションブラー 時間軸のアンチエイリアシング モーションブラー • 描画フレーム間の積分をレンダリング • 描画フレームよりも 滑らかなアニメーションが可能 – 時間軸に対するアンチエイリアシング 残像とモーションブラー • 残像 – 1フレーム前の映像が一様に薄くなって残る – 1フレーム前の画像をαブレンディングすること で再現可能 • モーションブラー – カメラのシャッターが開いている間、 フィルムに時間内の映像が全て撮影される 現象を再現したもの 残像とモーションブラー • 残像 0.5 a n n n 6% 12.5% 25% 50% 現時 t(フレーム) 飛び飛びの映像をαブレンディング • モーションブラー 1 na n n 現時 単位時間内の画像を補間 t(フレーム) モーションブラーの表現手法 • 星など「点」のオブジェクト 線でモーション間を連結(色は線の長さの分だ け暗く描画) • 上記以外 時間軸に対しスーパーサンプリング(複数回の レンダリング結果を平均化して表示) スーパーサンプリングの方法 方法①1/n輝度でn回加算描画 16ビット程度のバッファでは画質が劣化(nが大 きくなるほど顕著) 方法②n回目はα値1/nでアルファブレン ディング 比較的劣化が少ない • ②の手法の方が優れている 陰面問題 • 背景など、実際問題としてz値が一定とみ なせるものだけにブラーをかける場合 通常の描画でOK • ポリゴンなど、陰面処理が必要になるもの 普通に描画すると、ポリゴンが重なった場合に 描画が破綻(奥にある、つまり最終的に陰面 消去されるポリゴンまで平均化の対象となる ため) 陰面問題の解決方法 • 最終的に見えるポリゴン(ピクセル)だけを 描画できれば良い ①zバッファのみを先にレンダリング(深度イ メージを先に完成) ②zイメージを作成後、カラーバッファへレン ダリング 実際の描画手順 • 準備 カラーバッファをクリア • 描画(n=1 ~ 任意の回数ループ) ①zバッファをクリア ②zバッファのみをレンダリング ③カラーバッファのみをα 値1/nでアルファブレ ンディングしながらレンダリング モーションブラーの考察 • 速度的に問題あり(zバッファとカラーバッ ファへの2回描画がネック) • テクスチャに直接レンダリングが可能かつ、テクス チャのサイズがビューポート以上サポートしている 環境なら、このような二度手間は不用 • 大幅な速度アップが可能 • リフレッシュレート以上の描画フレームを保 てる速度になれば、非常に有効
© Copyright 2024 ExpyDoc