• Juegos
  • Industria
  • Recursos
  • Comunidad
  • Aprendizaje
  • Asistencia
Desarrollo
Motor de Unity
Crea juegos 2D y 3D para cualquier plataforma
DescargarPlanes y precios
Monetización
Compra dentro de la aplicación (IAP)
Descubre y gestiona IAP en todas las tiendas
Mediación
Maximiza los ingresos y optimiza la monetización
Calidad de anuncios
Protege la experiencia del usuario de tu aplicación
Tapjoy
Construye lealtad de usuarios a largo plazo
Todos los productos de monetización
Adquisición de usuarios
Adquisición de usuarios
Hazte descubrir y adquiere usuarios móviles
Unity Vector AI
Conecta a los jugadores con los juegos adecuados
Publicidad en el dispositivo Aura
Alcanza a los usuarios en el dispositivo en el momento de mayor compromiso
Todos los productos de crecimiento
Casos de uso
Colaboración 3D
Construye y revisa proyectos 3D en tiempo real
Capacitación envolvente
Capacitación en entornos envolventes
Experiencias del cliente
Crea experiencias interactivas en 3D
Todas las soluciones de la industria
Industrias
Fabricación
Logra la excelencia operativa
Venta minorista
Transforma las experiencias en tienda en experiencias en línea
Industria automotriz
Eleva la innovación y las experiencias en el automóvil
Todas las industrias
Biblioteca técnica
Documentación
Manuales de usuario oficiales y referencias de API
Herramientas para desarrolladores
Versiones de lanzamiento y rastreador de problemas
Hoja de ruta
Revisar características próximas
Glosario
Biblioteca de términos técnicos
Información útil
Casos de estudio
Historias de éxito en el mundo real
Guías de mejores prácticas
Consejos y trucos de expertos
Todos los recursos
Novedades
Blog
Actualizaciones, información y consejos técnicos
Novedades
Noticias, historias y centro de prensa
Centro de la comunidad
Discusiones
Discute, resuelve problemas y conéctate
Eventos
Eventos globales y locales
Historias de la comunidad
Hecho con Unity
Presentando a los creadores de Unity
Transmisiones en vivo
Únete a desarrolladores, creadores e insiders
Premios Unity
Celebrando a los creadores de Unity en todo el mundo
Para todos los niveles
Unity Learn
Domina las habilidades de Unity de forma gratuita
Capacitación profesional
Mejora tu equipo con entrenadores de Unity
¿No tienes experiencia con Unity?
Primeros pasos
Pon en marcha tu aprendizaje
Rutas esenciales de Unity
¿No tienes experiencia con Unity? Comienza tu viaje
Guías prácticas
Consejos prácticos y mejores prácticas
Educación
Para estudiantes
Impulsa tu carrera
Para docentes
Potencia tu enseñanza
Licencia gratuita para fines educativos
Lleva el poder de Unity a tu institución
Certificaciones
Demuestra tu dominio de Unity
Opciones de soporte
Obtener ayuda
Ayudándote a tener éxito con Unity
Planes de éxito
Alcanza tus metas más rápido con soporte experto
PREGUNTAS FRECUENTES
Respuestas a preguntas comunes
Contáctanos
Conéctate con nuestro equipo
Planes y precios
Idioma
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Social
Moneda
Comprar
  • Productos
  • Unity Ads
  • Suscripción
  • Tienda de recursos de Unity
  • Distribuidores
Educación
  • Estudiantes
  • Instructores
  • Instituciones
  • Certificación
  • Learn
  • Programa de desarrollo de habilidades
Descargar
  • Unity Hub
  • Descargar archivo
  • Programa beta
Unity Labs
  • Laboratorios
  • Publicaciones
Recursos
  • Plataforma Learn
  • Comunidad
  • Documentación
  • Preguntas y respuestas Unity
  • PREGUNTAS FRECUENTES
  • Estado de servicios
  • Casos de estudio
  • Made with Unity
Unity
  • Nuestra empresa
  • Boletín
  • Blog
  • Eventos
  • Empleos
  • Ayuda
  • Prensa
  • Socios
  • Inversionistas
  • Afiliados
  • Seguridad
  • Impacto social
  • Inclusión y diversidad
  • Contacto
Copyright © 2025 Unity Technologies
  • Legal
  • Política de privacidad
  • Cookies
  • No quiero que se venda ni se comparta mi información personal

"Unity", los logotipos de Unity y otras marcas comerciales de Unity son marcas comerciales o marcas comerciales registradas de Unity Technologies o de sus empresas afiliadas en los Estados Unidos y el resto del mundo (más información aquí). Los demás nombres o marcas son marcas comerciales de sus respectivos propietarios.

Hero background image

Optimización del rendimiento para gráficos de alta gama en PC y consolas

Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.
Haz clic aquí.

Este es el segundo de una serie de artículos que desglosan consejos de optimización para tus proyectos de Unity. Úsalos como guía para ejecutar a tasas de fotogramas más altas con menos recursos. Una vez que hayas probado estas mejores prácticas, asegúrate de revisar las otras páginas de la serie:

  • Configura tu proyecto de Unity para un rendimiento más fuerte
  • Gestionando el uso de GPU para juegos de PC y consola
  • Programación avanzada y arquitectura de código
  • Rendimiento físico mejorado para un juego fluido

Consulta nuestras últimas guías de optimización para desarrolladores y artistas de Unity 6:

  • Optimiza el rendimiento de tu juego para móviles, XR y la web en Unity
  • Optimiza el rendimiento de tu juego para consolas y PC en Unity

Las herramientas gráficas de Unity te permiten crear gráficos optimizados en cualquier estilo, en una variedad de plataformas, desde móviles hasta consolas de alta gama y escritorio. Este proceso generalmente depende de tu dirección artística y pipeline de renderizado, así que antes de comenzar, te recomendamos revisar los pipelines de renderizado disponibles.

  • Comprométete con un pipeline de renderizado
  • Renderizado hacia adelante
  • Renderizado diferido
  • Gráficos de sombreadores
  • Eliminar configuraciones de sombreadores integrados
  • Eliminar variantes de sombreadores
  • Suavizar bordes con anti-aliasing
  • Post-procesamiento espacio-temporal
  • Hornear mapas de luz
  • Minimizar Probes de Reflexión
  • Desactivar sombras
  • Sustituir un efecto de shader
  • Usar Capas de Luz
  • Usar el Lightmapper de GPU

Comprométete con un pipeline de renderizado

Optimizar la iluminación de la escena no es una ciencia exacta, sino un proceso iterativo. Involucra prueba y error y el proceso generalmente depende de la dirección artística y el pipeline de renderizado.

Antes de comenzar a iluminar tus escenas, necesitarás elegir uno de los pipelines de renderizado disponibles. Un pipeline de renderizado realiza una serie de operaciones que toman el contenido de una escena para mostrarlos en pantalla.

Unity proporciona tres pipelines de renderizado preconstruidos con diferentes capacidades y características de rendimiento, o puedes crear el tuyo propio.

1. El Pipeline de Renderizado Universal (URP) es un Pipeline de Renderizado Scriptable (SRP) preconstruido. URP proporciona flujos de trabajo amigables para artistas para crear gráficos optimizados en una variedad de plataformas, desde móviles hasta consolas y PCs de alta gama. URP es el sucesor del Pipeline de Renderizado Integrado, proporcionando características gráficas y de renderizado no disponibles con el pipeline anterior. Para mantener el rendimiento, hace concesiones para reducir el costo computacional de la iluminación y el sombreado. Elige URP si deseas alcanzar la mayoría de las plataformas objetivo, incluyendo móviles y VR.

Obtén una visión completa de las capacidades en URP en el e-book Introducción a el Pipeline de Renderizado Universal para creadores avanzados de Unity (edición Unity 6).

2. El Pipeline de Renderizado de Alta Definición (HDRP) es otro SRP preconstruido diseñado para gráficos de alta fidelidad y vanguardia. HDRP está pensado para hardware de alta gama como PC, Xbox y PlayStation. Es el pipeline de renderizado recomendado para crear gráficos fotorealistas con el más alto nivel de realismo en tu juego, con iluminación avanzada, reflejos y sombras. HDRP utiliza iluminación y materiales basados en la física y soporta herramientas de depuración mejoradas.

Obtén una visión completa de las capacidades de HDRP en el libro electrónico Iluminación y entornos en el High Definition Render Pipeline.

3. El Built-in Render Pipelinees el pipeline de renderizado más antiguo y de propósito general de Unity con personalización limitada. Este pipeline seguirá siendo soportado a lo largo del ciclo de Unity 6.x.

Demostración de Unity_Time Ghost
Una imagen de la demostración de alta gama de Unity, Time Ghost

Renderizado hacia adelante

En el renderizado hacia adelante, la tarjeta gráfica proyecta la geometría y la divide en vértices. Esos vértices se descomponen aún más en fragmentos, o píxeles, que se renderizan en la pantalla para crear la imagen final.

El pipeline pasa cada objeto, uno a la vez, a la API gráfica. El renderizado hacia adelante tiene un costo por cada luz. Cuantas más luces haya en tu escena, más tiempo tomará el renderizado.

El renderizador hacia adelante del Built-in Pipeline dibuja cada luz en una pasada separada por objeto. Si tienes múltiples luces impactando el mismo GameObject, esto puede crear un sobre-dibujo significativo, donde las áreas superpuestas necesitan dibujar el mismo píxel más de una vez. Minimiza el número de luces en tiempo real para reducir el sobre-dibujo.

En lugar de renderizar una pasada por luz, el URP elimina las luces por objeto. Esto permite que la iluminación se calcule en una sola pasada, resultando en menos llamadas de dibujo en comparación con el renderizador hacia adelante del Built-In Render Pipeline.

Hacia adelante +

El renderizado Forward+ mejora el renderizado Forward estándar al eliminar luces espacialmente en lugar de por objeto. Esto aumenta el número total de luces que se pueden utilizar en el renderizado de un cuadro. En el renderizado diferido, admite la API de RenderPass nativa, lo que permite combinar los pases de G-buffer y de iluminación en un solo pase de renderizado.

Una ilustración de cómo funciona el renderizado hacia adelante
Una ilustración de cómo funciona el renderizado hacia adelante

Renderizado diferido

En el sombreado diferido, la iluminación no se calcula por objeto.

El sombreado diferido, en cambio, pospone el cálculo de la iluminación a una etapa posterior. El sombreado diferido utiliza dos pases.

En el primer pase, o el pase de geometría G-Buffer, Unity renderiza los GameObjects. Este pase recupera varios tipos de propiedades geométricas y las almacena en un conjunto de texturas. Las texturas del G-buffer pueden incluir:

  • colores difusos y especulares
  • suavidad de la superficie
  • oclusión
  • normales en el espacio del mundo
  • emisión + ambiental + reflexiones + mapas de luz

En el segundo pase, o pase de iluminación, Unity renderiza la iluminación de la escena basada en el G-buffer. Imagina iterar sobre cada píxel y calcular la información de iluminación basada en el buffer en lugar de los objetos individuales. Así, agregar más luces que no proyectan sombras en el sombreado diferido no incurre en la misma pérdida de rendimiento que con el renderizado hacia adelante.

Aunque elegir un camino de renderizado no es una optimización en sí, puede afectar cómo optimizas tu proyecto. Las otras técnicas y flujos de trabajo en esta sección pueden variar dependiendo de qué pipeline de renderizado y qué camino de renderizado hayas elegido.

Una ilustración de cómo funciona la ruta de renderizado de sombreado diferido
Una ilustración de cómo funciona la ruta de renderizado de sombreado diferido

Gráficos de sombreadores

Tanto HDRP como URP admiten Shader Graph, una interfaz visual para la creación de shaders. Esto permite a algunos usuarios crear efectos de sombreado complejos que anteriormente podían estar fuera de alcance. Utiliza los más de 150 nodos en el sistema de gráficos visuales para crear más sombreadores. También puedes crear tus propios nodos personalizados con la API.

Comienza cada Shader Graph con un nodo maestro compatible, que determina la salida del gráfico. Agrega nodos y operadores con la interfaz visual y construye la lógica del sombreado.

Este Shader Graph luego pasa al backend del pipeline de renderizado. El resultado final es un sombreado ShaderLab, funcionalmente similar a uno escrito en HLSL o Cg.

Optimizar un Shader Graph sigue muchas de las mismas reglas que se aplican a los sombreadores HLSL/Cg tradicionales. Cuanto más procesamiento realice tu Shader Graph, más impactará el rendimiento de tu aplicación.

Si estás limitado por la CPU, optimizar tus sombreadores no mejorará la tasa de fotogramas, pero puede mejorar la duración de la batería en plataformas móviles.

Si estás limitado por la GPU, sigue estas pautas para mejorar el rendimiento con Shader Graphs:

- Reduce tus nodos: Elimina nodos no utilizados. No cambies ningún valor predeterminado ni conectes nodos a menos que esos cambios sean necesarios. Shader Graph compila automáticamente cualquier característica no utilizada. Cuando sea posible, hornea valores en texturas. Por ejemplo, en lugar de usar un nodo para aclarar una textura, aplica el brillo adicional en el propio activo de textura.

- Usa un formato de datos más pequeño: Cambia a una estructura de datos más pequeña cuando sea posible. Considera usar Vector2 en lugar de Vector3 si no impacta tu proyecto. También puedes reducir la precisión si la situación lo permite (por ejemplo, medio en lugar de float).

- Reducir operaciones matemáticas: Las operaciones de sombreado se ejecutan muchas veces por segundo, así que optimiza cualquier operador matemático cuando sea posible. Intenta mezclar resultados en lugar de crear una rama lógica. Usa constantes y combina valores escalares antes de aplicar vectores. Finalmente, convierte cualquier propiedad que no necesite aparecer en el Inspector en Nodos en línea. Todos estos aumentos de velocidad incrementales pueden ayudar a tu presupuesto de fotogramas.

- Rama de vista previa: A medida que tu gráfico se hace más grande, puede volverse más lento para compilar. Simplifica tu flujo de trabajo con una rama separada y más pequeña que contenga solo las operaciones que deseas previsualizar en este momento, luego itera más rápido en esta rama más pequeña hasta que logres los resultados deseados.

Si la rama no está conectada al nodo maestro, puedes dejar la rama de vista previa en tu gráfico de forma segura. Unity elimina nodos que no afectan la salida final durante la compilación.

- Optimizar manualmente: Incluso si eres un programador gráfico experimentado, aún puedes usar un Shader Graph para establecer un poco de código base para un sombreado basado en scripts. Selecciona el activo Shader Graph, luego selecciona Copiar Sombreadodel menú contextual.

Crea un nuevo Shader HLSL/Cg y luego pega el Shader Graph copiado. Esta es una operación unidireccional, pero te permite obtener un rendimiento adicional con optimizaciones manuales.

UNA INTERFAZ VISUAL BASADA EN NODOS PARA CONSTRUIR SOMBRAS EN SHADER GRAPH
Una interfaz visual basada en nodos para construir sombras en Shader Graph

Eliminar configuraciones de sombreadores integrados

Elimina todos los sombreadores que no uses de la lista de sombreadores Siempre Incluidos en la Configuración de Gráficos (Editar > Configuración del Proyecto > Gráficos). Agrega aquí los shaders que necesitarás durante la vida de la aplicación.

Shaders siempre incluidos
Shaders siempre incluidos

Eliminar variantes de sombreadores

Las variantes de shader pueden ser útiles para características específicas de la plataforma, pero aumentan los tiempos de compilación y el tamaño del archivo.

Puedes usar las directivas de pragma de compilación de shader para compilar el shader de manera diferente para las plataformas de destino. Luego, usa una palabra clave de shader (o un nodo Shader Graph Keyword) para crear variantes de shader con ciertas características habilitadas o deshabilitadas.

Puedes evitar que las variantes de shader se incluyan en tu compilación si sabes que no son necesarias.

Analiza el Editor.log para el tiempo y tamaño del shader. Localiza las líneas que comienzan con “Shader compilado” y “Shader comprimido.” En un registro de ejemplo, tu shader de PRUEBA puede mostrarte:

Shader compilado 'PRUEBA Estándar (configuración especular)' en 31.23s

d3d9 (programas internos totales: 482, únicos: 474)

d3d11 (programas internos totales: 482, únicos: 466)

metal (programas internos totales: 482, únicos: 480)

glcore (programas internos totales: 482, únicos: 454)

Shader comprimido 'PRUEBA Estándar (configuración especular)' en d3d9 de 1.04MB a 0.14MB

Shader comprimido 'PRUEBA Estándar (configuración especular)' en d3d11 de 1.39MB a 0.12MB

Shader comprimido 'PRUEBA Estándar (configuración especular)' en metal de 2.56MB a 0.20MB

Shader comprimido 'PRUEBA Estándar (configuración especular)' en glcore de 2.04MB a 0.15MB

Esto te dice algunas cosas sobre este shader:

- El shader se expande en 482 variantes debido a #pragma multi_compile y shader_feature.

- Unity comprime el shader incluido en los datos del juego a aproximadamente la suma de los tamaños comprimidos: 0.14+0.12+0.20+0.15 = 0.61MB.

- En tiempo de ejecución, Unity mantiene los datos comprimidos en memoria (0.61MB), mientras que los datos para tu API gráfica actualmente utilizada están descomprimidos. Por ejemplo, si tu API actual es Metal, eso representaría 2.56MB.

Después de una compilación, Project Auditor puede analizar el Editor.log para mostrar una lista de todos los shaders, palabras clave de shaders y variantes de shaders compiladas en un proyecto. También puede analizar el Player.log después de que se ejecute el juego. Esto te muestra qué variantes la aplicación realmente compiló y utilizó en tiempo de ejecución.

Utiliza esta información para construir un sistema de eliminación de shaders scriptables y reducir el número de variantes. Esto puede mejorar los tiempos de compilación, los tamaños de compilación y el uso de memoria en tiempo de ejecución.

Lee el Stripping scriptable shader variants artículo del blog para ver este proceso en detalle.

Suavizar bordes con anti-aliasing

El anti-aliasing ayuda a suavizar la imagen, reducir los bordes dentados y minimizar el aliasing especular.

Si estás utilizando renderizado Forward con el Pipeline de Renderizado Integrado, Multisample Anti-aliasing (MSAA) está disponible en la Configuración de calidad. MSAA produce un anti-aliasing de alta calidad, pero puede ser costoso. El MSAA Sample Count del menú desplegable (Ninguno, 2X, 4X, 8X) define cuántas muestras utiliza el renderizador para evaluar el efecto.

Si estás utilizando renderizado Forward con el URP o HDRP, puedes habilitar MSAA en el Activo del Pipeline de Renderizado.

Alternativamente, puedes agregar anti-aliasing como un efecto de post-procesamiento. Esto aparece en el componente de la Cámara bajo Anti-aliasing:

- El anti-aliasing aproximado rápido (FXAA) suaviza los bordes a nivel de píxel. Este es el anti-aliasing menos intensivo en recursos y borra ligeramente la imagen final.

- El anti-aliasing morfológico subpixel (SMAA) mezcla píxeles en función de los bordes de una imagen. Esto tiene resultados mucho más nítidos que FXAA y es adecuado para estilos artísticos planos, de dibujos animados o limpios.

En HDRP, también puedes usar FXAA y SMAA con la configuración de Post Anti-aliasing en la cámara. URP y HDRP también ofrecen una opción adicional:

- El anti-aliasing temporal (TAA) suaviza los bordes utilizando fotogramas del búfer de historial. Esto funciona de manera más efectiva que FXAA pero requiere vectores de movimiento para funcionar. TAA también puede mejorar la oclusión ambiental y los volumétricos. Generalmente es de mayor calidad que FXAA, pero consume más recursos y puede producir artefactos de ghosting ocasionales.

En URP, localiza la configuración de MSAA en el Activo del Pipeline de Renderizado.
En URP, localiza la configuración de MSAA en el Activo del Pipeline de Renderizado.

Post-procesamiento espacial temporal

El Post-Procesamiento Espacial-Temporal (STP) está diseñado para mejorar la calidad visual en una amplia gama de plataformas como móviles, consolas y PCs. STP es un escalador de anti-aliasing espaciotemporal que funciona con los pipelines de renderizado HDRP y URP, ofreciendo escalado de contenido de alta calidad sin necesidad de cambios en el contenido existente. Esta solución está particularmente optimizada para el rendimiento de la GPU, asegurando tiempos de renderizado más rápidos y facilitando lograr un alto rendimiento mientras se mantiene la calidad visual.

Para habilitar STP en el URP:

- Selecciona el Activo URP activo en la ventana del Proyecto.

- En el Inspector, navega a Calidad > Filtro de Escalado y selecciona Post-Procesamiento Espacial-Temporal.

Habilitando STP dentro del Activo URP
Habilitando STP dentro del Activo URP

Hornear mapas de luz

La opción más rápida para crear iluminación es una que no necesita ser calculada por fotograma. Para hacer esto, usa Iluminación Global (GI) para "hornear" la iluminación estática solo una vez, en lugar de calcularla en tiempo real.

Agrega iluminación dramática a tu geometría estática usando Iluminación Global (GI). Marca objetos con Contribuir GI para que puedas almacenar iluminación de alta calidad en forma de lightmaps.

El proceso de generar un entorno con lightmaps toma más tiempo que simplemente colocar una luz en la escena en Unity, pero esto:

- Funciona más rápido, 2-3 veces más rápido para luces de dos por píxel

- Se ve mejor – GI puede calcular iluminación directa e indirecta que parece realista. El lightmapper suaviza y elimina el ruido del mapa resultante.

Las sombras y la iluminación horneadas pueden renderizarse sin la misma pérdida de rendimiento que la iluminación y sombras en tiempo real.

Las escenas complejas pueden requerir largos tiempos de horneado. Si tu hardware soporta el Lightmapper GPU Progresivo, esta opción puede acelerar drásticamente la generación de tu lightmap, hasta diez veces en algunos casos.

Sigue esta guía para comenzar con Lightmapping en Unity.

Ajusta la configuración de Lightmapping (Windows > Rendering > Lighting Settings) y el tamaño del Lightmap para limitar el uso de memoria.
Ajusta la configuración de Lightmapping (Windows > Rendering > Lighting Settings) y el tamaño del Lightmap para limitar el uso de memoria.

Minimizar Probes de Reflexión

Un componente de Probe de Reflexión puede crear reflexiones realistas, pero esto puede ser muy costoso en términos de lotes. Usa cubemaps de baja resolución, máscaras de culling y compresión de texturas para mejorar el rendimiento en tiempo de ejecución. Usa Tipo: Horneado para evitar actualizaciones por cuadro.

Si usas Tipo: En Tiempo Real es necesario en URP, evita Cada Cuadro si es posible. Ajusta el Modo de Actualización y la configuración de División de Tiempo para reducir la tasa de actualización. También puedes controlar la actualización con la opción Via Scripting y renderizar el probe desde un script personalizado.

Si usas Tipo: En Tiempo Real es necesario en HDRP, usa el modo On Demand. También puedes modificar la Configuración de Cuadro en Configuración del Proyecto > Configuración Predeterminada de HDRP. Reduce la calidad y las características bajo Realtime Reflection para mejorar el rendimiento.

Reduce la calidad y las características bajo Reflexión en tiempo real para mejorar el rendimiento.

Cada Reflection Probe captura una imagen de su entorno en una textura de cubo.
Cada Reflection Probe captura una imagen de su entorno en una textura de cubo.

Usa Volúmenes de Probes Adaptativos

Unity 6 introduce Volúmenes de Probes Adaptativos (APVs) que proporcionan una solución sofisticada para manejar la iluminación global en Unity, permitiendo una iluminación dinámica y eficiente en escenas complejas. Los APVs pueden optimizar tanto el rendimiento como la calidad visual, particularmente en dispositivos móviles y de gama baja, mientras ofrecen capacidades avanzadas para plataformas de gama alta.

Los APVs ofrecen una variedad de características para mejorar la iluminación global, particularmente en escenas dinámicas y grandes. URP ahora soporta muestreo por vértice para mejorar el rendimiento en dispositivos de gama baja, mientras que las partículas VFX se benefician de la iluminación indirecta horneada en volúmenes de probes.

Los datos de APV pueden ser transmitidos desde el disco a la CPU y GPU, optimizando la información de iluminación para grandes entornos. Los desarrolladores pueden hornear y mezclar múltiples escenarios de iluminación, permitiendo transiciones en tiempo real como ciclos de día/noche. El sistema también soporta oclusión del cielo, se integra con la API Ray Intersector para cálculos de probes más eficientes, y ofrece control sobre la densidad de muestreo de Light Probe para reducir fugas de luz y acelerar iteraciones. La nueva API de horneado en C# también permite el horneado independiente de APV de mapas de luz o probes de reflexión.

Para comenzar a usar APVs, consulta la charla Iluminación eficiente e impactante con Volúmenes de Probes Adaptativos de GDC 2023.

Tener múltiples APVs es útil para tener más control sobre la densidad de probes en el nivel.
Tener múltiples APVs es útil para tener más control sobre la densidad de probes en el nivel.

Desactivar sombras

La proyección de sombras se puede desactivar por MeshRenderer y luz. Desactiva las sombras siempre que sea posible para reducir las llamadas de dibujo.

También puedes crear sombras falsas usando una textura difusa aplicada a una malla simple o cuadrado debajo de tus personajes. De lo contrario, puedes crear sombras de blob con shaders personalizados.

En particular, evita habilitar sombras para luces puntuales. Cada luz puntual con sombras requiere seis pasadas de mapa de sombras por luz – compara eso con una sola pasada de mapa de sombras para una luz puntual. Considera reemplazar las luces puntuales con focos donde las sombras dinámicas sean absolutamente necesarias. Si puedes evitar las sombras dinámicas, utiliza un cubemap como una Light.cookie con tus luces puntuales en su lugar.

Desactiva la proyección de sombras para reducir las llamadas de dibujo.
Desactiva la proyección de sombras para reducir las llamadas de dibujo.

Sustituir un efecto de shader

En algunos casos, puedes aplicar trucos simples en lugar de agregar múltiples luces adicionales. Por ejemplo, en lugar de crear una luz que brille directamente hacia la cámara para dar un efecto de iluminación de contorno, utiliza un Shader que simule la iluminación de contorno (ver Surface Shader examples para una implementación de esto en HLSL).

Usar Capas de Luz

Para escenas complejas con muchas luces, separa tus objetos usando capas, luego confina la influencia de cada luz a una Culling Mask específica.

 Las capas pueden limitar la influencia de tu luz a una Culling Mask específica.
Las capas pueden limitar la influencia de tu luz a una Culling Mask específica.

Usar el Lightmapper de GPU

El Lightmapper GPU está listo para producción en Unity 6. Acelera drásticamente la generación de datos de iluminación aprovechando la GPU, ofreciendo tiempos de horneado significativamente más rápidos en comparación con el lightmapping tradicional en CPU. Introduce un nuevo backend de horneado de luz que simplifica la base de código y ofrece resultados más predecibles. Además, el requisito mínimo de GPU se ha reducido a 2GB, e incluye una nueva API para mover posiciones de sondas de luz en tiempo de ejecución, lo cual es particularmente útil para contenido generado proceduralmente, junto con varias mejoras en la calidad de vida.

Seleccionando el Lightmapper GPU
Seleccionando el Lightmapper GPU
E-books de Unity
Más consejos para Unity 6

Puedes encontrar muchas más prácticas recomendadas y consejos para desarrolladores y creadores avanzados de Unity en el centro de prácticas recomendadas de Unity. Elige entre más de 30 guías, creadas por expertos de la industria, ingenieros de Unity y artistas técnicos, que te ayudarán a desarrollar de manera eficiente con las herramientas y sistemas de Unity.

Más prácticas recomendadas