UE4:オンラインラーニング(プロシージャルジオメトリに基づいた雲の作成 )
UE4オンラインラーニング
プロシージャルジオメトリに基づいた雲の作成
を受講した際のおぼえ書きです。
https://learn.unrealengine.com/course/3536564
マテリアルの設定
あらかじめマテリアルノードの
マテリアル>MaterialDomain をSurface
マテリアル>BlendMode をTranslucent
マテリアル>ShadingModel をSubsurface
テセレーション>D3D11TessellationMode をPNTraiangles
にしておく必要があります。

VertexNormalWSノード
VertexNormalWSノードを利用することで頂点の法線方向を取得することができます。
たとえば、ディスプレースメントピンを利用し法線方向に拡縮するとか

テセレーションとノイズノードとVerteNormalWSノードだけでも
このようなマテリアルを作ることができます。

絶対ワールド位置ノード
絶対ワールド位置ノードによりワールド座標を取得
WorldPositionと入力すると取得できます。
(このコースではAbsoluteWorldPositionでしたが4.26ではWorldPositionです。)

フレネルノード
フレネルノードは1.0からカメラと法線の内積をを引いた値がとれるノードです。
(動画にいい図があったのでパクってきました)

オパシティに入力することで、
このようにX線のようなシェーディングを行うことができます。
(1-xノードを利用してさらに反転するもよし)

最終的にはこんなマテリアルをつくることができました。

実際にできたもの
youtu.be
プロシージャルな雲の作成を通し、
テセレーションピン と ワールドディスプレースメントピンの利用方法が学べます。
アニメーションする雲がこんなに簡単に作れるのはとてもたのしいです。