Divindade: Original Sin 2 tem um belo sistema transparente. Quando vou atrás das paredes, uma máscara de respingo aparece e, quando me movo pelo jogo, ela muda. É como um shader de dissolução e tem um efeito metabólico.
Como posso replicar esse efeito, criando uma máscara de respingo dinâmica quando os jogadores ficam atrás das paredes?
Você pode ver o efeito desejado em movimento neste vídeo do YouTube .
unity
shaders
graphic-effects
Seyed Morteza Kamali
fonte
fonte
Respostas:
Mascaramento
Para fazer esse efeito, você pode mascarar objetos usando um buffer de estêncil.
Estêncil de máscara:
Estêncil de parede:
Vamos implementar.
use isso como a máscara:
use isso como parede:
Análise de Efeito
Se você quiser ter uma textura processual , precisará de alguns ruídos.
você pode ver esse shader no ShaderToy .
Para fazer esse efeito, em vez de usar as coordenadas UV, use as coordenadas polares e defina-as para a textura do ruído.
outra solução está usando o ruído worley:
você pode ver esse shader no ShaderToy
Metaball
então eu adiciono o efeito metaball deste artigo :
Bill boarding
há mais...
Se você quiser girar sua máscara e olhar para sua câmera, use o quadro de avisos :
esta é a máscara do embarque de Bill:
Resultado final:
a fonte está disponível: https://github.com/smkplus/Divinity-Origin-Sin-2
Links Úteis
Encontrei um bom tutorial que implementava esse efeito dissolvendo o mundo:
Dissolvendo o mundo Parte 1
Dissolvendo o mundo Parte 2
Outro tutorial sobre estêncil:
Stencil Tutorial
fonte