TOOLHUB
← Volver
UNITY · SHADERS

Shaders: crearlos y usarlos

Una introducción visual para entender qué es un shader, cómo importarlo, crear materiales, animarlo y evitar problemas de rendimiento.

HLSLMaterialAnimationRenderingPC / Quest
Salida.shader
ToolHubShader Studio
🧪 Concepto

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.

Mesh
UV / Normals
Material
Shader
Pixels
📦 Usar un .shader

Desde archivo hasta avatar

1

Importa el archivo

Coloca el .shader y sus includes/dependencias dentro de Assets.

2

Crea un Material

Selecciona el shader desde el selector del Material.

3

Configura propiedades

Asigna texturas, colores, speeds, masks y demás parámetros.

4

Asigna al Renderer

Coloca el Material en el slot correspondiente de tu mesh.

⌨️ Crear

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.

Shader "ToolHub/Example" { Properties { _Color ("Color", Color) = (1,1,1,1) } SubShader { // Passes + HLSL } }
🟣 ToolHub Shader Studio: abre el Generador de Shaders para crear una base visual sin escribir todo desde cero.
🎞️ Animados

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.

⚡ Rendimiento

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.
📱 Quest / Android

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.

🔴 Regla: crea una variante/material móvil separado cuando prepares el avatar para Android/Quest.
🛠 Problemas

Cuando el shader no funciona

Unity no encuentra o no puede compilar el shader. Abre Console y corrige el primer error real, no los veinte errores secundarios.
Comprueba propiedades, sampler, UV y si la textura está realmente asignada.
Es un problema clásico de transparent rendering. Revisa render queue, depth writing y si Cutout sería suficiente.
🔗 Referencias

Fuentes