Divinidad: Original Sin 2 tiene un hermoso sistema transparente. Cuando voy detrás de las paredes, aparecerá una máscara de bienvenida, y cuando me muevo por el juego, cambia. Es como un sombreador de disolución y tiene un efecto metaball.
¿Cómo puedo replicar este efecto, creando una máscara de bienvenida dinámica cuando los jugadores van detrás de las paredes?
Puede ver el efecto deseado en movimiento a través de este video de YouTube .
unity
shaders
graphic-effects
Seyed Morteza Kamali
fuente
fuente
Respuestas:
Enmascaramiento
Para hacer este efecto, puede enmascarar objetos utilizando un búfer de plantilla.
Plantilla de máscara:
Plantilla de pared:
Implementemos.
usa esto como la máscara:
usa esto como el muro:
Análisis de efecto
Si desea tener una textura de procedimiento , necesita algunos ruidos.
Puedes ver este shader en ShaderToy .
Para hacer este efecto, en lugar de usar las coordenadas UV, use las coordenadas polares y luego ajústelo a la textura de ruido.
Otra solución es utilizar el ruido de Worley:
puedes ver este shader en ShaderToy
Metaball
luego agrego el efecto metaball de este artículo :
Bill boarding
hay más...
Si desea girar su máscara, para mirar a su cámara, puede usar Billboard :
Esta es la máscara con Bill Boarding:
Resultado final:
la fuente está disponible: https://github.com/smkplus/Divinity-Origin-Sin-2
Enlaces útiles
Encontré un buen tutorial que implementó este efecto al disolver el mundo:
Disolviendo el mundo Parte 1
Disolviendo el mundo Parte 2
Otro tutorial de plantilla:
Tutorial de plantilla
fuente