Renderizado Basado en Física (PBR) las texturas 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 diversas aplicaciones y flujos de trabajo disponibles para crear texturas PBR. Puedes utilizarlas durante las fases de modelado y texturización de la creación de objetos 3D personalizados, siempre que Roblox Studio admite los mapas de textura específicos que estás utilizando.
Esta guía proporciona instrucciones sobre cómo configurar tus objetos de malla para usar mapas de textura PBR y describe casos de uso comunes y mejores prácticas para los mapas de textura PBR admitidos por Roblox. Al crear tus propias superficies, consulta referencias de materiales para valores de materiales comunes, comparaciones de imágenes y ejemplos de ropa.
Habilitar 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 un preprocesamiento para mostrar estos gráficos. Similar a agregar una textura básica, cada mapa de imagen de textura debe apuntar al ID de activo de imagen cargado apropiado.
Para habilitar la apariencia de superficie para un MeshPart:
En la ventana de Explorer, pasa el cursor 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, metallicidad y emissivo. Cada uno de estos mapas corresponde a un aspecto importante de la apariencia de la superficie 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 obtener una visión general de los mapas de textura admitidos por Roblox y recursos adicionales:
La propiedad ColorMap establece los datos de color de la superficie, incluyendo cualquier transparencia presente en el mapa. Consulta color (albedo) para obtener información adicional.



Color (albedo)
El color, o albedo, mapa 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 de albedo añadiendo opacidad a tu mapa de imagen.
Modos Alpha
Para objetos que requieren secciones parciales o completas de transparencia, como hierba, hojas, encajes o calcomanías como suciedad o grunge, puedes usar varios modos alpha para aplicar transparencia a tu mapa de color. Si el formato de imagen de tu mapa de color admite canales alpha, puedes aplicar un mapa alpha 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 de 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 dondequiera que haya transparencia presente. Esta es la configuración predeterminada.
- Transparencia — Elimina la malla visible en función de la transparencia en el ColorMap. Esto renderiza la malla 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 alpha del ColorMap. En este caso, se asume que el valor alpha es 1 (totalmente opaco).
El siguiente ejemplo demuestra cómo funciona el modo Opaque utilizando 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 totalmente la propiedad 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 utilizando una esfera azul clara como referencia:
El siguiente ejemplo utiliza el modo Overlay para personajes personalizados, revelando el tono de piel original del personaje:


Consulta tono de piel personalizado para obtener detalles adicionales sobre cómo optimizar una superposición para 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 malla, esto puede permitirte crear objetos detallados sin el impacto en el rendimiento de un modelo de malla intrincado.
El siguiente ejemplo demuestra cómo una transparencia parcial y total en este modo elimina visualmente secciones de la malla:



Hay 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 activando la transparencia opaca.
- Cuando se utiliza alpha para recortar la forma de objetos mayormente opacos con bordes duros como follaje, tela de encaje y redes, establece el MeshPart.Transparency en 0. Cuando partes de la superficie son completamente opacas, el motor de Roblox puede renderizarlas con la oclusión basada en profundidad adecuada. Las superficies opacas también generalmente funcionan mejor con efectos basados en profundidad como DepthOfFieldEffect, refracción de vidrio y agua, y reflexión del agua.
- Cuando se utiliza alpha para agregar detalles a objetos semi-transparentes o objetos con gradientes suaves de transparencia, establece el MeshPart.Transparency en al menos 0.02. Esto mejora la calidad de mezcla 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 de SurfaceAppearance.Color a áreas selectivas de una superficie. El tinte es más fuerte donde el canal alpha es completamente visible y no se aplica donde el canal alpha 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 de bajo costo entre tus texturas PBR de MeshPart o para modificar programáticamente los colores de superficie PBR en tiempo real.



El tinte de SurfaceAppearance.Color se aplica como un multiplicador, por lo que la apariencia final es una función de Color3 (color texel) multiplicado por SurfaceAppearance.Color. Esto significa que crear tu SurfaceAppearance.ColorMap original 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 seguir utilizando canales alpha al aplicar transparencia.
Cuando SurfaceAppearance.AlphaMode está configurado en Overlay y hay un canal alpha presente, se revela el MeshPart.Color subyacente y el tinte de SurfaceAppearance.Color solo se aplica al mapa de color SurfaceAppearance visible.
Cuando SurfaceAppearance.AlphaMode está configurado en TintMask y hay un canal alpha presente, el canal alpha controla la cantidad de tinte de SurfaceAppearance.Color. El tinte es más fuerte donde el canal alpha es completamente visible y no se aplica donde el canal alpha es transparente.

Normal
El normal, o superficie, mapa agrega 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 alternar entre la referencia de la malla y la referencia del mapa para comparaciones de valores de mapa normal:



Los canales R, G y B de la imagen corresponden respectivamente a los componentes X, Y y Z del vector de superficie 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 de manera prominente la superficie visual de una malla y pueden acentuar costuras incómodas en tu textura. Siempre que sea posible, mantén tus costuras de textura ocultas para evitar problemas visuales con tu malla.
Rugosidad
La rugosidad, o microsuperficie, mapas determinan cómo se dispersa la luz a través de 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, resultando en una superficie mate menos reflectante.
La siguiente figura muestra comparaciones de varios valores de mapas de rugosidad:



La rugosidad puede impactar cuán reflectante es un objeto en diferentes ángulos, conocido como el efecto Fresnel. El procesamiento de fresnel de Studio busca la precisión física del mundo real, aunque puedes obtener una contribución especular inesperada en ciertos ángulos incluso con superficies rugosas. En algunos casos, puedes compensar aumentando el valor de tu mapa de rugosidad en alrededor de 0.1 más rugoso para lograr una respuesta de iluminación consistente con tus materiales.
A pesar de que Roblox renderiza este efecto de iluminación con precisión, el brillo y la reflectividad de una superficie pueden no responder de manera consistente entre tu software de creación de contenido de textura, como Substance Painter, y Studio. Consulta ejemplos de ropa para ver diferencias en el renderizado entre aplicaciones.
Metallicidad
La metallicidad determina la reflectividad de una superficie. En la mayoría de los casos, debes establecer este valor en 0% (no metálico) o 100% (metálico), aunque puedes usar valores de metallicidad parciales al crear superficies con propiedades reflectantes moderadas como satén o seda. Esta práctica puede simular sutilmente los reflejos 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 mapas de metallicidad:



Diferentes renderizadores PBR utilizan varios flujos de trabajo para procesar la reflectividad. Studio solo utiliza el flujo de trabajo de metallicidad 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 más detallado que el material Neon de 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 de tinte para la contribución emisiva, y EmissiveStrength determina la fuerza de la contribución emisiva.







