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.

Publicat per

Actividad R2. Media

Publicat per

Actividad R2. Media

Robot 1 Proceso de obtención del mapa UV Como en la práctica anterior, se ha utilizado Blender como programa de modelado 3D.…
Robot 1 Proceso de obtención del mapa UV Como en la práctica anterior, se ha utilizado Blender como programa…

Robot 1

Proceso de obtención del mapa UV

Como en la práctica anterior, se ha utilizado Blender como programa de modelado 3D.

El proceso de despliegue de texturas en Blender es el siguiente: Primero se selecciona el objeto, luego se marcan como “seams” (costuras) las aristas por las que se quiere separar el UV, se seleccionan todas las caras y se hace la acción “unwrap” (desplegar).

En este proceso he seleccionado automáticamente las aristas por ángulo y las he marcado como costuras. Después he ido quitando las costuras innecesarias y añadiendo otras necesarias. Por ejemplo: El torso (las líneas rojas son la costura):

Una vez añadidas todas las costuras de todo el objeto, y comprobado que quedan bien con una textura de referencia, se han seleccionado todos los objetos y se han desplegado, esto hace que los UVs de cada parte se distribuyan en un mismo mapa. En las opciones de desplegado se ha seleccionado una distancia entre las distintas islas para que el proceso de texturizado resulte más sencillo. El mapa UV resultante es el siguiente:

En Blender existen dos tipos de textura de referencia, la utilizada en los tutoriales de la asignatura (en color) y un patrón de tablero de ajedrez (en blanco y negro). Principalmente he utilizado la segunda:

Proceso de texturización

El proceso de texturización del primer robot se ha realizado completamente en Blender mediante materiales “baked” en texturas. Una de las fortalezas de Blender como programa de modelado 3D es el sistema de texturas basadas en nodos y he querido utilizar esto para texturizar el primer robot. He utilizado algunos componentes de materiales de www.blenderkit.com, que ofrece, entre otras cosas, materiales para Blender basados en texturas y nodos. Estos materiales tienen una licencia “Royalty Free”.

Por ejemplo, el torso tiene los siguientes nodos:

Y el plástico de los brazos tiene un sistema mucho mas complejo para detectar las aristas y aportar mas detalles:

Una vez asignados materiales a todos los objetos, se han “bakeado” a un mapa de texturas, quedanto como resultado las siguientes tres texturas (albedo, roughness y normales):

     

 

Robot 2

Proceso de obtención del mapa UV

El proceso de obtención del mapa UV en el segundo robot ha resultado mas sencillo, ya que sabía como hacerlo. Se ha realizado el mismo proceso que el anterior robot, pero intentando optimizar mejor el desplegado:

La imagen final del mapa UV:

Y con las texturas de referencia:

Proceso de texturización

Para este proceso de texturización he querido utilizar Gimp para modificar las texturas “bakeadas”. Esta imagen es con solamente materiales de Blender:

En Gimp he importado el mapa UV, la textura y una textura con la localización de los polígonos:

He añadido una textura, una imagen de dominio público (por Calipper en Wikipedia), de la parte trasera de una nevera:

Por último, he dibujado en el editor de texturas de Blender las separaciones objetos para dar una sensación de desgaste y suciedad. El resultado final es (con un mapa de roughness):

 

Dificultades encontradas

Una de las partes que mas me ha costado ha sido “bakear” las texturas, la opción se encuentra en un submenú muy escondido y el proceso no es nada intuitivo. Hay que tener un nodo de imagen seleccionado en cada uno de los materiales para que se renderice en esa textura. Esto estaba sobrescribiendo alguna textura de arañazos y no sabía por qué.

Otro problema ha sido, a la hora de subir el primer robot, se exportaba a fbx con 2 o 3 mapas UVs diferentes, lo que evitaba que se pusieran bien las texturas. Lo he conseguido solucionar dejando solamente un material por objeto y exportándolo.

Comentarios

Crear mapas UV es un proceso que lleva mucho tiempo, a lo largo de la práctica he notado que ganaba mas entendimiento de como se iba a comportar el mapa al añadir y quitar costuras. El primer modelo, ahora que he hecho el segundo, me parece que se puede mejorar en varias partes, la mayoría de los objetos rectangulares es mejorable, pero como tenía la intención de “bakear” al final y no editar la textura a mano los he dejado así (y falta de tiempo). Por último, comentar que el espacio entre las islas es necesario para que el proceso de “bake” funcione de manera correcta, además, pintar es más sencillo.

Links a sketchfab:

 

Debat0el Actividad R2. Media

No hi ha comentaris.

Publicat per

Actividad R2 – Media para videojuegos

Publicat per

Actividad R2 – Media para videojuegos

Mapas UV Comencé generando el mapa de los robot en un solo mapa, pero al final opte por separar en diferentes mapas…
Mapas UV Comencé generando el mapa de los robot en un solo mapa, pero al final opte por separar…

Mapas UV

Comencé generando el mapa de los robot en un solo mapa, pero al final opte por separar en diferentes mapas UV. Ya que se podía generar formas más uniformes al generarlos de manera manual, opté por mesclar el método automático y en algunos casos usar la opción de desplegar su forma base.

Robot A:

 

Robot B

Textura

La textura para el Robot A fue se saco de Textura y fue buscado como Licencias Creative Commons, en cambio las texturas para los detalles de los oxido( Oxido ) solo se logro encontrar con fondo transparente pero con derechos de autor, por ello si se desea desarrollar los personajes para un videojuego comercial se cambiaría por texturas propias.

   

Y para el Robot B, para intentar algo nuevo se optó por crear un diseño propio con la ayuda de la aplicación de Krita, ya que es un softeware libre.

 

Comentarios

Se tuvo algunos problemas con los vértices y aristas cuando se creo a los robots la primera vez, teniendo que limpiar parte de los modelos, además que a veces al volver a abrir los archivos se eliminaban o se movían algunas partes de los robots. Se busco texturas metálicas acorde al material que están compuestos los robots, de ahi para darle mas realismo se edito otras texturas de oxido para que encajara. Para el segundo robot se pensó en realizar la labor de realizar texturas desde cero usando el programa Krita.

Debat0el Actividad R2 – Media para videojuegos

No hi ha comentaris.

Publicat per

PEC 2

Publicat per

PEC 2

En este segundo reto he trabajado el texturizado de mis modelo de robots, creado previamente en Maya. El objetivo principal fue darle…
En este segundo reto he trabajado el texturizado de mis modelo de robots, creado previamente en Maya. El objetivo…

En este segundo reto he trabajado el texturizado de mis modelo de robots, creado previamente en Maya. El objetivo principal fue darle un aspecto visual atractivo y coherente, similar al que podría tener un personaje dentro de un videojuego.

Durante el proceso, fui probando diferentes métodos de mapeado UV para ajustar las texturas correctamente a cada parte del modelo pero tuve muchos problemas ya que mi pc no da más de si para dicho programa. En la mayoría de las piezas utilicé los mapeados cilíndrico y esférico, ya que se adaptaban mejor a las formas redondeadas del robot.

A continuación, se muestran los enlaces de los dos robots con sus texturas para el proyecto.

ROBOT 1: https://skfb.ly/pCPT9

ROBOT 2: https://skfb.ly/pCPTF

Los robots con sus respectivas texturas:

El objetivo fue crear un robot con apariencia metálica y ligeramente industrial.
Probé diferentes tipos de proyección UV hasta encontrar la combinación adecuada entre cilíndrico, esférico y planar. En el texturizado opté por tonos fríos y un acabado semi-reflectante que diera una sensación de metal pulido.

Por limitaciones técnicas del ordenador que utilizo, no pude trabajar con muchas capas ni texturas complejas, por lo que busqué optimizar el modelo y simplificar las texturas. Fue muy difícil para mí completar todo como es debido y lograr un diseño óptimo.

Debat0el PEC 2

No hi ha comentaris.