Shader Debugging
Techniques

Herman Tulleken
Sara San Martín

Expectativa
Esfera completamente negra
Realidad
Pantalla negra
Pantalla negra
NaNs
Normales en view
UVs estiradas

Herramientas de depuración en la CPU

  • Logs
  • Tests unitarios
  • Breakpoints
Valor del detector de bordes mostrado a pantalla completa
Render graph: rendering to a texture from a tap
GrayViridisTurbo
Escena con la luminancia mapeada a una rampa de color
Barra de debug con signo sobre la escena pixelada
Objetos de la escena coloreados por ID con un hash
shadertoy.com/view/4sBSWW
Custom Function node in Shader Graph
Esfera roja plana
NoneAlbedoNormalShadow
Radio 2
Radio con sin(t)
× 1
× 10
saturate(hdr)
LogView(hdr)
Imagen casi completamente negra
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
horizontalverticalboth
  • Primitives
  • Thin cylinders
  • Plants
  • High detail
  • Outline shapes
Multipass render in Unity’s Frame Debugger
CameraShadow map
Stepping through a shader line by line in RenderDoc
y = smoothstep(0.2, 0.8, x)

// graphtoy.com
y = 1 / (1 + k·x²)

k = 1
k = 4
k = 16

Little code tricks

RuidoSeno
QR

¡Gracias!

Herman Tulleken
YouTube · Asset Store

Sara San Martín
Links