Las texturas de Renderizado Basado en Físicas (PBR) te permiten representar sombras y luces realistas utilizando múltiples tipos de imágenes de textura, o mapas, en un solo objeto. Combinar múltiples mapas de textura puede simular con mayor precisión el color, la rugosidad y la reflectividad en cualquier entorno de iluminación y puede mejorar los elementos visuales de tus activos y entorno.


Existen varias aplicaciones y flujos de trabajo disponibles para crear texturas PBR. Puedes usar estas durante las fases de modelado y texturización de la creación de objetos 3D personalizados, siempre que Roblox Studio soporte los mapas de textura específicos que estás utilizando.
Esta guía proporciona instrucciones sobre cómo configurar tus objetos en malla para usar mapas de textura PBR y describe casos de uso comunes y mejores prácticas para los mapas de textura PBR compatibles de Roblox. Al crear tus propias superficies, consulta referencias de material para valores materiales comunes, comparaciones de imágenes y ejemplos de ropa.
Activar apariencia de superficie
Puedes agregar texturas PBR a cualquier MeshPart añadiendo un objeto SurfaceAppearance que sobrescriba la textura asignada originalmente. En general, no puedes modificar las propiedades de SurfaceAppearance mediante scripts durante un juego porque el motor requiere algún preprocesamiento para mostrar estos gráficos. Al igual que al agregar una textura básica, cada mapa de imagen de textura debe apuntar al ID de activo de imagen cargada apropiado.
Para habilitar la apariencia de superficie para un MeshPart:
En la ventana de Explorer, pasa el ratón sobre el MeshPart y haz clic en el botón ⊕.
Inserta un SurfaceAppearance desde el menú contextual.

Cuando estés listo para agregar mapas de textura al objeto SurfaceAppearance, puedes hacer clic en cada propiedad de mapa en la ventana de Properties e ingresar un ID de activo.
Mapas de textura
Studio actualmente admite 5 tipos de mapas de textura PBR: color, normal, rugosidad, metalidad y emisor. Cada uno de estos mapas corresponde a un aspecto importante de la apariencia superficial del objeto. Los mapas de textura solo cambian la apariencia visual y no afectan la geometría del objeto MeshPart.
Consulta los siguientes ejemplos para una visión general de los mapas de textura compatibles de Roblox y recursos adicionales:
La propiedad ColorMap establece los datos de color de la superficie, incluidos cualquier transparencia presente en el mapa. Consulta color (albedo) para obtener información adicional.



Color (albedo)
El mapa de color, o albedo, determina el color de tu textura y consiste principalmente en información de color con poca o ninguna información de iluminación o textura. Para una personalización adicional, también puedes agregar transparencia en tu textura albedo añadiendo opacidad a tu mapa de imagen.
Modos alfa
Para objetos que requieren secciones parciales o completas de transparencia, como césped, hojas, encajes o calcomanías como suciedad o grunge, puedes usar varios modos alfa para aplicar transparencia a tu mapa de color. Si el formato de imagen de tu mapa de color admite canales alfa, puedes aplicar un mapa alfa en escala de grises donde 0.0 es transparente y 1.0 es opaco. De manera similar, al usar un formato de imagen como un .png, cualquier opacidad en el mapa de color se aplica como transparencia en el activo.
Puedes aplicar transparencia en dos comportamientos diferentes configurando los siguientes valores AlphaMode:
- Superposición — Superpone el ColorMap sobre el MeshPart.Color subyacente. Los mapas de color que utilizan el modo de superposición revelan el color base de la malla donde sea que haya transparencia presente. Esta es la configuración predeterminada.
- Transparencia — Elimina la malla visible basada en la transparencia en el ColorMap. Esto hace que la malla sea transparente y no revela el color original de la malla siempre que haya transparencia presente.
Opaco
Puedes usar el modo Enum.AlphaMode.Opaque para ignorar por completo el canal alfa del ColorMap. En este caso, se asume que el valor alfa es 1 (completamente opaco).
El siguiente ejemplo demuestra cómo funciona el modo Opaque usando un objeto azul como referencia:
Superposición
Puedes usar Enum.AlphaMode.Overlay para revelar secciones del color original de la malla. Dado que las áreas transparentes del mapa de color exponen el color subyacente, puedes diseñar un mapa de textura único que revele parcial o completamente la propiedad de color Color de la malla para tonos de piel personalizados u otras situaciones con colores únicos.
El siguiente ejemplo demuestra cómo funciona el modo Overlay usando una referencia de esfera azul clara:
El siguiente ejemplo utiliza el modo Overlay para personajes personalizados, revelando el tono de piel original del personaje:


Consulta tonos de piel personalizados para obtener detalles adicionales sobre cómo optimizar una superposición para la piel y aplicaciones similares.
Transparencia
Puedes usar el modo Enum.AlphaMode.Transparency para crear objetos complejos o extremadamente finos, como encajes o redes, eliminando partes visibles de la malla como alternativa a esculpir la geometría de la malla. Dado que esto no afecta la geometría del objeto de la malla, esto puede permitirte crear objetos detallados sin el impacto en el rendimiento que tendría un modelo de malla intrincado.
El siguiente ejemplo demuestra cómo una transparencia parcial y completa en este modo elimina visualmente secciones de la malla:



Existen dos resultados del modo Transparency, dependiendo de si el MeshPart.Transparency está configurado en 0 o al menos 0.02, aunque la precisión numérica puede resultar en pequeños valores como 0.01 desencadenando la transparencia opaca.
- Cuando el alfa se utiliza para recortar la forma de objetos mayoritariamente opacos con bordes duros como el follaje, la tela de encaje y las redes, establece el MeshPart.Transparency en 0. Cuando partes de la superficie son completamente opacas, el motor de Roblox puede renderizarlas con una oclusión basada en profundidad adecuada. Las superficies opacas también suelen funcionar mejor con efectos basados en profundidad como DepthOfFieldEffect, la refracción del vidrio y el agua, y la reflexión del agua.
- Cuando el alfa se utiliza para agregar detalle a objetos semi-transparentes u objetos con degradados suaves de transparencia, establece el MeshPart.Transparency en al menos 0.02. Esto mejora la calidad de mezclar para objetos como ventanas sucias y plumas de bordes suaves, pero no funcionará con todos los efectos.
Máscara de tinte
Puedes usar el modo Enum.AlphaMode.TintMask para aplicar un tinte en color SurfaceAppearance.Color a áreas selectivas de una superficie. El tinte es más fuerte donde el canal alfa está completamente visible y no se aplica donde el canal alfa es transparente.

Tinte de color
Puedes aplicar un tinte a tu mapa de color modificando la propiedad SurfaceAppearance.Color. El tinte no afecta el rendimiento y puedes ahorrar memoria reutilizando un solo mapa de color con diferentes tintes. Usa el tinte de color para crear variaciones adicionales de bajo costo entre tus texturas PBR de MeshPart o para modificar programáticamente los colores PBR de tu superficie en tiempo real.



El tinte SurfaceAppearance.Color se aplica como un multiplicador, por lo que la apariencia final es una función de Color3 (color de texel) multiplicado por SurfaceAppearance.Color. Esto significa que crear tu original SurfaceAppearance.ColorMap en colores en escala de grises cercanos al blanco crea el efecto de tinte más fuerte cuando se aplica esta propiedad.
El tinte solo se aplica al SurfaceAppearance.ColorMap y no al MeshPart.Color. Puedes continuar usando canales alfa al aplicar transparencia.
Cuando SurfaceAppearance.AlphaMode está configurado en Overlay y hay un canal alfa presente, se revela el MeshPart.Color subyacente y el tinte SurfaceAppearance.Color solo se aplica al mapa de color SurfaceAppearance visible.
Cuando SurfaceAppearance.AlphaMode está configurado en TintMask y hay un canal alfa presente, el canal alfa controla la cantidad de tinte SurfaceAppearance.Color. El tinte es más fuerte donde el canal alfa está completamente visible y no se aplica donde el canal alfa es transparente.

Normal
El mapa normal, o superficie, añade profundidad de textura a tu superficie y se comporta de manera similar a un mapa de altura. Como resultado, el efecto puede desvanecerse o intensificarse dependiendo del ángulo de visión y el entorno de iluminación.
En la siguiente figura, puedes cambiar entre la referencia del mesh y la referencia del mapa para comparaciones de los valores del mapa normal:



Los canales R, G, y B de la imagen corresponden respectivamente a los componentes X, Y, y Z del vector superficial local. Una imagen uniforme de color [127, 127, 255] se traduce a un mapa normal completamente plano. Roblox solo admite mapas normales en formato OpenGL - Espacio Tangente.
Los mapas normales afectan prominentemente la superficie visual de una malla y pueden acentuar costuras incómodas en tu textura. Siempre que sea posible, oculta las costuras de tu textura para evitar problemas visuales con tu malla.
Rugosidad
Los mapas de rugosidad, o microsuperficie, determinan cómo se dispersa la luz sobre la superficie de tu modelo. Cuando la rugosidad está al 0%, la superficie no dispersa luz en absoluto, lo que resulta en un reflejo y brillo mucho más nítidos en tu material. Al 100%, la luz y los reflejos se dispersan uniformemente sobre el modelo, lo que da como resultado una superficie mate menos reflectante.
La siguiente figura muestra comparaciones de varios valores de mapa de rugosidad:



La rugosidad puede impactar cuán reflectante es un objeto desde diferentes ángulos, conocido como el efecto Fresnel. El procesamiento de fresnel de Studio busca una precisión realista del mundo físico, aunque puede haber contribuciones especulares inesperadas en ciertos ángulos incluso con superficies rugosas. En algunos casos, puedes compensar aumentando el valor del mapa de rugosidad alrededor de 0.1 más rugoso para lograr una respuesta de iluminación consistente con tus materiales.
Aunque Roblox renderiza este efecto de iluminación con precisión, el brillo y reflectividad de una superficie puede no responder de manera consistente entre tu software de contenido de textura, como Substance Painter, y Studio. Consulta ejemplos de ropa para notar diferencias en el renderizado entre aplicaciones.
Metalidad
La metalidad determina la reflectividad de una superficie. En la mayoría de los casos, debes establecer este valor en 0% (no metálico) o 100% (metal), aunque puedes usar valores de metalidad parciales al crear superficies con propiedades reflectantes moderadas como satén o seda. Esta práctica puede engañar sutilmente las reflexiones en el material para resaltar el color del mapa de color/albedo sobre los colores reflejados en el entorno.
Consulta la siguiente figura para comparaciones de varios valores de mapa de metalidad:



Diferentes renderizadores PBR utilizan varios flujos de trabajo para procesar la reflectividad. Studio solo utiliza el flujo de trabajo de metalidad que determina si un material es no metálico o metálico, a veces referido como aislante o conductor.
Máscara emisiva
Una textura de contenido en escala de grises EmissiveMaskContent aplica una máscara emisiva a través de la superficie. Esto te permite usar una textura para controlar la emisividad para un control artístico mayor que el material Neon que es todo o nada y te permite crear efectos brillantes detallados como texto iluminado, armaduras futuristas o criaturas bioluminiscentes.
La propiedad asociada EmissiveTint determina el color del tinte para la contribución emisiva, y EmissiveStrength determina la fuerza de la contribución emisiva.







