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
プロシージャルな雲の作成を通し、
テセレーションピン と ワールドディスプレースメントピンの利用方法が学べます。
アニメーションする雲がこんなに簡単に作れるのはとてもたのしいです。