Estoy tratando de crear el efecto del grosor de la superficie del agua con un sombreador de fragmentos de vértice.
Estoy en un entorno de juego en 3D, pero es una vista de desplazamiento, así que una vista "2D".
Aquí hay un buen tutorial para crear dicho efecto en 2D real usando fragment shader.
Pero esto no se puede usar en mi caso, creo. Por el momento solo tengo un avión donde aplico refracción.
Y quiero aplicar el efecto de espesor de agua. Pero no sé cómo hacerlo.
No estoy tratando de crear alguna deformación / desplazamiento del agua usando vértices por el momento, este no es el punto.
No sé si es posible con un quad simple, tal vez debería usar un objeto como este.
Aquí hay unos ejemplos.
No tengo idea de cómo crear este efecto.
Muchas gracias !
[ EDITAR ] Se agregó el efecto de agua Rayman para tener una mejor referencia del efecto.
Respuestas:
Tener un valor en el sombreador que especifique la humedad. Menor que 0 significa aire, mayor que 1 significa agua, y en el medio significa menisco.
Aquí hay un pseudocódigo:
Esto es lo más simple que puedo hacer. Si fuera yo, haría algo un poco más complicado para antialias del menisco y aplicaría más refracción allí o algo así, pero no puedo decirte qué porque tomaría iteraciones estéticas. Además, teñiría y difuminaría la muestra de agua. Pero te dejo todo eso a ti.
fuente