J'essaie de créer l'effet de l'épaisseur de la surface de l'eau avec un shader de vertex-fragment.
Je suis dans un environnement de jeu 3D mais c'est une vue de défilement donc une vue "2D".
Voici un bon tutoriel pour créer un tel effet en 2D réel en utilisant un fragment shader.
Mais cela ne peut pas être utilisé dans mon cas, je pense. Pour l'instant je n'ai qu'un avion où j'applique la réfraction.
Et je veux appliquer l'effet d'épaisseur de l'eau. Mais je ne sais pas comment faire.
Je n'essaye pas de créer une déformation / déplacement de l'eau en utilisant le sommet pour le moment, ce n'est pas le point.
Je ne sais pas si c'est possible avec un simple quad, peut-être devrais-je utiliser un objet comme celui-ci.
Voici quelques exemples.
Je n'ai aucune idée de comment créer cet effet.
Merci beaucoup !
[ EDIT ] Ajout de l'effet d'eau Rayman pour avoir une meilleure référence de l'effet.
Réponses:
Ayez une valeur dans le shader qui spécifie l'humidité. Plus petit que 0 signifie air, plus grand que 1 signifie eau et entre les deux signifie ménisque.
Voici un pseudo code:
C'est le plus simple que je puisse faire. Si c'était moi, je ferais quelque chose d'un peu plus compliqué pour antialiaser le ménisque et y appliquer plus de réfraction ou quelque chose, mais je ne peux pas vous dire quoi car cela prendrait des itérations esthétiques. De plus, je teinterais et brouillerais l'échantillon d'eau. Mais je vous laisse tout ça.
la source