初老ゲームプログラマの覚え書き

大域照明ってなに?

プログラムシェーダーが登場してCGは非常にリアリティが増しましたが、表面上の一点でのみ計算しているため、別の場所からの反射した光が考慮されません。
これを局所照明(local illumination)といいます。それに対して全ての光を考慮した方法を大域照明(global illumination)といいます。

大域照明の計算は非常に膨大で、リアルタイムで処理する事は莫大な計算をする必要があり、リアルタイムに処理する事が大変難しいです。
PRTなど様々な方法が考え出されましたが、それでも相当高性能なハードウェアが必要です。
しかしながら、大域照明は表現を劇的に上げる可能性があるため研究が進められています。

リアルタイムレンダリング

リアルタイムレンダリング

レイトレーシング

レイトレーシング

下がモンテカルロ法によるパストレーシングの自作レンダラで作った画像(大域照明)で、上が一般的なリアルタイムレンダリングの画像(局所照明)になります。
光源の位置が若干違いますが、どちらも同じデータです。

大域照明では、拡散された光の表現が歴然です。
特に頬が大域照明では鎧の反射によって明るくなっている事が確認できると思います。

もしも、オフラインレンダラに興味がある場合、ラジオシティ、モンテカルロ、フォトンマップ、メトロポリス光輸法などのキーワードで調べると色々発見があって面白いです。

レイトレーシングは光線毎に計算が独立しているため、並列処理に大変向いています。今後CPUが何十や何百コアになった時、リアルタイムに大域照明の映像を見る事ができるかもしれませんね。

注) データは もとがし さんからお借りしております。いつもお世話になっております