井戸底より

とりとめのない散文、水底に沈んだ駄文

Customノードで遊ぼう①:Voronoiノードの自作

こいつ2年ブログ塩漬けしてたらしいっすよ

 

UE5.2がそろそろ出そうな雰囲気もあるなか未だに4.27にしがみついています。理由は単純でPCスペックが足りないからです。機能別サンプルで40fps張り付きはきつい

しかしながら世間的にはPS5の供給不足がようやっと解消されそうという状況で、SteamのGPU使用率調査を見ると未だにGTX1650がナンバーワンだったりします。GTX1650でLumenやNaniteをバリバリ使うゲームは絶対動かせません。その辺りの機能を使わないのであれば無駄に最低要件を上げるだけなので別段UE5に移行しなくてもいいんじゃないかと思ってます。コロナ禍もなんだかんだ言ってあと2年は尾を引きそうな気がするしGPUも安くならなさそうですし

 

まあでもPhysics ControlとかモーションワープとかAI関連とか魅力的な新機能も使いたいので2年くらいかけてぼちぼち移行したいというお気持ちです。そんな中で何とかブログに書くネタを探す第一弾です。

UE4のノイズノードは汎用性を考慮したせいか露骨に重く出力も素直ではなくてなかなか使えません。単機能でいいならそういうのはCustomノードで自作したほうが処理が軽く済むことが多いです。

やってることは下記のシェーダーを丸パクリしただけです。こんなんをブログの種にしていいの?

Shader - Voronoi - 3D

ただしランダム性の元となるHash関数は下記のsin不使用な実装を使用しています。これにより処理負荷を大きく削減できているはずです。

Shader - Hash without Sine

voronoi3Dのhash入力はダミーでいわゆる家弓メソッドでhash関数を使えるようにしています。4.26くらいでcustomノードにinclude pathを追加できるようになりましたが変わらずこちらの方が楽ですね。

 

ちなみに処理負荷は、

VectorNoise(Voronoi, Quality = 1):Base pass shader: 281 instructions

今回の実装:Base pass shader: 192 instructions

なので大分抑えられています。ただし見た目が結構違うので互換にはなりません。

 

続くかどうかは未定