第22回 ボリュームの積算とゴッドレイ
3 / 4 手前からの透過率と色の積算
このステップの目的
奥の寄与が手前の霧で弱まる関係を追います。
見える割合を持ち回る
前のステップから、各区間の透過率0.8、不透明さ 1−0.8=0.2 を受け取った例を使います。「区間の透過率」はその一区間で残る割合、「累積透過率」は手前からそこまで通って残った割合です。どちらも透過率ですが、掛け合わせる範囲が違います。
積算の最初は透過率を1、合計色を0にします。ある区間の不透明さが0.2、そこで加える色の係数が1なら、最初の区間の寄与は0.2です。通過後に残る透過率は0.8になります。
次も同じ区間なら、その寄与は0.8×0.2=0.16です。合計は0.36、残る透過率は0.64となります。奥の色を毎回0.2ずつ足すのではなく、手前を通って残る割合を掛けます。
| 区間 | 読む前の透過率 | 今回加える寄与 | 読んだ後の透過率 |
|---|---|---|---|
| 手前 | 1 | 1 × 0.2 = 0.2 | 0.8 |
| 奥 | 0.8 | 0.8 × 0.2 = 0.16 | 0.64 |
最後に背景を加える
合計した霧の色へ、残った透過率を掛けた背景色を加えます。霧の寄与と背景を両方そのまま足すと、背景が減らず明るすぎる場合があります。基本では二区間を手計算してから、区間数を増やす考え方へ進みます。
背景の値も1なら、霧の寄与0.36に背景の寄与 0.64×1 を足して1です。背景が0なら結果は0.36です。ここでは同じ区間色を用いた簡略化した合成を扱い、光源から届く光の計算は次のステップで分けて考えます。
積算の順序
text
合計色 = 0
累積透過率 = 1
手前から各区間について:
区間透過率 = exp(-減衰係数 × 区間長)
区間の不透明さ = 1 - 区間透過率
合計色 += 累積透過率 × 区間の不透明さ × 区間色
累積透過率 *= 区間透過率
最終色 = 合計色 + 累積透過率 × 背景色合計色へ寄与を加える時点では、その区間を通る前の累積透過率を使います。一区間を先に減衰させてから寄与へ掛けると、別の値になります。
条件を変えた確認
透過率0.8、区間色の係数1の層を三つ通り、背景の値を0.5とします。合計色と残る透過率を求めてから背景を加えます。
考え方の確認
区間の合計は0.2+0.16+0.128=0.488、残る透過率は0.512です。背景0.256を加えた結果は0.744です。
区間を通る前の累積透過率を使って寄与を加える順序を残します。
チェックリスト
- 二区間の寄与0.2と0.16、残る透過率0.64を求められる。
- 変更した条件と、予測・計算した結果を対応付けて説明できる。