Karma Fog Box [Mardini2024]

これはMardini2024のDay8 Karma Fog Boxの動画を視聴してまとめたものです。

[動画](https://www.youtube.com/watch?v=RjXxzxPxUqc)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/d02bf992-49f2-1c7e-644d-1ed5b12d59d3.png)

[公式のサンプルファイル](https://media.sidefx.com/uploads/contests/mardini2024/moeen_videos/mardini_examples_day8_karma_fog_box.zip)

[Day7 Karma Material Builder](https://qiita.com/jyouryuusui/items/3ae85b0a3f3df34ca829) | Day8 Karma Fog Box | [Day9 Background Plate](https://qiita.com/jyouryuusui/items/b185bb623947cdfab873)

Karma Fog Boxを使えば、シーン内に均一な濃度の霧や煙を作成できます。また、光線(ゴッドレイ)の表現も可能です。 

# 要約
- Karma Fog BoxノードはLOPコンテキストで動作する
- ノードから均一な濃度のボリュームを出力できる
- 濃度、影の濃さ、散乱具合などをコントロールできる
- 光源との相対的な位置で、ゴッドレイ(光線)を表現可能
- 濃度や色を調整することでゴッドレイのルックを変更できる


# サンプルファイル

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/825b5930-1c4c-414d-e017-da3fc3bc2fd3.png)

窓のあるシーンがStage上で構成されています。光源はKarmaPhysicalSky。
KarmaFogBoxすでに追加されている状態です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/e15d801a-dd7a-36f3-af51-902c9e62b401.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/afbddc5e-4a90-b83e-bfca-5257dc02cc0b.png)



## 操作手順

- Solarisデスクトップを選択します
- StageレベルでKarma Fog Boxノードを作成します
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/24548fe5-7343-e9cc-468f-270895ef1c75.png)
    - Displayフラグを立てると、シーン中央に立方体が現れます。それ以外は何も表示されません
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/43ec25fe-bd67-3a0a-76fb-3506106d5c76.png)
- KarmaFogBoxの下にDomeLightを配置して、KarmaXPUに切り替えます（KarmaXPUに切り替えるには照明が必要
    - これでボリュームが確認できます　とはいえ、Density（密度）が0.1なので見えにくいです
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/fafeea34-a48c-bb78-f93b-20d29810f266.png)
    - Densityを10まで上げるとくっきり見えます
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/e25e50b8-0710-1776-9d18-f5734d0bbb71.png)
- ではDensityが0.1が駄目かというとそうではなく、Densityはボリュームのサイズに依存します
    - 例えばBOXのスケールを1から15に変更してやると、上からだと密度に変化はありませんが、横から見ると距離に応じた濃淡が確認できます
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/c6453d6c-06f7-0273-02ff-5a140ec60327.png)
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/72a92c45-8c28-ba42-7324-3b8de105b6ff.png)

- Karma Fog Boxノードという名前ですが、Box以外の形状もあります
    - Shapeパラメータで出力形状を選択します(Box、Sphere、Torusなど)
- 均一なボリュームをBOX内で生成するため、ノイズパターンは存在できません

## ゴッドレイ (God Rays) 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/2d117826-5e5d-0955-6505-2ce2bdca7bb9.png)

- Karma Fog BoxノードをCameraノードの下に配置します
- デフォルトではBOXが小さいサイズなのでScaleパラメータでボリュームのサイズを部屋を覆う程度の大きさに調整します
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/1a1d72ff-f458-4204-8fd0-20fd23acf3d4.png)
    - 作業途中はKarmaXPUは切っておき、Houdini GLにしておくのが良いでしょう
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/2da3bca9-d877-387f-5a83-c2d45319a867.png)
- このままでは背景のディティールが潰れてしまうのでDensityパラメータで霧の濃さを調整します
- Shadow Densityパラメータで、ボリュームが光源に与える影の濃さを調整します 動画では0.02にしています
    - Shadow Densityが高いと暗くなります
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/d3fd1b24-1a05-72cd-337f-281795e15ecd.png)
- Scattering Phase（散乱位相）パラメータで、光の散乱具合を調整します
    - 光がボリュームに入ったあとの進行方向を表します・光がボリューム内でどのように跳ね返るかどうかの値です
        - Scattering Phase:-0.9
            - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/2207c30e-385d-e1a0-6900-62e0b1669271.png)
            - 光子が物質と相互作用した後、入射方向とは反対方向に散乱される現象です。散乱角度が大きいため、光の進行方向が大きく変化します
        - Scattering Phase:0
            - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/c4e6ef83-a4ab-8927-9626-966c1b4ce65c.png)
            - 光子が物質と相互作用した後、入射方向とほぼ同じ方向に進む散乱です。散乱角度が小さいため、光の進行方向はあまり変化しません
        - Scattering Phase:0.9
            - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151589/31cf7f99-6582-30d4-7bfe-f834f14bfeb6.png)
            - 光子が物質内部で多数回反射・屈折を繰り返す状態です。光子のエネルギーは徐々に失われ、拡散した光として物質から出ていきます

これらの散乱位相の割合によって、物体の見え方が決まります。


- Colorパラメータで、ボリュームの発光色を変更できます
- 光源の強度や位置、カメラアングルを変えることでゴッドレイの表現が変わります


# まとめ

Karma Fog Boxを使い、シーンに自然な霧や煙、光線(ゴッドレイ)を表現することができます。パラメータを調整することで、ルックを細かく制御できます。