Qué hace realmente un shader
Un shader es código que decide cómo se dibuja una superficie: qué color sale, cómo responde a normales, luz, texturas, transparencia y tiempo.
Desde archivo hasta avatar
Importa el archivo
Coloca el .shader y sus includes/dependencias dentro de Assets.
Crea un Material
Selecciona el shader desde el selector del Material.
Configura propiedades
Asigna texturas, colores, speeds, masks y demás parámetros.
Asigna al Renderer
Coloca el Material en el slot correspondiente de tu mesh.
Partes básicas de un shader personalizado
Properties
Parámetros visibles en el Inspector del Material.
Vertex stage
Procesa vértices y puede modificar posición, normales o datos enviados al fragment.
Fragment stage
Calcula el color final de los píxeles/fragments.
Render State
Blend, culling, depth, queue y otras decisiones de render.
Animación por tiempo vs Animation Clip
Tiempo del shader
UV scroll, pulse, hue shift o waves pueden avanzar automáticamente usando tiempo.
Animation Clip
Una propiedad expuesta puede animarse desde Unity y controlarse mediante Animator/FX.
Parámetros
Velocidad, intensidad y color deberían ser propiedades editables en lugar de valores fijos.
Qué suele encarecer un shader
- Múltiples passes para outline, grab pass o efectos adicionales.
- Transparencia y mucho overdraw.
- Muestras de muchas texturas por píxel.
- Cálculos complejos repetidos en fragment shader.
- Efectos que no aportan nada visible pero permanecen activos.
Restricción crítica para avatares
VRChat solo permite en avatares Android/Quest los shaders móviles suministrados por el SDK. Un shader personalizado generado para PC no debe considerarse automáticamente compatible con Quest.