アンビエント・オクルージョンは、現実世界での光の仕組みを模倣するテクニックです。角や折り目、物体の隙間など、狭い空間で光がどれだけ遮られるかを判断します。このような部分は、光が届きにくいため暗く見えます。
太陽やランプなど特定の光源から来る直接照明とは異なり、アンビエントオクルージョンは間接照明を処理します。他のライティングテクニックと併用することで、柔らかな影を作り出し、奥行きを加えて、シーンが平坦になりすぎるのを防ぎます。多くの3Dレンダリングプロセスでは、アンビエントオクルージョンを個別にレンダリングし、最終的な画像と組み合わせることで、リアリズムとディテールを向上させます。
アンビエントオクルージョンの仕組みは、各ピクセルの周囲のジオメトリをサンプリングして、サーフェスの各部分にどれだけの光が届いているかをチェックすることです。これは、オブジェクト上のある点から光線を照射し、そのうちの何本が近くのサーフェスによって遮られるかを見ることで行われます。囲まれている部分は、光を受けにくく、暗く見えます。そして、これらの光線の移動距離は影の表現に影響します。短い光線はソフトで微妙な陰影を作り、長い光線はより強くはっきりとした影を作り出します。
アンビエントオクルージョンの計算方法は、必要なディテールのレベルやレンダリングの速さによって異なります。高品質のオフラインレンダリングでは、処理能力を節約するために、AOを事前に計算してテクスチャに保存することがよくあります。この方法は 「ベイク 」と呼ばれます。ビデオゲームのようなリアルタイムアプリケーションでは、AOはポスト処理エフェクトを使用して即座に作成されるため、パフォーマンスを低下させることなくスムーズに実行できます。
リアルタイムレンダリングでは、アンビエントオクルージョンをスクリーンスペース技法で作成することがよくあります。スクリーン空間アンビエントオクルージョン(SSAO)とホライズンベースアンビエントオクルージョン(HBAO)の2つがよく使われるテクニックです。
スクリーンスペースアンビエントオクルージョン(SSAO)は、アンビエントオクルージョンをシミュレートするための高速で広く使われている手法です。3Dシーン全体ではなく、画面上に見えるオブジェクトのみを分析することで、光がどれだけ遮られているかを推定します。そのため、効率的ではありますが、より高度な技術に比べると緻密さに欠けます。SSAOは、シェーディングと奥行きを追加するためにゲームでよく使用されます。Crytek社によって、オリジナルの*Crysis*ゲームで初めて導入さ れました。こちらのビデオで、当時の様子を見ることができます:
NVIDIAが開発したHBAO(Horizon-Based Ambient Occlusion)は、SSAOの改良版です。光がどの程度遮られるかを判断するためにより多くのサンプルを計算し、より滑らかでリアルな影を実現します。しかし、この高品質化には、処理能力の向上という代償が伴います。HBAOがより良い結果を出す一方で、SSAOはより高速で、多くのリアルタイム・アプリケーションに依然として効率的であるため、依然として人気があります。
リアルタイムレンダリングは高速に実行する必要があるため、アンビエントオクルージョン(AO)はフレームレートの低下を避けるために最適化する必要があります。一般的な方法の1つは、低解像度でAOを計算し、その結果をぼかしてノイズを除去することです。こうすることで、リアルなエフェクトを作りつつ、処理負荷を減らすことができます。パフォーマンスを向上させるもう1つの方法は、AO計算を保存してフレームごとにやり直す必要がないようにすることです。アンビエントオクルージョンの変化はダイレクトライティングと違ってゆっくりなので、以前の計算を保存して再利用することで、計算パワーを節約できます。また、AOをシーンの暗い部分など特定の領域に限定することで、不要な計算を避けることができます。最近のグラフィックカード(GPU)の多くはAOをサポートしているため、ゲームやリアルタイムアプリケーションでは、パフォーマンスを大きく低下させることなく、より優れたビジュアルを実現できます。ゲーム開発者はAO設定を提供することが多く、プレイヤーはハードウェアに応じて効果を調整し、高品質なシェーディングとスムーズなパフォーマンスのバランスをとることができます。
アンビエントオクルージョンを適切に使えば、3Dシーンをより自然でリアルに見せることができます。必要な部分にソフトで陰影のあるディテールを加えることで、オブジェクトが光と影響し合う様子を表現できます。このエフェクトは、オブジェクトのグラウンディングに特に有効で、オブジェクトが不自然に浮いているのではなく、本当に環境に属しているように感じさせます。また、アンビエントオクルージョンは、次のPoly Playgroundのビデオで紹介されているように、汚れや泥などの他のマテリアルを追加するためのマスクとして機能するなど、AOをユニークに応用することもできます:
アニメーションやビジュアルエフェクトでは、アンビエントオクルージョン(AO)がマテリアルに深みとディテールを加え、布地のひだや壁のレンガの隙間などの特徴を明確にします。明るいシーンでも、AOは、光が十分に当たらない部分に緩やかな陰影をつけることで、表面が平坦に見えすぎるのを防ぎます。アンビエントオクルージョンを理解し最適化することで、3Dアーティストや開発者はレンダリングをよりリアルに見せることができます。高画質の映画やリアルタイムのビデオゲームに関わらず、AOは3Dグラフィックスに奥行きや影、リアルな照明効果を加えるための重要なツールです。
アンビエントオクルージョンは、3Dレンダリングをよりリアルに見せる強力なツールです。狭い空間で光が自然に遮られる様子をシミュレートし、奥行きとソフトな影を追加することで、オブジェクトをよりリアルで存在感のあるものに見せます。高品質なレンダリングのために事前計算されたAOを使用する場合でも、SSAOやHBAOのようなリアルタイムのテクニックを使用する場合でも、この効果は、没入感があり、視覚的に豊かなシーンを作成するための鍵となります。アンビエントオクルージョンを理解し、うまく使うことで、アーティストや開発者はレンダリングをよりリアルに見せることができるのです。アニメーション、ビデオゲーム、建築デザインのいずれにおいても、AOを使いこなすことは、説得力のある魅力的な3Dグラフィックスを作成するための重要な要素です。