Skip to content

hexagit/RiverWater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RiverWater

sample scene AIによって実験的に作成されたURPで動作する、シミュレーションベースの河川システムです。
HDRPからURPに描画パイプラインを変更するときにWaterシステムが無かったため、研究開発的にAIと作成したシステムになります。

サンプルシーンとして■■ノニラヤ内で使用しているパラメーターで設定した河川データーを2種類格納しています。

動作環境

制限事項

  • directional lightに対応していません
  • deferred+パス専用に作成しています

使用方法

インストール

配布用に体裁を整えていません。

リポジトリを取得後にAssetsフォルダー以下のRiverWaterフォルダーをあなたのプロジェクトにコピーしてください。

Render Featureの追加

あなたのプロジェクトのUniversal Render Data AssetにRiverWaterRendererFeatureを追加して下さい。

render featureに追加

  • Render Pass Event
    描画タイミングを設定できますが、デフォルトのまま変更しないことをお勧めします。
  • Layer Mask
    Lihgting Maskを設定できます。あなたのシーンの構成に合わせてご使用下さい。
  • Update SSR
    URP-ScreenSpaceReflection向けに一部のGBufferに追加情報を書きこみます

シーンへの配置

  1. コンポーネントの追加 GameObjectにRiverRectSurfaceもしくはRiverCurveSurfaceを追加します。
    それぞれ矩形状のメッシュとカーブに沿ったメッシュを生成できます。
    制御パラメーターはどちらも同じです。 componentの追加
  2. マテリアルの設定
    マテリアル設定 コンポーネントが追加されるとメッシュが自動的に作成されます。
    メッシュのマテリアルにRiverWaterフォルダー以下のマテリアルを設定してください。
  3. compute shaderの設定
    シェーダー設定 コンポーネント内のパラメーターのGrid ComputeにRiverWaterフォルダー以下のGridRipple.computeを設定します。
    この時点で水面のメッシュが動き始めます。
    ここから先はサンプルのパラメーターを参考に調整を行って下さい。

その他

水面に作用するコンポーネントが存在しています。

  • WaterObstacle
    水面に岩などの障害物と共に使用する、流れを妨害する効果を持ちます。
  • WaterRippleSource
    水面に周期的な波紋の生成を行います。

またRiverRectSurfaceもRiverCurveSurfaceもRequestWaterHeightAsync()関数経由で非同期で水面の高さを取得する事が出来ます。

About

RiverWaterはUnityのURPで動作する河川システムです

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors