Estou tentando criar o efeito da espessura da superfície da água com um shader de fragmento de vértice.
Estou em um ambiente de jogo em 3D, mas é uma visualização de rolagem, portanto, uma visualização "2D".
Aqui está um bom tutorial para criar esse efeito em 2D real usando o shader de fragmentos.
Mas isso não pode ser usado no meu caso, eu acho. No momento, tenho apenas um avião em que aplico refração.
E eu quero aplicar o efeito de espessura da água. Mas eu não sei como fazer isso.
Eu não estou tentando criar alguma deformação / deslocamento de água usando vértice no momento, este não é o ponto.
Não sei se é possível com um quad simples, talvez eu deva usar um objeto como este.
Aqui estão alguns exemplos.
Eu não tenho nenhuma idéia de como criar esse efeito.
Muito obrigado !
[ EDIT ] Adicionado efeito de água Rayman para ter uma melhor referência do efeito.
Respostas:
Tenha um valor no shader que especifique a umidade. Menor que 0 significa ar, maior que 1 significa água e, no meio, menisco.
Aqui está algum pseudo-código:
Este é o mais simples que posso fazer. Se fosse eu, eu faria algo um pouco mais complicado para antialias do menisco e aplicaria mais refração lá ou algo assim, mas não posso lhe dizer o quê, porque seriam necessárias iterações estéticas. Além disso, eu tingiria e borraria a amostra de água. Mas vou deixar tudo isso para você.
fonte