El complemento Impostor Baker permite hacer bake de representaciones simplificadas de geometría compleja para su uso en renderizado a distancia como mallas de nivel de detalle (LOD). Hay tres tipos principales de impostores que puedes generar utilizando Impostor Baker:
Impostor de esfera completa para capturar y renderizar vistas desde todos los ángulos alrededor del objeto.
Impostor de hemisferio superior para capturar y renderizar solo vistas superiores del terreno. Esta opción proporciona una mejor calidad a los objetos que normalmente están sobre el terreno y no se pueden ver desde abajo ni desde muy lejos. Ahorra recursos de procesamiento al no renderizar las vistas que no se utilizan.
LOD de vallas publicitarias tradicionales utiliza la técnica más antigua de capturar imágenes alrededor de ángulos horizontales fijos y una única imagen cenital para representar la vista cenital. Cada una de estas imágenes se coloca en su propia tarjeta de sprite y se basa en el ángulo de visión. Las tarjetas que dan la espalda se desvanecen mediante un efecto de tramado.
Los dos primeros tipos de impostores se basan en la misma técnica. La herramienta captura un número especificado de vistas alrededor del objeto. Cuando se realiza el renderizado, el material impostor encuentra los tres fotogramas capturados más cercanos a la vista actual de la cámara y los mezcla para llegar a una representación que se acerque más al ángulo de visión real. Estos tres fotogramas se renderizan en un único plano de sprite.
Los impostores proporcionan una simulación más suave y realista de geometría 3D renderizando siempre un único fotograma de sprite mezclado desde la perspectiva del espectador, en comparación con la valla publicitaria, que utiliza planos específicos de sprite de perspectiva fija que no se verán del todo bien desde algunos ángulos. El siguiente vídeo muestra esta diferencia.
Izquierda: impostor; Derecha: vallas publicitarias.
En Fortnite Battle Royale (FNBR), utilizamos impostores del hemisferio superior para todos nuestros árboles cuando Nanite está desactivado. Esto proporciona una mejor calidad a los árboles desplegados sobre la isla que se ven desde lejos.
Comparación entre impostores y vallas publicitarias
La diferencia entre un impostor y una valla publicitaria es que los impostores utilizan una tarjeta de sprite que contiene 8 triángulos con 9 vértices, y la valla publicitaria utiliza 8 tarjetas que contienen 72 triángulos con 81 vértices en total. Esto significa que las representaciones de valla publicitaria tienen ocho veces el número de vértices y de triángulos para representar que la de un impostor.
Los impostores suelen renderizar mucho más rápido que las vallas publicitarias porque contienen menos vértices, aunque el sombreador de píxeles les resulta más caro porque mezcla los tres fotogramas más cercanos (el renderizado de impostor para móviles vuelve a usar una muestra de fotograma único.). Las vallas publicitarias siguen teniendo peores superposiciones de píxeles superposición para sus materiales enmascarados. La principal ventaja de utilizar una valla publicitaria es que puedes obtener más resolución en la textura porque solo se capturan nueve vistas (en una cuadrícula de 3x3).
Para los follajes a distancia, utilizamos un valor de 12 en la distribución de fotogramas XY del impostor. Hacemos esto para la mayoría de los recursos en Fortnite Battle Royale. El resultado son 12 fotogramas por 12 fotogramas para un total de 144 fotogramas utilizados.
Cómo habilitar el complemento Imposter Baker
Antes de empezar, habilita el complemento ImposterBaker en Unreal Engine para tu proyecto. Puedes hacerlo desde el explorador de complementos en el menú Editar. El complemento se encuentra en la categoría INTEGRADO > Malla.
Cambios en el complemento Impostor Baker en Unreal Engine 5.5 y versiones posteriores
Hay nuevas funciones en Impostor Baker que facilitan su uso y cubren más casos prácticos. Estas mejoras son las siguientes:
Impostor Baker ahora puede renderizar utilizando GBuffer sin necesidad de colocar un interruptor de material en los recursos de materiales.
Impostor Baker ahora puede renderizar todos los mapas de color y los mapas escalares que utilicen los materiales y empaquetar los canales de mapas escalares en cualquier combinación que especifiques.
Impostor Baker ahora incluye un editor de recursos completo para renderizar y ajustar valores que se pueden guardar automáticamente en recursos de datos como «preajustes».
Ahora puedes guardar automáticamente los datos de texturas y mallas directamente en el recurso fuente con un solo clic.
Impostor Baker ahora incluye un renderizador por lotes capaz de renderizar impostores para múltiples mallas utilizando el preajuste especificado y guardarlos todos.
Ahora puedes alternar entre Sin paralaje, Paralaje de desfase topológico único y Paralaje con iteración completa directamente desde el editor de Impostor Baker o la instancia de material resultante.
Cómo usar el editor de Impostor Baker
En los siguientes apartados se describen las distintas secciones del editor de Impostor Baker.
Widget del editor de Impostor Baker
El widget del editor de Impostor Baker te da control total para personalizar y crear tu impostor.
Widget preajustado
La generación de impostores con el widget preajustado te permite generar y guardar varios impostores a la vez.
Para acceder a cualquiera de estos widgets, haz clic derecho en cualquier recurso de malla estática el explorador de contenido y selecciona la opción Acciones de recursos programadas > Impostor Baker.
Recurso de datos preajustado
El recurso de datos preajustado contiene todos los valores predeterminados que se inicializan al abrir el editor de Impostor Baker. Esto ahorra tiempo cuando renderizas repetidamente muchos impostores manteniendo la coherencia en la configuración (consulta más abajo las descripciones de las configuraciones individuales).
Puedes cambiar tu preajuste de configuración actual utilizando los botones situados encima, tal y como se indica a continuación:
Cargar ajustes: aplica los ajustes del recurso de datos en el editor de Impostor Baker.
Aplicar al recurso de datos: aplica los ajustes actuales del editor de Impostor Baker al recurso de datos.
Nuevo recurso de datos: crea un nuevo recurso de datos en la ruta especificada en Guardar recurso.
Puedes especificar qué recurso de datos utilizar por defecto al iniciar el editor de Impostor Baker o el renderizado de preajustes del archivo DefaultEditor.ini de tu proyecto (ubicado en \(Tu Proyecto Raíz)\config\DefaultEditor.ini). Incluye la siguiente información en el archivo .ini :
[/ImpostorBaker/BP/EUW_Impostor_Editor.EUW_Impostor_Editor_C]
DefaultSettingsAssetPath=/Game/ImpostorPresets
[/ImpostorBaker/BP/EUW_Generate_Impostor_using_Preset.EUW_Generate_Impostor_using_Preset_C]
DefaultSettingsAssetPath=/Game/ImpostorPresetsA continuación, cambia DefaultSettingsAssetPath para que apunte a un recurso de datos que hayas creado en tu proyecto (o el predeterminado instalado con el complemento).
Ajustes de bake
La sección de ajustes de bake contiene las principales configuraciones que afectan a la generación de impostores.
| Ajustes de bake | Descripción |
|---|---|
Malla estática | Determina para qué recurso de malla estática se va a generar un impostor. |
Fotogramas XY | Determina cuántos subfotogramas se generarán en cada eje. Por ejemplo, un valor de 16 crearía 16x16=256 subfotogramas. |
Mapas de color para renderizar | Determina qué mapa de color completo renderizará Impostor Baker para tu impostor. La mayoría de los impostores solo requieren los mapas **Color base** y **Normal**. La lista completa de opciones de salida de mapa de color es la siguiente:
|
Máscaras de empaquetado en canales | Permite renderizar mapas escalares personalizados y empaqueta el resultado en diferentes canales de color en una sola textura. Las opciones son:
|
Tipo de impostor | Determina el tipo de impostor que se va a renderizar. Las opciones son:
|
Resolución | Resolución de textura que se debe utilizar para las texturas resultantes. Epic Games utiliza una resolución de 2048 para sus proyectos, como Fortnite Battle Royal. |
Ajustes de material
La sección Configuración de material contiene la configuración de los materiales que utilizará tu impostor y varios ajustes para aplicar al material resultante.
| Ajustes de material | Descripción |
|---|---|
Material de hemisferio | Determina qué material padre se utiliza para tu impostor. Normalmente no es necesario que cambies esto. La configuración muestra el valor predeterminado correcto para cada tipo en función del tipo de impostor seleccionado en los ajustes de hacer bake. |
Anulación del modelo de uso compartido | Permite cambiar el modelo de uso compartido actual a cualquier modelo de sombreado disponible. |
Modo de paralaje | Alterna entre tres modos:
|
Especular constante | Establece el valor que se utilizará para Especular cuando no haya ningún mapa especular que se esté renderizando en la matriz de máscaras de empaquetado en canales. Esta opción está oculta cuando se renderiza un mapa especular. |
Rugosidad constante | Establece el valor que se utilizará para la rugosidad cuando no haya ningún mapa de rugosidad que se esté renderizando en la matriz de máscaras de empaquetado en canales. Esta opción está oculta cuando se renderiza un mapa de rugosidad. |
Opacidad constante | Establece el valor que se utilizará para la opacidad cuando no haya ningún mapa de opacidad que se esté renderizando en las máscaras de empaquetado en canales. Esta opción está oculta cuando se renderiza un mapa de opacidad. |
Color subsuperficial | Establece el valor que se utilizará para el color subsuperficial cuando no haya ningún mapa de color subsuperficial que se esté renderizando. Este color se multiplicará por el color base y se enmascarará utilizando el valor alfa del campo de distancia (que se almacena en la máscara de opacidad, en el alfa de color base). Esta opción está oculta cuando se renderiza un mapa de color subsuperficial. |
Valor mínimo de máscara de dispersión | Esto establece el valor mínimo en el que la dispersión surte efecto, permitiendo que los valores alfa de campo de distancia se utilicen como máscara de dispersión subsuperficial para este impostor. Tiene la ventaja añadida de que devuelve algo del sombreado propio que, de otro modo, faltaría en la dispersión. |
Longitud de máscara de dispersión | Esto establece el valor de la amplitud del degradado del borde para la máscara de dispersión creada utilizando el valor alfa del campo de distancia. Tiene la ventaja añadida de que devuelve algo del sombreado propio que, de otro modo, faltaría en la dispersión. |
Desfase de máscara | Este valor amplía o reduce el desfase de la máscara creada utilizando el valor alfa del campo de distancia. |
Configuración de valla publicitaria
La configuración de valla publicitaria solo se muestra cuando el tipo de impostor (situado debajo de Ajustes de bake se establece en Vallas publicitarias tradicionales. El tipo de impostor proporciona algunas configuraciones para ajustar específicamente la valla publicitaria.
| Configuración de valla publicitaria | Descripción |
|---|---|
Centro XY en punto de traslación de malla | Este ajuste está desactivado de forma predeterminada. Cuando está desactivado, la malla estática se captura con la cámara girando alrededor del centro de sus límites. Esto suele garantizar que el objeto se mantenga dentro del fotograma capturado. En algunos casos, específicamente en el caso de los árboles, el centro real de los límites puede no estar exactamente en el punto de traslación (que suele ser donde está el tronco del árbol). Esto puede dar lugar a un artefacto en el que se vea brevemente el fantasma de troncos ligeramente desfasados mientras la cámara gira alrededor de la valla publicitaria resultante. Activar esta configuración fuerza a la captura a centrarse alrededor del punto de traslación de la malla en la posición XY, lo que corrige el artefacto. Esta configuración puede causar problemas si se utiliza en mallas que tengan el punto de traslación alejado del centro. |
Parte superior del plano de referencia | Desplaza el plano de referencia de la tarjeta que mira hacia arriba. El valor está normalizado de 0 a 1, donde 0.5 representa el punto medio de la malla. Cuando modifiques este ajuste, coloca la tarjeta superior en la parte más ancha de la malla estática. Para este ejemplo con un pino, la tarjeta superior se empuja un poco hacia abajo, lo que ayuda a reducir los artefactos. |
Laterales del plano de referencia | Este ajuste funciona de manera similar a Parte superior del plano de referencia, pero en lugar de eso, desplaza los planos laterales a lo largo de su normal. Normalmente no hay ninguna razón para ajustar esta configuración, a menos que estés capturando un objeto muy denso que ocupe la mayor parte de los límites en todas partes y tengas activadas las opciones de paralaje. |
Usar sombreador de vértices de sprite | Este ajuste solo debe activarse cuando se habilitan las opciones de **Paralaje**. Hace que los UV se equilibren más allá de los límites de la geometría, lo que mostrarán recortes. El ejemplo siguiente muestra un caso extremo en el que puedes ver recortes alrededor de la parte inferior de la malla. Utiliza este ajuste con moderación porque su efecto empeora la superposición de píxeles enmascarada. |
Hay otros valores de instancias de material de valla publicitaria que controlan ajustes adicionales que no están expuestos al blueprint, pero estos ajustes pueden configurarse en casos más avanzados. Las categorías principales son los ajustes de tramado, que definen cuánto tramar la transición, y los ajustes de sombreadores de vértices, que definen el umbral para eliminar las tarjetas cuando empiezan a alejarse de la cámara.
Configuración para guardar recursos
La configuración para guardar recursos define dónde se guardan los recursos.
| Configuración para guardar recursos | Descripción |
|---|---|
Ruta del nuevo recurso | La ubicación de la carpeta para texturas y materiales. Por defecto, la ruta es relativa a la malla estática. Cuando la ruta es relativa, puedes comenzar la ruta con |
Prefijo de textura del nuevo recurso | Este es el prefijo que se añade al nombre del nuevo recurso de textura. |
Prefijo MIC del nuevo recurso | Este es el prefijo antepuesto al nombre de los nuevos recursos de constante de instancia de material. |
Usar ruta relativa | Establece la ruta relativa a la malla fuente. Si esta opción desactivada, la ruta debe comenzar por |
El nombre del recurso de malla estática siempre se añadirá al prefijo especificado, seguido del nombre de cada mapa. Por ejemplo, si tienes una malla estática llamada S_Tree_01, el color base resultante sería T_Impostor_S_Tree_01_BaseColor según los valores mostrados en la imagen de arriba.
Ajustes avanzados
La configuración avanzada contiene valores que no es necesario editar a menudo.
| Ajustes avanzados | Descripción |
|---|---|
Capturar con GBuffer | Cuando se activa, GBuffer se utilizará para capturar los datos del impostor. Esto funciona para todos los materiales opacos y enmascarados, pero no con los traslúcidos. Si la malla fuente contiene materiales traslúcidos, el editor de Impostor Baker te lo avisará con un texto rojo en el visor. Las versiones anteriores de este complemento requerían que coloques primero la función de material «Interruptor de captura de impostor» en cada material. Esto ya no es necesario, pero puede ser deseable en algunos casos. Un caso práctico de ejemplo sería cómo utilizamos esto en Fortnite Battle Royale para modificar un material y eliminar ciertos efectos de coloración basados en el mundo, de modo que el material del impostor pueda colorearse dinámicamente después de la generación. |
Ortogonal | Cuando se activa, la captura se realiza mediante renderizado ortogonal. Este ajuste no debe modificarse casi nunca. Casi nunca se necesita renderizado con perspectiva porque el material con paralaje recrea la perspectiva exacta más tarde. Sin embargo, hay ciertos efectos de materiales, como Fresnel, que no se pueden capturar correctamente mediante renderizado ortogonal, por lo que esta configuración puede desactivarse en esos casos. |
Distancia de la cámara | Solo se utiliza cuando la opción Ortogonal está desactivada. Establece la distancia de la captura. |
Resolución de captura de escena | La resolución a la que capturar cada subfotograma. El valor de este ajuste se redondea automáticamente a la potencia de 2 más cercana porque ciertas partes del proceso requieren una cadena de minimapa de las texturas de captura de escena (en concreto, generar los recortes de geometría del sprite al final). Establece este valor al menos al doble de la resolución de cada subfotograma de la textura final para que el resultado final se supermuestree. Por ejemplo, si la textura final es 4096 con 16 fotogramas XY, cada subfotograma será de 256x256. Una resolución de captura de escena predeterminada de 512 significa que el subfotograma se renderizará al 200 % de porcentaje de pantalla, lo que producirá mejores resultados de antialiasing. |
Mostrar suelo en escenas de previsualización | Muestra y oculta una malla de suelo en el visor. No tiene ningún impacto en el resultado. |
El impostor proyecta sombras | Activa y desactiva la proyección de sombras del impostor en el visor de previsualización. Esto no afecta al proceso de captura ni a los recursos creados resultantes. |
Modo de depuración de sombreador | Activa y desactiva una superposición de depuración en el material que muestra la cuadrícula de todos los fotogramas capturados. Además, señala la posición del rayo de la cámara a través de esta cuadrícula tanto para la cámara como para la luz del sol (visualizando una sombra diferida). El «triángulo» actual que contiene los tres fotogramas de la vista más cercana también se muestra y se colorea con el peso de mezcla en esa posición. |
Mostrar valores de depuración | Muestra una nueva categoría de configuración de detalles llamada Depuración con una variedad de información de depuración interna del editor de Impostor Baker (como la dinámica de instancia de material que se utiliza, varias estadísticas sobre límites y puntos de traslación, etc.). Solo es útil para problemas de depuración. |
Mostrar objetivos de renderizado | Muestra una nueva categoría de configuración de detalles llamada Objetivos de renderizado que muestra todas las distintas matrices de objetivos de renderizado para los diferentes minimapas de captura de escena. Puede ser útil inspeccionarlo de vez en cuando. |
Caja retenedora S RGB manual | El editor de Impostor Baker actualmente renderiza FPreviewScene sin una curva gamma debido a un error. Esta casilla de verificación activa un método predeterminado que utiliza un widget retenedor UMG para aplicar una curva sRGB. |
Modos de previsualización
Puedes controlar el visor de varias maneras para previsualizar a tus impostores. De forma predeterminada, el visor alterna entre la malla fuente y el impostor renderizado según el valor configurable de Intercambiar por distancia, pero también puedes configurarlo para que muestre tanto en la vista En paralelo como en la vista Solo impostor:
La vista en paralelo es útil en combinación con la configuración del modo de visualización, que puedes utilizar para encontrar y mostrar cualquier diferencia entre la malla fuente y la impostora. Esta vista es especialmente útil cuando se intenta aproximar a un valor especular o de rugosidad constante sin capturar esos valores.
A continuación se muestra un ejemplo del visor que muestra la normal para la malla fuente original y la impostora:
Puedes girar la luz del sol manteniendo pulsada la tecla L, haciendo clic y arrastrando el ratón. Puedes orbitar la cámara haciendo clic con el botón izquierdo y arrastrando, o moverla hacia delante y hacia atrás haciendo clic con el botón derecho y arrastrando o utilizando la rueda del ratón:
Materiales padre
Puedes encontrar el material padre base para impostores en el explorador de contenido en Engine/Plugins/ImposterBaker Content/Materials/Parents. Abre el material nombrado M_Imposter para inspeccionarlo.
El núcleo del comportamiento del impostor, incluido un juego de máscaras de empaquetado en canales, se engloba en una función aquí:
La sección que se pasa en los valores de especular constante está justo a la derecha de la función mostrada en la imagen anterior, como puede verse a continuación. Esta función también se encarga de la dispersión subsuperficial integrada que está enmascarada por el valor alfa del campo de distancia:
Mapas de color opcionales
Los mapas de color opcionales adicionales que puedes renderizar (emisivo, subsuperficial, tangente) ya están conectados al material mediante esta función. La herramienta activa automáticamente un interruptor estático para habilitar los mapas correctos cuando se renderizan:
Puedes añadir al material más mapas de color, como la textura **Iluminación** (que actualmente no está conectada a ninguna parte) o un mapa escalar adicional a los cuatro incluidos en la textura Empaquetado en canales utilizando la función que se muestra a continuación (que está presente en el material debajo de las funciones descritas en las imágenes de arriba, solo que desconectada):
Mapas escalares
Los mapas escalares adicionales que puedes renderiza (rugosidad, especular, recubrimiento transparente, etc.), ya están conectados al material mediante esta función, que también acciona los interruptores estáticos automáticamente para activar las texturas renderizadas junto con su correspondiente canal de color.
El material padre de las vallas publicitarias tradicionales se encuentra en el explorador de contenido en Engine/Plugins/ImposterBaker Content/Materials. Abre el material nombrado M_Billboard_01_Inst.
/Script/Engine.Material/ImpostorBaker/Materials/Parents/M_Billboard_01_Inst
Está configurado exactamente igual que el material del impostor anterior; puedes consultar esas imágenes para entender la disposición tradicional del material de valla publicitaria. Las funciones de material se nombran igual, pero incluyen _Billboard en el nombre. La lógica también es esencialmente similar, solo se diferencia en los detalles internos de la función.
Renderizado sin GBuffer
Para capturar translucidez o para casos especiales en los que necesites desactivar ciertas funciones durante la captura, tienes que deshabilitar Capturar con GBuffer y colocar la función de material ImpostorCaptureSwitch al final del grafo que utiliza la malla:
Si deshabilitas Capturar con GBuffer pero no incluyes la función de material ImposterCaptureSwitch, el impostor capturado se renderizará incorrectamente con muchos artefactos. Esto se debe a que el material interpretará el color base y la iluminación como profundidad, lo que aplicará paralaje a la salida y producirá muchos errores de renderizado.
Para entender la gravedad de este problema, imagina que la cita del desarrollador dice lo siguiente:
«Si desmarcas Capturar con GBuffer pero NO incluyes la función anterior en los materiales, el impostor capturado básicamente parecerá una bola humeante de tristeza artefactada, porque el material interpretará el color base y la iluminación como profundidad y aplicará paralaje para convertirlo en un baile de píxeles totalmente olvidable.
El impostor triste tiene hoy un caso grave de síndrome del impostor; su configuración ni siquiera es válida».
Cómo generar varios impostores usando preajustes
Puedes generar impostores para varias mallas estáticas seleccionándolos, haciendo clic con el botón derecho y eligiendo Acciones de recursos programadas > Impostor Baker > Generar impostor con preajuste en el menú contextual.
Cuando hayas definido tu preajuste de configuración preajuste y hayas decidido qué acción tomar si una malla estática ya tiene un impostor en el último LOD, haz clic en Generar y guardar impostores.
Si has activado Presentar diálogo, el proceso se detendrá si se detecta un impostor preexistente. Este proceso permanecerá en pausa hasta que hagas una selección en el diálogo emergente y elijas una acción, ya sea sustituir el último LOD, añadir uno nuevo u omitir este paso por completo. Esto también puede ocurrir en el editor de Impostor Baker.
Modo de paralaje totalmente iterativo
El modo Paralaje totalmente iterativo es capaz de producir un renderizado que casi indistinguible de la malla original, siempre que el impostor capture los datos de todos los canales que utiliza el original. Elige el mejor resultado de rayo para cada píxel de un fotograma vecino para trazar esencialmente alrededor de las esquinas de los vecinos. Esta opción se llama Ponderaciones derivadas de la profundidad.
Aquí tienes un ejemplo en el que se compara el paralaje único con el paralaje iterativo utilizando el calibrador de color mientras se capturan los mapas especular, rugosidad, recubrimiento transparente y metálico en una textura empaquetada en canales. Se trata de una prueba muy exigente que magnifica los artefactos de la mezcla.