オブジェクトが水面に沈んでいくとき、
オブジェクトが水面に接した輪郭に沿って
波紋を広げたいな、と思ったのですが、そうすると
波紋の形状をレンダリングするときはShaderを
切り替える必要がありそうです。
どういったタイミングで切り替えたらいいんだろう、
と調べてみたら、ありました。
camera.SetReplacementShader
まんま願いをかなえてくれそうです。
とりあえず地面の高さでモデルをカットするようなシェーダーを用意して、
Shader "Custom/cutFaceEdge" {
SubShader {
Tags { "RenderType" = "Opaque" "Queue" = "Geometry" }
:
}
}
次に波紋用のオブジェクトを映すカメラ(RenderTexture用)内で
camera.SetReplacementShader()を呼びます。
void Start () {
camera.SetReplacementShader(repShader, "RenderType");
}
第2引数は、もとのオブジェクトのマテリアルで用意したタグを使うようですが、
RenderType等あらかじめ用意されているタグでも良いようです。
その場合、もとのマテリアルが"RenderType" = "Opaque"なら
用意したシェーダーも"RenderType" = "Opaque"にする必要があります。
あとはカメラを水面に垂直にして、レンダリングしたイメージを波紋として使えば
いけるんじゃないかな?と思います。