本日はUnity枠です。
昨日はUnity2023で新しくなったWaterSystemのデモシーンを見ています。
今回はアイランドシーンの実装を見ていきます。
〇Scene01 Island
昨日も紹介した通りこのシーンの海はWaterオブジェクトの子オブジェクトであるOceanオブジェクトにアタッチされているWater Surfaceコンポーネントがコアな実装です。
このWater Surfaceが水のレンダリングシュミレーションを行っていますが、いくつかのセクションに分かれています。
〇General
Generalは水のレンダリングの基本のタイプや設定を行う項目です。
SurfaceTypeはPool、River、Oceanから選択可能ですが今回はもちろんOceanが選択されており、一番スケールが大きいシュミレーションが行われます。
Geometry Typeは描画の設定ですが、Infiniteが設定されていることでLODを意識しながら無限に遠くまで描画を行うことができます。
つまり水平線を描画するタイプが指定されています。
次のTessellationはGPUのテッセレーション機能を使用するかで、これは動的にポリゴンを分割してより細かな波の表現を行うかどうかという設定です。
上記2つの画像はそれぞれ有効無効の比較をワイヤフレームビューで行っていますが、テッセレーションが有効にされていることで細かくポリゴンがさらに分割されてより小さな波が再現できるようになっていることがわかります。しかしながら当然ポリゴン数は上がるため負荷は高くなります。
〇Simulation
シミュレーションのカテゴリーではその名の通り波の再現などのシュミレーション全般の設定を行います。
〇Water Mask
Water Maskには画像が指定されています。これは原点を中心にマスクされている領域はシュミレーションしないマスクとなり、サンプルではアイランドの形にマスクがされており、つまり島の中で万が一地面にめり込んでも水があるわけではないです。
ExtentとOffsetの項目でマスクの範囲を調整できます。
Remappingの機能はマスクの領域をぼかすことができる機能です。
〇Swell
Swellは直訳するとうねりという意味になります。
波の高さや速度をシュミレーションすることができます。
長くなってしまったので本日は以上です。