Publicat per

Media para videojuegos – R2 – Texturas

Publicat per

Media para videojuegos – R2 – Texturas

Introducción El objetivo de esta tarea era crear y aplicar texturas a los modelos 3D de dos robots. Para simplificar la tarea,…
Introducción El objetivo de esta tarea era crear y aplicar texturas a los modelos 3D de dos robots. Para…

Introducción

El objetivo de esta tarea era crear y aplicar texturas a los modelos 3D de dos robots. Para simplificar la tarea, se ha optado por unas texturas con estilo cómic utilizando colores planos y algunos detalles pero todo pintado a mano.

Mapas UV

Para realizar los ajustes se utilizó la siguiente textura quedando un resultado como el que se puede ver a continuación. Utilizando dicha textura se ajustaron las piezas en el mapa UV cuidando la orientación y la escala. El robot mostrado en la imagen se muestra a mitad del proceso.

Las dos imágenes a continuación representan los mapas UV resultantes con las piezas de los dos robots. Las piezas están organizadas del mismo modo que las piezas en el robot de modo que sean de fácil localización. Además, al utilizar colores planos no se ha realizado el mayor esfuerzo para ocupar todo el espacio ya que no se requiere un gran detalle. Eso sí, esta última decisión podría hacer necesaria una reorganización de los elementos en caso de aplicar alguna textura en alta resolución al modelo para evitar la pérdida de detalle.

Texturas

En las siguientes capturas se encuentran las texturas de los dos robots. Se ha hecho una selección de colores que diferencie los elementos de las extremidades. Se han añadido algunos detalles en la parte frontal entre los que se encuentran la cara imitando una pantalla. Sin ser unas texturas muy detalladas se está bastante satisfecho con el resultado que queda muy en la línea de lo que se esperaba quedando dos robots que podrían ser utilizados perfectamente en un juego con una estética de este tipo.

Mapas de normales

Utilizando Gimp se han sacado los mapas de normales para aplicar algo de textura a los modelos. Ya que no tienen mucho detalle, sobre todo se pueden ver marcas en la cara de los robots, el pecho y las ruedas del robot con ruedas.

Modelos en sketchfab

Los modelos finales están accesibles en los siguientes enlaces a sketchfab

https://skfb.ly/pCJIW para el robot con una rueda.
https://skfb.ly/pCJJr para el robot con piernas.

Recursos

  • Modelado con Maya 2023
  • Texturas editadas con Gimp
  • Todas las texturas se han creado a mano. No se han utilizado recursos externos

Debat0el Media para videojuegos – R2 – Texturas

No hi ha comentaris.

Publicat per

R2 – 3D Texturing Robots

Publicat per

R2 – 3D Texturing Robots

Texturización de dos robots He texturizado los dos modelos (“Little Robot” y “Big Robot”) usando Blender y Substance Painter.El objetivo visual ha…
Texturización de dos robots He texturizado los dos modelos (“Little Robot” y “Big Robot”) usando Blender y Substance Painter.El…

Texturización de dos robots

He texturizado los dos modelos (“Little Robot” y “Big Robot”) usando Blender y Substance Painter.
El objetivo visual ha sido darles un acabado realista: metal pintado, zonas con desgaste, suciedad acumulada y sensación de uso/daño.

A nivel de color partí de los concepts iniciales de cada robot. No buscaba un acabado limpio tipo “juguete nuevo”, sino algo más vivido. En el caso del Little Robot, por ejemplo, le falta un brazo, así que le di un look más castigado. El Big Robot en teoría debía parecer más “entero”, pero al final, por cómo responde el material, casi da la impresión contraria cuando los ves juntos.

Desplegado de UVs

El unwrap de UVs lo he hecho en Blender manualmente, marcando los cortes en zonas coherentes con la geometría y colocándolos donde menos se noten al bakear. He intentado que:

  • La malla se pueda abrir sin provocar estiramientos grandes.

  • Los seams queden en cantos duros (sharp edges) o en zonas que normalmente no se ven en cámara.

  • Las islas importantes mantengan orientación consistente cuando voy a pintar detalles gráficos (por ejemplo, piezas donde quiero meter símbolos, franjas o letras). En esas piezas he respetado orientación horizontal/vertical en UV para que luego sea más fácil pintar algo legible (Ej: Pelo de “BigRobot”).

  • En el resto de piezas, donde solo me importa aprovechar espacio, he permitido rotar las islas para empaquetarlas mejor y aprovechar al máximo el espacio útil de los mapas.

Las islas de UV mantienen escala proporcional al tamaño real de cada parte del modelo. No he hecho “texel density trampa” (no hay manos a 4x resolución y torso a 1/4, por ejemplo). Para comprobar que las UVs estaban bien apliqué un UV checker para ver si había estiramientos raros o giros locos del patrón.

 

Antes de exportar a Substance, unifiqué materiales en Blender. Dejé cada robot con un solo material asignado a todas sus piezas físicas, y preparé un vertex paint de IDs. Ese vertex color me sirve como máscara de materiales en Substance Painter.

Ejemplo: todas las partes verdes del Big Robot comparten el mismo ID de color en el vertex paint, porque sé que van a usar el mismo material base. Eso me facilita separar capas luego.

Bake inicial en Substance Painter

Exporté cada robot desde Blender a .fbx.
En Substance Painter creé un proyecto nuevo con plantilla “Unity Standard” y resolución de trabajo a 4K.

El primer paso fue bakear los mapas base (normales, AO, curvature, etc.) usando la pestaña de Bake Mesh Maps. Ajusté las opciones del bake para que realmente trabajase a 4K, aunque sé que el resultado final que tengo que entregar está limitado a 2K, pero de esta manera se abren posibilidades de exportación a otras dimensiones en caso de que en un futuro se requirieran.

En el primer bake tuve un problema con el Little Robot: aparecían sombras raras en una zona. Volví a Blender, revisé las normales (estaban bien) y al final vi que lo que pasaba era tensión de vértices en esa zona. Relajé esa parte de la malla, reexporté y volví a bakear. Con eso se corrigió.

Texturizado y materiales

Organicé el trabajo en Substance por carpetas, basándome en el ID de color que había pintado en Blender.

Ejemplo del Little Robot:

  • Blanco

  • Gris claro

  • Gris oscuro

  • Rojo

  • Emisivo

A cada bloque le apliqué un material base (por ejemplo, un steel damaged de los Smart Materials de Substance) y luego le hice ajustes finos encima con capas de relleno para controlar roughness, metallic y color sin destrozar el tono que quería.

Caso concreto: las zonas blancas. No quería que parecieran metal desnudo gris brillante. Prefería que parecieran metal pintado o incluso plástico pintado, con un roughness algo más alto y menos metalness. Así que subí el color a blanco y limité el valor metálico y el roughness.

Después añadí suciedad, óxido fino y desgaste en cantos usando mascaras inteligentes. Esto lo usé sobre todo en el blanco y el rojo del Little Robot para remarcar que ese robot está más castigado físicamente.

El Big Robot sigue el mismo flujo general, pero con dos diferencias:

No necesitaba definir un canal emisivo previo para exportarlo y el “pelo” del Big Robot lo resolví con normales. Aproveché una máscara tipo alpha en blanco y negro (forma rectangular con bordes suavizados) procedente de la base de datos de Substance Painter. Esa máscara se usa para generar los huecos entre las piezas de los mechones. Luegoen esa zona bajé un poco la altura y cambié color, de forma que parece que son segmentos separados en vez de un bloque único rígido. La idea es que visualmente parezca algo compuesto por pequeñas piezas flexibles en vez de un tubo macizo.

Optimización y exportación

Siguiendo las instrucciones de optimización del enunciado cree un solo set de UV por robot, un material por robot, texturas cuadradas con tamaño potencia de dos y la exportancion final en 2k (2048 x 2048).

Para exportar desde Substance Painter hice dos salidas distintas:

  1. Plantilla Unity Standard
    Esto genera:

    • Albedo/BaseColor

    • Normal map

    • Emissive (si aplica)

    • Un mapa combinado (Metallic/Roughness/AO empaquetados en canales)

    Esta versión la quiero para llevar directamente a Unity en las actividades futuras.

  2. Plantilla Blender
    Esta me deja las texturas en el formato que Blender espera sin tener que montar los nodos manualmente a mano.
    Gracias a esto puedo volver a Blender, asignar el material rápido y exportar un .obj con materiales “limpios” que Sketchfab entiende mejor que .fbx en mi caso (los .fbx a veces no enlazan bien las texturas en Sketchfab).

Cada robot se entrega con su propio set de mapas. Como maximo hay 4 imagenes preparadas para Unity, lo cual es una cifra razonable para el motor. Esto está pensado justo para lo que avisa el enunciado: “cuantos más archivos distintos haya, más esfuerzo tendrá que hacer la tarjeta gráfica”, por ello se usa un mapa “Combined” en la exportación de Unity reduciendo en 2 la salida total de imágenes.

Origen de las texturas y derechos de uso

  • Los materiales base (smart materials tipo “steel damaged”, suciedad, etc.) son recursos incluidos en Substance Painter.
    Dado que el acceso a esta aplicación ha sido a traves de una licencia de estudiante estos materiales se pueden usar para fines educativos y para prototipado, que es el contexto de esta práctica.

  • El alpha que uso para el “pelo” del Big Robot está creado dentro de Substance Painter a partir de una forma simple (rectángulo con bordes suavizados) y luego ajustado por mí (escala, repetición y máscara). No es una textura descargada de internet.

  • No he usado texturas fotográficas externas de terceros.

Sketchfab

Los modelos finales se pueden visualizar y descargar desde Sketchfab:

En cada modelo he subido:

  • El .obj + .mtl

  • Carpeta con las texturas exportadas desde Blender

  • Carpeta con las texturas exportadas con la plantilla de Unity

En Sketchfab se están viendo las texturas pensadas para Blender (no la versión Unity empaquetada).

Debat0el R2 – 3D Texturing Robots

No hi ha comentaris.