光の相互作用:ラジオシティ法の仕組みと活用例

光の相互作用:ラジオシティ法の仕組みと活用例

AIの初心者

「ラジオシティ法」って何に使うものなんですか? 光を計算する方法だと聞いたのですが、イメージがつかめません。

AI専門家

部屋の壁や床が、光を反射して互いを照らす様子を計算する方法だよ。例えば、照明の光が机に当たり、その反射光が壁に届くことがある。ラジオシティ法は、こうした面同士の光のやり取りを計算して、空間の明るさを表すんだ。

AIの初心者

光源から直接届く光だけでなく、机や壁から跳ね返る光も考えるんですね。どんな場面で役立つのでしょうか?

AI専門家

CGで室内を自然に見せたり、壁の色や家具の配置で明るさがどう変わるかを調べたりするときに役立つよ。ただし、基本的なラジオシティ法が扱うのは、つや消しの壁のような拡散反射なんだ。鏡の映り込みやガラスの屈折まで同じ方法で表せるわけではないので、その違いも見ていこう。

ラジオシティ法とは、物体の表面を小さな面に分け、面同士で受け渡される光エネルギーから照明状態を求めるCGの計算法です。照明から直接届く光だけでなく、壁や床で反射して届く間接光を扱うことで、室内の暗部や周囲からの色移りを表現できます。AI固有の技術ではなく、コンピューターグラフィックスの光の計算に属します。

仕組みを理解するには、光源だけでなく「照らされた壁も、反射光で別の面を照らす」と考えるのが出発点です。ここでは部屋の照明を例に、計算の流れ、適した用途、精度と負荷の関係、レイトレーシングなどとの違いを順に説明します。

室内の光源から直接届く光と、壁や床で反射して届く間接光の経路を示す概念図

光源から床へ届く経路と、光源から壁を経由して床へ届く経路を分けると、直接光と間接光の違いがつかめます。後者のような反射を重ねた光が、部屋全体の見え方に関わります。

ラジオシティ法とは:面同士の間接光を計算する手法

ラジオシティ法は、大域照明(グローバルイルミネーション)を求める方法の一つです。大域照明とは、光源と一つの物体の関係だけでなく、周囲の物体による反射なども含めて、場面全体の光の伝わり方を考えることを指します。

例えば、電球から机へ直接届く光が「直接光」です。一方、電球の光が白い壁に当たり、その壁から机へ届く光は「間接光」です。机が電球の光を遮っていても、周りの壁や床から反射光が届けば、机の下は真っ黒にはなりません。ラジオシティ法では、このような面同士の相互反射を照明の計算に取り込みます。

基本形には、表面が「完全拡散反射」をするという前提があります。これは、反射後の見え方が見る方向に依存しない、理想化された反射モデルです。つや消し塗装の壁やマットな床の近似に向いています。実物の素材が完全にこの性質を持つわけではありませんが、拡散反射が中心の空間では有用な単純化です。

一方、鏡では見る位置によって映るものが変わります。磨いた金属の鋭いハイライトやガラスを通した景色にも、光の進む方向が強く関わります。これらを基本的なラジオシティ法だけで表現することはできません。「間接光を計算できる」ことと「あらゆる反射・透過を計算できる」ことは分けて理解する必要があります。

なお、ラジオシティという量は、面から単位時間に単位面積あたりで出ていく光のエネルギーを表し、放射量としてはW/m²で扱います。表面に蓄積されたエネルギーや、画面に表示する画素の明るさそのものではありません。計算した照明結果を画像にするときには、色の扱い、露出、表示に合わせた明るさの変換なども見え方に影響します。

計算の仕組み:面の分割と光エネルギーの収支

計算の中心にあるのは、「面から出る光は、その面自身が発する光と、入ってきた光の反射分を合わせたもの」という収支です。普通の壁は自ら発光しないので、壁から出る光は入射光の反射分になります。発光する面であれば、そこに自身の発光も加わります。

具体的な手順は、次のように整理できます。

  1. 物体の表面をパッチに分ける。壁、床、天井、家具の表面を小区画に分割します。基本的な離散化では、一つのパッチ内のラジオシティを一定として近似します。
  2. 発光と反射率を設定する。照明となる面の発光量や、各パッチが受けた光をどれくらい反射するかを設定します。白い壁は可視光を比較的多く反射し、黒い壁は多くを吸収するため、周囲へ返す光も異なります。
  3. パッチ間の光の届き方を求める。面同士の位置関係や遮蔽物を調べ、ある面から出た光が別の面へどの程度届くかを計算します。
  4. 全体の収支を解く。各パッチが受け取る光と反射する光のつじつまが合うように、連立方程式を解くか、反復計算で結果を更新していきます。
  5. 照明結果を使って画像を描く。各パッチの値を表面の見え方に反映し、必要に応じて補間して表示します。

面間の受け渡しを表す幾何学的な係数を「フォームファクタ」と呼びます。あるパッチから出た拡散光のうち、別のパッチへ直接届く割合を表すもので、距離だけでなく、面積、面の向き、互いに見えている範囲などで変わります。材質の色や反射率とは別の役割を持つ係数です。

向かい合う面でも、途中に大きな家具があれば光は遮られます。また、面同士が近くても、互いに背を向けていれば表側から出た光は直接届きません。「近い面ほど必ず多くの光を交換する」という理解ではなく、距離と向き、可視性を合わせて考えることが大切です。

壁と床をパッチに分割し、面の向きと遮蔽物に応じて光の受け渡しが変わる仕組みを示す概念図

パッチは、光の収支を考えるための計算上の単位です。床の一部分に届く光を求める場合も、光源だけでなく、その部分から見える壁や天井などの寄与を足し合わせます。

反復計算では、例えば光源に照らされた壁の反射光が床を照らし、次の更新ではその床の反射光が別の面へ届く、というように間接光の寄与を反映します。通常の受動的な材料では反射のたびに一部が吸収されるため、十分な反復によって結果の変化が小さくなります。設定した収束条件を満たしたところで計算を終えます。これは場面の定常的な照明状態を求める操作であり、必ずしも光が伝わる実時間を再現しているわけではありません。

拡散反射の照明結果は、基本的に視点に依存しません。形状、光源、材質が変わらなければ、カメラを移動しても各面について求めた結果を再利用できます。もちろん画面への描画は必要ですが、視点を変えるたびに相互反射を最初から解き直さずに済む点が特徴です。

具体例:赤い壁から白い床へ色が移る理由

白い床と赤い壁のある部屋に、白色の照明を置いた場面を考えます。直接光だけを計算した場合、床の明るさは主に照明との位置関係や遮蔽で決まります。そこに壁からの間接光を加えると、床の一部が明るくなり、赤みを帯びることがあります。

光の経路は「照明→赤い壁→白い床」です。赤い壁は、入射光のうち赤に相当する成分を相対的に多く反射します。その反射光を受けた白い床は、赤みを含む光を返すため、壁に近い部分などに色の影響が現れます。これがカラーブリーディングと呼ばれる、相互反射による色移りです。床の素材そのものが赤く変わったわけではありません。

同じ部屋の直接光のみの表現と間接光を含む表現を比較し、赤い壁から白い床への色移りと暗部の変化を説明する図

比較の際は、床全体が均一に赤くなるのではなく、赤い壁との位置関係や遮蔽に応じて影響が変わる点に注目すると理解しやすくなります。光源の色、壁の反射率、床へ届く他の光の強さによっても、色移りの目立ち方は変わります。

同様に、照明の直接光が届かない場所にも、壁や床を経由した光が届けば暗部は明るくなります。ただし、何度も反射した光は吸収によって弱まり、周りを遮られた奥まった場所には届きにくくなります。間接光を考慮したからといって、部屋の隅々まで同じように明るくなるわけではありません。

この表現は、暗い画素を一律に明るくする補正とは異なります。一律の補正では、どの色の壁から反射光が来たか、家具の裏まで光が届くか、といった違いを表せません。ラジオシティ法では、材質と面同士の関係に沿った明暗や色の変化を扱えます。

また、暗部が反射光で持ち上がることと、影の境界が柔らかくなることは別の現象です。影の境界には光源の大きさや物体との位置関係などが関わります。ラジオシティ法を使うだけですべての影が柔らかくなる、と捉えないようにしましょう。

使いどころ:建築の室内照明と静的な背景

ラジオシティ法の性質が生きるのは、拡散反射をする面が多く、形状や照明条件があまり変わらない場面です。建築の室内では、壁、床、天井が広い面積を占めるため、相互反射による明るさの違いを考える意義があります。

例えば、同じ照明を使ったまま壁材を白から濃い色へ変えると、壁から周囲へ返る光が減り、室内の明るさの分布も変わります。大きな棚を置けば、光を遮る場所や反射する面が増えます。こうした比較は、照明の配置だけでなく、内装材や家具の選択を検討する材料になります。

同じ室内で壁材の色と反射率を変え、壁からの反射光による明るさの違いを比較する照明検討の概念図

壁材の影響を比べたい場合は、照明の強さ、カメラの露出、表示条件などをそろえます。画像ごとに自動露出で明るさを調整すると、反射率による差が見えにくくなることがあるためです。比較したい条件以外を固定することが、結果を読み取るうえで役立ちます。

窓からの採光を検討する場合も、入ってきた光が室内でどう反射するかを考えられます。ただし、結果は天空や太陽の条件、窓の透過特性、素材の反射率、形状の再現精度などに左右されます。見た目が自然なCGを得ることと、照度などの物理量を正確に予測することは同一ではなく、数値的な評価には目的に応じた入力条件と検証が必要です。

映画やゲームの背景、製品を置く周囲の照明環境も、拡散相互反射を考える対象になります。例えば、マットな展示台や壁から製品へ回り込む光は、その場に置かれている印象を支えます。一方、金属製品の映り込みやガラスの透明感まで再現するには、方向性を持つ反射や屈折を扱う方法も必要です。

ゲームなどでは、変化しない照明結果を事前に計算し、表面に対応する画像である「ライトマップ」へ保存して利用することがあります。この事前計算と保存の工程が「ベイク」です。ベイクは結果の保存・利用の工程を指し、ラジオシティ法は照明を求める計算法を指します。すべてのライトマップがラジオシティ法で作られるわけではありません。

VRやARでも、固定された環境の照明をあらかじめ計算しておく考え方は役立ちます。ただし、動く物体による遮蔽、照明の点灯・消灯、現実の環境光の変化などは、保存済みの結果だけでは追従できません。静的な部分に事前計算を利用し、変化する部分には別の更新方法を組み合わせる、といった設計が必要になります。

計算負荷と精度:細かく分割すればよいとは限らない

パッチを小さくすると、局所的な明暗や色移りを表しやすくなります。大きな壁全体を一つのパッチにすると、窓際だけ明るい、家具の後ろだけ暗いといった違いを十分に表せません。反対に、場面全体を一律に細かく分けると、計算時間とメモリの負担が増えます。

全パッチの組み合わせを扱う単純な方式では、面間関係の数はパッチ数のおおむね二乗で増えます。例えば、パッチ数を2倍にすれば、扱う組み合わせはおおむね4倍になります。これは関係数の目安であり、実際の処理時間が必ず4倍になるという意味ではありません。係数の保存方法や計算の省略方法によっても負荷は変わります。

計算にかかる時間は、パッチ数に加えて、面同士の間に障害物があるかを調べる遮蔽判定、フォームファクタの精度、反復計算を終える条件などに依存します。光源が多いかどうかだけで速さを判断することはできません。また、宝石の屈折のように基本的なラジオシティ法の対象外となる現象は、パッチを増やすだけでは解決しません。

精度と速度を両立するには、変化の大きい場所に計算を集中させることが重要です。明暗の境界付近や物体同士が近接する部分を細かくし、照明がなだらかに変わる広い面は粗く扱う方法があります。影響の小さい面間のやり取りを近似したり、反復による変化が十分小さくなった段階で打ち切ったりする工夫も使えます。

ただし、粗い分割では細かな遮蔽や色移りを失いやすく、反復を早く止めすぎると間接光の寄与が十分に反映されないことがあります。補間で見た目の段差をなめらかにしても、計算時に失われた細部が復元されるわけではありません。まず簡単な場面で品質を確かめ、問題の出る部分だけ精度を上げると、原因を把握しやすくなります。

計算結果の再利用にも条件があります。カメラ移動だけなら面の照明結果を使い回せますが、家具を動かすと面同士の可視性が変わります。照明の強さや位置、壁の色を変えても光の収支は変わるため、照明結果の再計算や更新が必要です。形状が同じなら幾何学的な係数を再利用できる場合がありますが、最終的な明るさまでそのまま使えるとは限りません。

レイトレーシング・パストレーシング・フォトンマッピングとの違い

これらの用語は、すべて同じ粒度の分類ではありません。レイトレーシングは光線を追跡する技法を広く指し、パストレーシングやフォトンマッピングでも光線追跡を使います。一方、基本的なラジオシティ法は、拡散反射する面の間でエネルギー収支を解くことに特徴があります。

手法 計算の考え方 得意な現象・用途 前提・注意点
ラジオシティ法 面をパッチに分割し、面同士の光エネルギーの収支を解く つや消し面の間接光、カラーブリーディング、静的な照明結果の再利用 基本形は完全拡散反射を仮定。分割の細かさや面間関係が精度と負荷に影響する
レイトレーシング 光線と物体の交差を求め、反射や屈折などに沿って追跡する 可視性や影の判定、鏡の映り込み、ガラスの屈折 代表的な画像生成では視点側から追跡する。間接光をどこまで扱うかは方式による
パストレーシング 光の経路を確率的にサンプリングし、多重反射の寄与を推定する 拡散反射、光沢反射、透過などを含む大域照明 サンプルが不足するとノイズが残る。光が届きにくい経路では収束に時間がかかる
フォトンマッピング 光源から追跡したフォトンの情報を蓄積し、その分布から照明を推定する 反射・屈折による集光模様や間接照明 フォトンの保存にメモリが必要。照明の推定範囲によってぼけやばらつきが変わる

レイトレーシングでは、代表的にはカメラから画面上の各点を通る光線を伸ばし、最初に当たる物体を調べます。鏡なら反射方向、ガラスなら屈折方向へ追跡を続けられます。ただし、鏡面反射と直接光を中心に計算する方式と、拡散面同士の多重反射まで扱う方式では結果が異なります。「レイトレーシングなら必ず間接光も計算する」とは言い切れません。

パストレーシングは、反射する方向などを確率的に選び、多数の経路の寄与を平均することで照明を推定します。幅広い材質や多重反射を扱えますが、経路のサンプルが少ないと画像にざらつきが残ります。ラジオシティ法で粗いパッチが照明の細部を失う問題とは、誤差の現れ方が異なります。

フォトンマッピングは、光源から光のエネルギーを運ぶサンプルであるフォトンを追跡し、表面に到達した位置などを記録して利用します。近傍のフォトンの分布から照明を推定するため、広い範囲を使えばなめらかになる一方で細部がぼけ、小さい範囲ではサンプル不足によるばらつきが出やすくなります。ガラスや鏡を介して光が集まり、床などにできる明るい模様「コースティクス」を扱う際にも有用です。

つや消し面の拡散反射、鏡の映り込み、ガラスの屈折を対比し、基本的なラジオシティ法が扱う範囲を示す概念図

つや消し面から周囲へ広がる反射光と、鏡やガラスによって方向を変える光を分けると、手法の使い分けが明確になります。基本的なラジオシティ法は、鏡面反射、屈折、それらによる集光模様を対象にしません。必要に応じて別の手法と組み合わせることは可能ですが、反射の前提自体が変わることを意識する必要があります。

速度についても、「ラジオシティ法が常に速い」という順位づけはできません。パッチ数、求める精度、材質、場面の変化、実装、再利用できる回数などで有利な方法は変わります。固定した室内を複数の視点から見せるのか、鏡やガラスを含む動的な場面を描くのかによって、選ぶ条件が異なるためです。

ラジオシティ法を理解する際は、「拡散反射する面同士の光の収支を求める」「照明結果は視点に依存せず再利用できる」「形状・光源・材質が変われば更新が必要」という三点を押さえましょう。この土台があれば、室内の色移りや暗部が生まれる理由と、他の描画手法が必要になる場面を結び付けて考えられます。

更新履歴

日付 内容
2025年1月31日 初回公開
2026年10月29日 拡散反射の前提を明示し、色移りの説明と各描画手法の比較を改訂