Oodle Texture proporciona una codificación rápida y de alta calidad de texturas en los distintos formatos BCn/DXTn. Cuando Oodle Texture se configure, funcionará automáticamente en segundo plano. Puedes establecer Oodle Texture globalmente, y luego definirla más específicamente para grupos de LOD y texturas individuales.
Oodle Texture no codifica ASTC u otros formatos móviles.
Cómo habilitar Oodle Texture
El complemento Oodle Texture está habilitado de forma predeterminada en Unreal Engine.
Además del complemento, Oodle Texture requiere un ajuste en el archivo DefaultEngine.ini.
\Engine\Config\DefaultEngine.ini
[AlternateTextureCompression]
TextureCompressionFormat="TextureFormatOodle"
TextureFormatPrefix="OODLE_"
bEnableInEditor=TrueComo Oodle Texture viene habilitado de forma predeterminada en Unreal Engine, estas líneas ya deberían estar presentes en el archivo BaseEngine.ini.
Recomendamos encarecidamente dejar bEnableInEditor=true para mantener un comportamiento coherente entre el editor y las compilaciones empaquetadas. Si se establece como false, los artistas que revisen los resultados de la codificación en el editor verán resultados distintos a los que produce el sistema.
Puedes comprobar que Oodle Texture está activado si examinas el registro:
LogTextureFormatOodle: Display: Oodle Texture 2.9.0 init RDO On with DefaultRDOLambda=30
Si se usa Oodle para una textura determinada, el formato contendrá el prefijo OODLE_:
LogTexture: Display: Building textures: test (OODLE_AutoDXT, 256X256)
Conceptos clave de Oodle Texture
Hay dos conceptos que debes conocer para poder usar Oodle Texture: RDO (optimización de la distorsión de la velocidad) y lambda.
Conceptos básicos sobre RDO
RDO es un término que se refiere al intercambio de calidad (distorsión) por tamaño (tasa). Suena extraño en el caso de la codificación de texturas. El tamaño de las texturas DXTn/BCn no varía con la calidad, sino que tienen un tamaño fijo que depende del formato, la resolución y el recuento de MIP.
Oodle Texture expone opcionalmente una forma de gestionar los datos de textura codificados resultantes, de modo que, cuando un recurso que contenga una textura se comprima para su distribución a través del sistema de archivos iOStore/.pak, se comprime a menor tamaño. Por lo tanto, la RDO de Oodle Texture solo reduce los tamaños de distribución.
Además, está ajustado para funcionar con el formato de compresión de Kraken. Consulta Datos de Oodle para obtener más información.
Conceptos básicos de Lambda
El parámetro que determina cuánta distorsión se introduce y, por tanto, el tamaño del archivo resultante se denomina lambda.
Lambda puede establecerse entre 0 y 100; los números más bajos representan una menor distorsión y, por lo tanto, resultados de mayor calidad. Un valor lambda de alrededor de 30 produce resultados de alta calidad. Un valor lambda de 0 desactiva la RDO por completo, lo que se traduce en una calidad teórica mejor. Sin embargo, incluso cuando se busca la mejor calidad, recomendamos usar un valor lambda de 1, ya que la relación coste/beneficio sigue siendo muy buena, lo que se traduce en muy poca distorsión para obtener un aumento razonable de tamaño de la distribución.
En términos generales, esperamos que lambda se establezca globalmente y no se anule a menudo. Determinar un valor apropiado para el proyecto requerirá un esfuerzo de colaboración basado en las necesidades de tamaño de la distribución. Lo mejor es que la lambda global sea la de mayor valor (calidad más baja) y establecer selectivamente una lambda de mayor calidad o menor en grupos de LOD o texturas específicas, según sea necesario.
Es probable que las texturas que no sean mapas de albedo o difuminado necesiten un lambda más bajo (normalmente, entre 5 y 20), sobre todo en los mapas normales, ya que la distorsión que no es visible a simple vista puede ser más notoria con texturas como las luces especulares.
Cómo configurar Oodle Texture
Oodle Texture se configura principalmente con el archivo DefaultEngine.ini, pero también expone lambda en los grupos de LOD de las texturas y para cada textura.
Configuración global
La sección TextureFormatOodle del archivo DefaultEngine.ini contiene los ajustes globales para Oodle Texture.
\Engine\Config\DefaultEngine.ini
[TextureFormatOodle]
DefaultRDOLambda=30
GlobalLambdaMultiplier=1.0
bForceAllBC23ToBC7=False
bForceRDOOff=False
bDebugColor=False| Ajuste | Definición |
|---|---|
| La lambda de la RDO que se usará si no se establece en ningún otro lugar. |
| Ajusta la escala de la lambda que se pasa al codificador. Se proporciona como control de última hora para gestionar los tamaños de distribución sin tener que buscar texturas individuales o grupos LOD. El valor se aplica directamente a lambda, lo que significa que un valor de multiplicador superior a 1 añade distorsión y reduce la calidad, mientras que un valor de multiplicador entre 0 y 1 reduce la distorsión y añade calidad. El resultado se redondea al entero más próximo para su uso. Esto no puede desactivar la RDO (el resultado será al menos 1). |
| Si se habilita, cada vez que se ejecuta un BC2 o BC3 (es decir, DXT3 y DXT5), Oodle comprimirá una textura BC7 en su lugar. BC7 suele ser de mejor calidad, pero según tus especificaciones mínimas, puede que no esté disponible. |
| Si se habilita, el RDO estará deshabilitado en todo momento, independientemente de cualquier ajuste de RDO específico de la textura. |
| Si se habilita, las texturas se comprimirán como un color sólido que representará su formato codificado para su identificación visual. Formato - Color BC1 - Rojo (0xff0000) BC2 - Verde oscuro (0x008000) BC3 - Verde (0x00ff00) BC4 - Amarillo oscuro (0x808000) BC5 - Amarillo (0xffff00) BC6 - Morado (R = .5f, G = 0.0f, B = .8f) BC7 (opaco) - Azul oscuro (0x8080ff) BC7 (transparente) - Azul (0x0000ff) |
Configuración de grupos de LOD de textura
El parámetro del grupo de LOD que representa la RDO lambda se denomina Cantidad de compresión con pérdida. Este parámetro se define para los grupos de LOD en el archivo DefaultDeviceProfiles.ini.
TextureLODGroups=(Group=TEXTUREGROUP_WorldNormalMap,MinLODSize=1,MaxLODSize=8192,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage,**LossyCompressionAmount=TLCA_Low**)La cantidad de compresión con pérdida puede tener los siguientes valores:
| Valor | Descripción |
|---|---|
TLCA_Default | Heredar. Si se establece en una textura, hereda del grupo de LOD. Si se establece en un grupo de LOD, hereda de |
TLCA_None | Deshabilitar RDO (0) |
TLCA_Lowest | 1: Máxima calidad, mayor tamaño de archivo. |
TLCA_Low | 10 |
TLCA_Medium | 20 |
TLCA_High | 30 |
TLCA_Highest | 40 - Peor calidad, menor tamaño de archivo. |
Cómo configurar texturas individuales
La RDO lambda también se puede establecer para texturas individuales mediante el parámetro de compresión con pérdida. Este parámetro toma los mismos valores que los anteriores.
Para establecer el parámetro para una sola textura:
Haz doble clic en la textura para la que quieras establecer la RDO lambda en el explorador de contenido para abrirla en la ventana del editor de textura.
En el panel Detalles, expande la sección de compresión y haz clic en el icono de flecha para mostrar las opciones avanzadas.
Usa el menú desplegable que hay junto al parámetro Cantidad de compresión con pérdida para seleccionar el valor que quieras.