SURPR!SE
サプライズ
2014.06.25
リアルタイムレンダーにおけるベイクシャドウ
リアルタイムレンダーで良い結果を得るための効果的で典型的なテクニックは UV マップ上で静的光源で焼き込む方法である。これによって、3D環境が不十分あっても、シーン全体から大きな問題が起こるのを避けることができる。もしこの方法を最適化するのに十分な静的なシーンならば、かなり現実的なアウトプットで見る人の目をごまかすことができる。これは特にアーキテクチャルレンダリングにおいて顕著であるため、このテクニックがよく使われる理由となっている。
かなり高機能なアーキテクチャルレンダリング、Verold の WebGLを用いて解説してみよう。それから、私たちのものを試すのを待って、シーンが改善されるところを見てゆきたい。
Model & Texture: b2c
たとえ、低ポリゴンがリアルタイム 3Dのゴールデンルールだとしても、可視的な要素をやや動かすことにより、メッシュレベルとシーンでの両方で、ノイズが挿入されるべきである。さらに、若干の浸食をシーンに加えるため、少量のノイズもジオメトリー自体に注入されるべきだ。ここでいう浸食とはシーンの劣化を意味するものでなく、実際のオブジェクトの時間の流れや雰囲気と言ったものを表すのに良い影響を及ぼすものである。
基本的な環境マッピングも通常のUVマップを使うように、更なる現実味をもたらすためにはノイズと時間的アーチファクトが、例えば豊かな光源を得るような方法で、なだらかにマップに追加されるべきである。こうして、光とディテールへの焦点を得ることよって、シーンのデザインはより良い結果を得ることができる。これによって、雰囲気のある人工的な効果や後処理レンズ動作が生み出される。もしこれらを適度に使うならば、カメラ自体に多くの生命を与えるものとなる。ゲームエンジンはこのUXを、カメラの各動きにいくつかのモーションブラーを追加するものへと近づけた。Webへの使用としては、ソフトレンズフレアーによってかなり豊な表現を追加することができ、私たちは32-bit 3Dビデオゲームハックとトリックからリアリズムついて多くを学ぶことができた。
ゲーム開発者はしばしば、実験として、またシェーダーテクニックの練習として、WebGLを使用する。静的なシーンでは、環境光のための照射照度量が素晴らしくソフトなタッチを持ち、また多くのリアリズムを与える。このテクニックは初期段階にライトマップを焼き込むのに優れた方法であり、その後もライトの設定を変更する必要がある時にだけマップをアップデートすれば良い。
ゲーム開発者はしばしば、実験として、またシェーダーテクニックの練習として、WebGLを使用する。静的なシーンでは、環境光のための照射照度量が素晴らしくソフトなタッチを持ち、また多くのリアリズムを与える。このテクニックは初期段階にライトマップを焼き込むのに優れた方法であり、その後もライトの設定を変更する必要がある時にだけマップをアップデートすれば良い。
では、リアルタイム CGは基本的にはどこで失敗したのか?最大の問題の一つとして残っているのはアンチエイリアスである。正しいアンチエイリアスは深度バッファによって考慮されるべきであるが、それはコンピュータのパワーを著しく消耗するのである。異なる二つのメッシュ扱う時のアンビエントオクルージョンも、問題点が残っている。それは、最新のAPIの先進のリアルタイムレンダリングテクニック上だとしてもリアリズムを壊すものである。