陽炎とは??
このようなものです
陽炎とは、局所的に密度の異なる大気が混ざり合うことで光が屈折し、起こる現象。よく晴れて日射が強く、かつ風があまり強くない日に、道路のアスファルト上、自動車の屋根部分の上などに立ち昇る、もやもやとしたゆらめきのこと。 蜃気楼の意味でこの言葉を使うこともある。
https://ja.wikipedia.org/wiki/%E9%99%BD%E7%82%8E
- 英名
- heat distortion
- heat haze
参照動画
手順
1. Plane を追加
- x を 90度 回転し立たせる
- Material を追加
1.1 Material 設定
これは完成図
1. Principled BSDF は削除
2. ぼかすためのフィルターを追加
- Refrection BSDF を追加
- IOR を 1 にする
- これによって光の屈折なしになり世界をそのまま映し出す
- Color の V を1にする
- HSV カラーの事
- デフォルトだと 0.906 で少し暗くなっている
3. ぼかす
- Noise Textre を追加
- Factor を Refrection BSDF の IOR へ接続
- Noise Texture は 0 ~ 1 の値を作る。
- [問題点1]Refrection BSDF の IOR は 1以上である事を期待する
4. Math (Add) を追加する
- Refrection BSDF と Noise Texture の間に配置
- Value 1 を足す
- [解決1]これにより Refrection BSDF の IOR は1以上になる
5. Noise Texture の効き具合を調整可能にする
- Noise Texture と Math(Add) の間に Math(Multiply) を配置
- 名前を Strength_Mult とする
- Value を調整することで、Noise Texture の効き具合が調整可能になる
[問題点2] 現状だとPlaneの四角形でくっきりと Noise がかかっている。
6. 陽炎のある場所とない場所の境界をぼやかす
- Emission Shader を追加し、Material Outputに接続する
- Gradient Texture を追加し Emission の Color に接続
- Emission は一時的に配置。Gradientがどのように見えているかを確認している
7. Gradient Texture の範囲を調整する
- Texture Coordinate を追加
- Vector Math (Subtract) を追加
- Combine XYZ を追加
- Combine XYZ の値は全て0.5にする
- 上記3つは下記の通り接続
- ColorRamp を追加、Gradient と Emission の間に配置
- バーを動かしてぼやける範囲を調整
- Blending Mode を Ease にするとよりスムーズになる
8. 全てを組み合わせる
- 画像の通りに行う
- Math(multiply)は Strength_Mult をコピーしている
- 追加した Multiply の名前は Sphere_Mask とする
- Math(multiply)は Strength_Mult をコピーしている
9. ぼやけをアニメーションさせる
- Mapping ノードを追加
- Texture Coordinate を追加
- 下記のように接続する
Location の Yを動かすとぼやける
完成図
テスト
HDRでテストした結果
この Plane をシーンに持っていきシーンとカメラの間に配置。
Location Y の値を Keyframe で操作すれば、陽炎の出来上がりです