Guía Unity Videos con transparencia
Descripción
Esta es una forma de reproducir videos con transparencia en unity sin tener archivos muy grandes y con una gran definición. Se utiliza un video con canal alfa, para crear un video que contenga el video original y su canal alfa al lado. Se utiliza un shader que toma la información de la segunda mitad del video (canal alfa), para reproducir la primera mitad del video con la transparencia correspondiente.
Ubicación del proyecto ejemplo
Dirección Desarrollo Tecnológico/ Investigación/Proyectos de investigación/Investigacion Video con transparencia/Programación/Unity 2017.3.0f3/Video con transparencia
Shader
Se crea un material y se le agrega el shader, este material se coloca en el objeto que tenga el video. En el caso del proyecto ejemplo, el video es reproducido en un plano. El plano tiene un mesh renderer al que se le agrego el material.
Al material se le puede modificar el Alpha Cutoff, esto nos permite modificar que tanto se cortara en relación con el canal Alpha.


Render Pipeline
En el caso de que se utilice el Render Pipeline integrado en la version 2018.X, el Shader se modifica para que pueda ser utilizado dentro de los parametros del Pipeline.
En este caso, se ha sustituido el uso del surface Shader por la integración de Vertex y Fragment Shaders. Se necesitan configuraciones iniciales establecidas en las propiedades del shader para que se habiliten las transparencias. Tambien se agrega la configuración de Shaders anidados con la estructura "pass" ya que al final lo necesita para compilar con la version de GLES y puedan utilizarse las luces.
Un efecto adicional sobre el Shader debe ser programado sobre el mismo, ya que al ser parte de código (como " LightweightPipeline/Standard Unlit" ) no puede ser editado a traves de "estados" como los Shader Graph
Probado unicamente con Lightweight Render Pipelin
Elaboró
Juan Carlos Cuevas Flores
Ventajas
- Pesan poco los videos y se pueden comprimir
- El recorte del fondo es muy preciso
- Compatible con Render Pipeline
Desventajas
- No es editable con estados de Shader Graph (Render Pipeline)
- Cualquier efecto adicional debe ser programado dentro del Shader (Render pipeline)