Capítulo 4. Optimización del arte 3D

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Introducción

En este capítulo, cubro por qué la optimización es un reto inmenso cuando se trata de desarrollar activos para la realidad virtual (RV) y la realidad aumentada (RA), con un fuerte enfoque en el lado de la RV. Comparto diferentes enfoques y procesos de pensamiento a tener en cuenta en varias áreas implicadas en la creación de arte 3D. En lugar de centrarme en herramientas, técnicas y tutoriales específicos, verás una visión global de lo que puedes hacer para optimizar tu arte 3D. Comparto por qué es importante mantener realmente la optimización como una alta prioridad en todo el proceso de diseño.

Empecemos hablando de por qué la optimización para la RV es nueva para la mayoría de los artistas que empiezan a trabajar con contenidos de RV.

Un monitor LCD 2D típico tiene una frecuencia de refresco de 60 Hz. Cuando miras un monitor plano que funciona a esta frecuencia, tendrás una experiencia visual fantástica. Esto ha permitido que el desarrollo tradicional de activos sea "pesado", entendiendo por pesado en esta circunstancia que los activos tienen un mayor recuento de polígonos e imágenes de texturas más grandes, además de que la propia escena tiene una mayor cantidad de modelos para ver.

Las pantallas montadas en la cabeza (HMD) funcionan a 90 Hz. Para que la experiencia sea cómoda y convincente, el contenido de RV debe funcionar a 90 fotogramas por segundo (FPS). Si tus experiencias funcionan a menos de 90 FPS, corres el riesgo de causar molestias a tus usuarios. Las molestias pueden incluir dolores de cabeza, náuseas y dolor ocular. El resultado será una experiencia deficiente que los usuarios querrán abandonar rápidamente. Debido a este alto nivel de incomodidad, no debes forzar a los usuarios a una experiencia con una tasa de imágenes baja.

Pronto, la RV va a entrar en otros campos. En lugar de simplemente crear RV, estarás creando herramientas, experiencias, aplicaciones, etc. en un campo, y la RV será tu medio. Algunos de estos campos ya estarán familiarizados con la creación de contenidos 3D, y será importante aprender a optimizarlos. Habrá muchas personas cuya experiencia previa quizá no les haya preparado adecuadamente para este gran cambio en el desarrollo de activos, y será un reto aclimatarse a estos nuevos procesos. He aquí algunos ejemplos de de puestos relacionados con la industria que tendrán que aprender a crear teniendo en cuenta la optimización:

  • Renderizado de alta resolución (creación de modelos realistas de objetos reales)

  • Juegos de gama alta para PC

  • Creación artística en VR

Estos ejemplos tienen ventajas que ya no se podrán aprovechar para la RV y la RA. Excluyendo los auriculares anclados de gama alta como el Oculus Rift o el HTC Vive, la mayoría de los demás dispositivos que existen serán más ligeros y portátiles. Debes tener en cuenta que cuanto más grandes sean tus archivos y más contenido y llamadas a dibujo haya, más cerca estarás de arriesgarte a que el usuario tenga un rendimiento deficiente.

Las personas que crean contenido para películas y renderizado tienen el privilegio de crear modelos 3D con un elevado número de polígonos. No están limitados por la complejidad que puedan tener sus modelos ni por la cantidad de datos de renderizado necesarios para que el ordenador los visualice. A continuación se muestra un ejemplo de lo que puede ocurrir cuando alguien nuevo en la optimización intenta desarrollar para RV:

Pero, ¿por qué es un problema tan grande para el desarrollador? Si la experiencia de esa persona es crear modelos que se renderizan para fotos, lo más probable es que esté acostumbrada a crear con elevados recuentos de polígonos. No es raro ver cifras elevadas que van desde los 50.000 triángulos (llamados "tris" en el sector) hasta 1.000.000 de triángulos.

Sin embargo, esto no se traslada bien al renderizado de RV en tiempo real. Como ya se ha dicho, los problemas de rendimiento impedirán que el usuario final tenga una experiencia de calidad.

Opciones a considerar

Aquí tienes un par de cosas que puedes probar para solucionar el problema:

  • Ejecuta una herramienta de decimación para autoreducir el recuento de polígonos.

    Puedes encontrarlos en los programas de modelado 3D más conocidos. Suelen hacer un buen trabajo eliminando el 50% del número de triángulos sin que ello afecte a la forma y silueta del modelo.

  • Echa un vistazo a la disposición de las UV del modelo (los ejes de la textura 2D que se proyecta sobre una 3D).

    ¿La textura UV está dispuesta para aprovechar todo el espacio cuadrado? ¿Las UV están a escala y dan prioridad a las zonas que necesitan mostrar más detalles? Exploraremos las texturas y los materiales con más detalle más adelante en el capítulo.

Otra buena opción que debes contemplar es si tu modelo entrará en un lugar de RV social que permita el contenido generado por el usuario (CGU). Lo más probable es que esto siga siendo un reto durante mucho tiempo. Ten en cuenta que cuantos más avatares haya en un espacio, menos presupuesto deberá tener cada persona para respetar la velocidad de fotogramas de todos, permitiendo una buena experiencia.

Solución ideal

La mejor solución es reducir el número de triángulos del modelo al mínimo absoluto que pueda tener sin afectar a la forma. Reduce el tamaño de la textura al tamaño más pequeño que pueda tener sin forzar que el modelo se vea borroso o tenga una calidad inferior a la preferida.

Asegúrate de que, cuando el objeto se coloque en su entorno final, deja suficiente margen a la velocidad de fotogramas del sistema para que la experiencia resulte natural.

Recapitulemos. ¿Por qué es importante optimizar tu arte 3D?

Cada modelo de tu entorno 3D va a afectar al rendimiento de tu experiencia. Cuantos más añadas, más tendrás que considerar lo cerca que estás de tu presupuesto. Habla con tu equipo para determinar cuál es tu presupuesto ideal.

Otra consideración para el destino de tus modelos 3D incluye las plataformas sociales de RV. Existen algunas plataformas sociales de RV que se construyen con UGC. Lo más probable es que existas en estos espacios como un avatar, y si puedes personalizar tu avatar, recuerda que todo lo que aprendas aquí también se aplica allí. Como con el resto de lo que aprenderás aquí, intenta que todo lo relacionado con tu avatar y lo que lleves puesto sea low poly y con el menor número de llamadas a dibujo que puedas crear. Puede que te encuentres con filtros que te ayuden a reducir la cantidad que haces descargar a la gente, pero piensa con antelación en lo que estás pidiendo a las pantallas de la gente que rendericen. Ten en cuenta su hardware y conexión y mantente fácil de renderizar y descargar.

Continuemos con una visión general de lo que deberás comprobar al crear modelos 3D para RV y RA.

Presupuesto de recuento de polígonos

¿Tienes un número concreto de polígonos que no puedes pasar en una escena? ¿Tienes un límite de número de polígonos por modelo?

Busca siempre el número de triángulos. El recuento de caras no siempre será exacto para calibrar cuántos polígonos tienes en tu modelo. Una cara formada por cuatro vértices, como un cuadrado, es en realidad dos triángulos en uno.

Elimina las caras que nunca se vayan a ver. Si estás creando un entorno callejero en el que nunca se entrará en el interior de los edificios, la escena sólo necesitará las fachadas de los edificios. Las traseras de los muros y los interiores no son necesarios. Si utilizas contenido ya construido, puedes eliminar todo lo que no se vaya a ver.

Si estás trabajando con modelos 3D que permanecerán lejos de ti en la experiencia, no necesitan todos los detalles que probablemente querrías si estuvieran más cerca. Las puertas y ventanas pueden modelarse y texturizarse con menos detalles. Cuanto menor sea tu recuento de polígonos, mejor.

Las secciones siguientes presentan algunas cosas que hay que tener en cuenta al modelar.

Topología

Inspecciona los bucles de perímetro y detecta cualquier bucle de perímetro que no aporte nada más a la silueta. Si un perímetro atraviesa una zona plana, sabrás que no es necesario si eliminas todo el perímetro y no detectas ninguna diferencia en la silueta. Si aún mantiene la forma y tiene la curva deseada, estás en camino de reducir el número de polígonos. Incluso hay algunas zonas en las que puedes introducir perímetros para fusionarlos con otros. Comprueba dos veces que todos los bucles de aristas eliminados no hayan dejado ningún vértice, y elimina los vértices que no conecten ninguna arista.

Las figuras 4-1 a 4-4 muestran el proceso de creación de una consola de juegos. En la Figura 4-1 puedes ver, en modo alámbrico, el inicio de su creación utilizando bucles de perímetro para definir dónde se necesitará más geometría; hay dos pasos entre la reducción de polígonos y la versión final de la Figura 4-4, que da como resultado menos triángulos que en su primera pasada.

First pass on the game console  basic shapes established. Triangle count  140.
Figura 4-1. Primera pasada en la videoconsola: formas básicas establecidas; recuento de triángulos: 140
Second pass on the game console: defining where faces and edges will lift and curve. Triangle count: 292
Figura 4-2. Segunda pasada en la consola de juego: definición de dónde se levantarán y curvarán las caras y perímetros; recuento de triángulos: 292
Third pass on the game console: softening edges and beginning to think about edge removal. Triangle count: 530.
Figura 4-3. Tercera pasada en la consola de juegos: suavizar perímetros y empezar a pensar en la eliminación de perímetros; recuento de triángulos: 530
Fourth and final version: removed edges that didn’t contribute to the model’s shape. Triangle count: 136.
Figura 4-4. Cuarta y última versión: eliminados los perímetros que no contribuían a la forma del modelo; recuento de triángulos: 136

El proceso que se muestra en las figuras 4-1 a 4-4 es similar al que se siguió para modelar algunos activos más para este conjunto de consolas de juegos. La Figura 4-5 muestra el resultado del conjunto. Contiene varios modelos en una malla combinada que está lista para que se le apliquen las texturas. Juntos, compartirán un atlas de texturas. Más adelante en este capítulo, verás el aspecto del atlas de texturas.

A look at the assets before they receive their materials.
Figura 4-5. Un vistazo a los activos antes de recibir sus materiales

Aquí tienes algunas cosas más que debes tener en cuenta al modelar:

  • Evita los n-gons. Un n-gono es una cara que tiene más de cuatro lados. La mayoría de los motores tienen problemas con los n-gons. Pueden causar problemas de colisión, pueden renderizarse completamente mal, e incluso pueden ser invisibles. Los programas de modelado 3D como Maya de Autodesk te ofrecen una opción para limpiar la escena y eliminar los n-gons que se encuentren.

  • Ejecuta una limpieza con tu software de modelado para encontrar y eliminar todas las caras coplanares. A menudo puedes encontrar caras furtivas ocultas dentro de un clon de sí mismo, que parecerán invisibles a simple vista y aumentarán tu recuento de polígonos. También está el problema de la lucha Z. La lucha Z se produce cuando hay dos caras que ocupan el mismo espacio 3D.

  • Enciende un visor para asegurarte de que las normales están orientadas en la dirección prevista. Las normales se renderizarán desde una dirección en tu motor preferido, , así que no dejes que el software de modelado 3D te engañe con una renderización de dos caras.

Es importante tener en cuenta todas estas consideraciones desde el principio, antes de empezar a trabajar en un modelo 3D.

La Figura 4-6 presenta un ejemplo de un proyecto de optimización en el que trabajé personalmente. Me dieron un modelo 3D de gafas que constaba de 69.868 triángulos. Esta cantidad era superior a la de mi propio avatar, que es de unos 40.000, incluyendo el cuerpo, la ropa, el pelo y los accesorios. Las gafas se compraron en una tienda online que vende archivos de modelos 3D, y estaba claro que el artista lo creó con la intención de demostrar que puede modelar para que coincida con cómo es el objeto en la "vida real". El artista modeló a mano todas y cada una de las piezas, incluidas las bisagras de las patillas.

Como iba a crear estas gafas para que la gente las usara en una plataforma social de RV, sabía que la mayor parte de los detalles ni se iban a ver ni se iban a necesitar, así que suprimí muchas de esas piezas. Conseguí conservar el aspecto de las gafas al tiempo que suprimía y redirigía la mayoría de los bucles de perímetro. El resultado final fue algo menos de 1.000 triángulos.

A glasses model for use in a social VR space.
Figura 4-6. Un modelo de gafas para su uso en un espacio social de RV

En concreto, para el uso en RA, sería absolutamente necesario que estuviera por debajo de 1.000 triángulos. En una Hololens, por ejemplo, querrás aspirar a un máximo de unos 60.000 triángulos en toda una escena. A menos que la aplicación se centre en gran medida en inspeccionar un par de gafas de sol con detalles realistas, querrás reducirlos al máximo como he hecho en este ejemplo. La Figura 4-7 presenta un primer plano que muestra los perímetros duros que se ven alrededor de las partes redondeadas de las monturas, que son imperceptibles si se miran desde lejos.

Example of hard edges around the rounded parts of the frames.
Figura 4-7. Ejemplo de perímetros duros alrededor de las partes redondeadas de los marcos

Hornear

Otro truco que puedes utilizar en para ayudar a en el recuento de polígonos es incorporar los detalles de tu modelo de polígonos altos a un modelo de polígonos más bajos. Al hacerlo, puedes generar un mapa de normales que engañará a los espectadores para que vean una altura y profundidad que no están presentes en la geometría en sí.

Ahora que hemos cubierto gran parte de lo que entra en un modelo, hablemos del desenvolvimiento UV y de la pintura de texturas.

Las UV se utilizan para describir un modelo 3D en un plano llano. Esas UV hacen referencia a una textura que el modelo utiliza para que la información de color y material se mapee en consecuencia. Para la optimización, vamos a repasar el enfoque de la creación de texturas que se crea, con el objetivo de mantener bajo el recuento de llamadas a dibujo. (Más adelante hablaremos de las llamadas de dibujo).

Un atlas de textura es una imagen de textura que contiene datos que describen de qué están hechos los materiales. Siempre es mejor crear un atlas de textura porque reduce drásticamente el número de llamadas a dibujo.

La Figura 4-8 muestra un avatar robot que está formado por muchas piezas, se ha fusionado en una sola malla y tiene sus UV compartidas dentro del mismo espacio, todo desenvuelto y listo para ser texturizado.

These are the pieces that comprise the robot and its accompanying textures.
Figura 4-8. Estas son las piezas que componen el robot y las texturas que lo acompañan

Hay un área en este modelo que quería mantener a mayor resolución: el detalle de los ojos. El modelo en sí es plano; sin embargo, le di un mapa de textura de un ojo que se compartía en las dos mallas circulares planas. El detalle en la imagen plana 2D engaña al espectador haciéndole creer que podría haber más profundidad de la que realmente hay.

Si lo hubiera incluido en el atlas de texturas, habría tenido que aumentar el tamaño de la textura y hacer el resto de las UV mucho más pequeñas, porque el detalle de la pupila y los reflejos de los ojos eran más importantes y requerían más espacio de UV.

En cambio, las UV de una malla de ojo ocupan todo el espacio UV del cuadrante de la textura del ojo. La submalla muestra todos los detalles que necesitan los ojos. Esa misma submalla se duplica luego en la otra cuenca porque no hay necesidad de detalles únicos para diferenciar los ojos. La Figura 4-9 muestra las zonas de las UV que se comparten en la textura pequeña para los ojos.

The robot model s eye shares the same UVs  duplicated before combining into a single mesh.
Figura 4-9. El ojo del modelo del robot comparte las mismas UV, duplicadas antes de combinarse en una única malla

Para estilos artísticos más realistas, seguirás necesitando mantener el recuento de polígonos en el lado inferior; sin embargo, puedes mantener alta la calidad de los modelos utilizando sombreadores y renderizado basados en la física. Este modelo de robot utiliza el renderizado basado en la física (PBR) para tener un aspecto realista, como se ilustra en la Figura 4-10. El PBR utiliza modelos de iluminación realistas y valores de superficie que representan materiales reales.

A look at the robot with all of its PBR materials.
Figura 4-10. Un vistazo al robot con todos sus materiales PBR

Vamos a repasar algunas texturas PBR que utilicé en el modelo del robot como ejemplo. Espero que esto te ayude a comprender cómo funcionará el PBR en los modelos para tu experiencia de RV.

¿Recuerdas los modelos de consola de videojuegos que vimos anteriormente en este capítulo? Las figuras 4-11 a 4-13 muestran el atlas de texturas utilizado para ese conjunto; fíjate en las texturas individuales utilizadas para su material PBR.

A color map. This texture defines the colors that are represented on the model.
Figura 4-11. Un mapa de colores en el que la textura define los colores que se representan en el modelo
A color map. This texture defines the colors that are represented on the model.
Figura 4-12. Un mapa de rugosidad en el que la textura define la superficie del modelo, que va de lisa a rugosa
A color map. This texture defines the colors that are represented on the model.
Figura 4-13. El mapa metálico donde la textura define si una superficie es metálica

Las figuras 4-14 a 4-17 muestran un aspecto final de los modelos 3D dentro del programa en el que fueron pintados, Allegorithmic Substance Painter, y mostrando cómo se ven en RV dentro de la aplicación de RV social, High Fidelity.

Here is a look at the gaming systems, combined into one mesh using one material that uses PBR textures to define the color and surface.
Figura 4-14. Un vistazo a los sistemas de juego, combinados en una malla con un material que utiliza texturas PBR para definir el color y la superficie
These controllers show the high contrast that the texture uses to define metallic and nonmetallic surfaces.
Figura 4-15. Estos controladores muestran el alto contraste que utiliza la textura para definir las superficies metálicas y no metálicas
This gaming system has more roughness information on the nonmetallic parts, showing grime and dirt.
Figura 4-16. Este sistema de juego tiene más información de rugosidad en las partes no metálicas, mostrando suciedad y mugre
Here is their final version located in a large-scale virtual art gallery where the models float in a sky.
Figura 4-17. Aquí tienes su versión final situada en una galería de arte virtual a gran escala, donde los modelos flotan en un cielo

Hay otros tipos de mapas de textura, como los mapas de normales, de relieve y de oclusión ambiental. Cada uno de ellos desempeña un papel en la definición del aspecto del modelo, ya sea fingiendo profundidad o creando sombras. Dedica algún tiempo a experimentar con estos mapas de textura y encuentra lo que necesitan tus modelos.

Ahora que has visto cómo puedes crear atlas de texturas, a continuación hablaremos de por qué es importante hacerlos mientras examinamos las llamadas a dibujo.

Llamadas de sorteo

Una llamada a dibujar es una función que tiene como resultado la representación de los objetos en tu pantalla. La CPU trabaja con la unidad de procesamiento gráfico (GPU) para dibujar cada objeto utilizando información sobre la malla, sus texturas, sombreadores, etc. Siempre debes trabajar para tener el menor número posible de llamadas a dibujo, porque tener demasiadas provocará una reducción de la velocidad de fotogramas.

Para reducir el número de llamadas de sorteo que tienes, sigue estas pautas:

  • Combina todas las submallas de tu modelo en una malla combinada.

  • Crea un atlas de texturas para todas las UV del modelo.

  • Dale a tu malla el menor número posible de materiales que utilicen todas las texturas que el modelo o modelos necesitan.

Piensa en cualquiera de tus experiencias de RV favoritas e imagina todos los modelos 3D que componen esas escenas. Todos y cada uno de ellos contribuyen al recuento de llamadas de una forma u otra. Siempre suman. Si este contexto se experimenta en RV social, considera también cuántas personas experimentarán también el renderizado de todo lo que hay en tus escenas.

A medida que nos acercamos al final de este capítulo, quiero reafirmar que es importante mantener la optimización como una alta prioridad en todo el proceso de diseño, desde el inicio de un modelo hasta las texturas terminadas. Mantén los números y tamaños pequeños sin tener que sacrificar todo lo que querías para tu contenido de RV.

Uso de herramientas de RV para crear arte en 3D

Llegados a este punto, quizá te preguntes por qué hasta ahora este capítulo se ha centrado en las ilustraciones 3D creadas en una pantalla 2D si estamos hablando de RV. Aunque estamos viendo surgir muchas opciones para la creación de obras de arte con muchas herramientas disponibles (como Tiltbush, Medium, Unbound, Quill y Google Blocks), la manipulación tradicional de los activos 3D se hará en programas pensados para visores 2D.

No es muy diferente cuando se trata de tener un modelo que necesita optimización. Actualmente, no es sorprendente exportar una cantidad considerable de contenido desde estos programas. La sensación mágica de crear arte en un espacio 3D a tu alrededor se debe a que el contenido sale como se espera. Esto significa que gran parte de la geometría se crea con suficientes bucles de perímetro para obtener las curvas esperadas. También pueden utilizarse varios materiales para que la pieza sea extremadamente colorida y brillante. Lo que hagas con estos programas muy probablemente tendrá que optimizarse si se añade a un espacio con más contenido que tendrá que dibujarse en tu pantalla.

Independientemente del programa que utilices, aunque encuentres herramientas que te ayuden a optimizar los activos utilizados para tu experiencia inmersiva, lo más probable es que sea necesario que los creadores y diseñadores tomen las decisiones para garantizar que los tamaños, los recuentos y la calidad sean aceptables para la experiencia. Siempre será necesario un equilibrio adecuado, independientemente del medio que se utilice para crear este contenido.

Adquirir modelos 3D frente a crearlos desde cero

Ten cuidado al comprar modelos en tiendas online. Ten en cuenta cuánto tiempo hace que se fabricó el modelo. ¿Crees que se hizo pensando en la RV? ¿Necesitarás limpiar el modelo y optimizarlo para tu uso? ¿El tiempo que podrías tener que dedicarle cuesta menos que el que emplearías en crear uno desde cero? Comprar modelos 3D puede ser rápido y fácil, pero puede afectar a tu rendimiento posterior y llevarte mucho tiempo modificarlo para que funcione bien.

A continuación encontrarás una lista de lo que debes buscar en el listado de un artículo y de las preguntas que debes hacer cuando descargues un modelo 3D de sitios como Poly, Turbosquid, CGTrader, etc. (si no ves ninguna de las informaciones de la lista, sé muy cauto y prepárate para las molestias):

  • Recuento de polígonos

  • ¿Es éste un número adecuado de triángulos?

  • Si el modelo es bueno pero tiene muchos polígonos, ¿cuánto tiempo vas a dedicar a reducir el número de polígonos y a limpiar la geometría para que el activo esté listo para la RV?

  • Mapas de texturas.

  • ¿Está el modelo texturizado de forma optimizada, utilizando un atlas de texturas?

  • Si hay varios mapas de textura separados, ¿crees que el tiempo que llevará optimizarlos es aceptable?

  • ¿Están los archivos de textura en un formato compatible con el motor que los renderizará?

  • ¿Cuál es el tamaño de los archivos de textura? Ten cuidado con las texturas de más de 2.048, sobre todo si una textura tan grande es para un modelo que será de escala pequeña. Busca también texturas pequeñas si lo que quieres es mayor resolución en algunos modelos.

  • Formato de archivo.

  • ¿Estás comprando archivos con los que puedas trabajar?

  • ¿Sus programas admiten la apertura y edición de los modelos?

Prueba siempre la apariencia de tu modelo. Introdúcelo en el motor que elijas y compruébalo por ti mismo en RV o RA. Te sorprenderá lo diferente que se siente la escala cuando estás inmerso en ella.

Resumen

En este capítulo, has visto diferentes enfoques y procesos de pensamiento a tener en cuenta en varias áreas implicadas en la creación de arte 3D. Llevará tiempo y práctica aprender a optimizar el arte 3D, así que asegúrate de que la optimización sea siempre una prioridad durante todo el proceso de diseño. Puede que seas un artista nuevo en la creación para RV o RA. Puede que seas un desarrollador aprendiendo sobre las áreas en las que trabajan otras personas. Puede que seas un productor que siente curiosidad por el pipeline de los artistas. Me alegro de que hayas llegado hasta aquí para aprender sobre la importancia de la optimización, porque es un reto inmenso cuando se trata de desarrollar activos para RV y RA. Todos los que trabajan en experiencias inmersivas deberían conocer el arduo trabajo que supone la creación de activos.

Con la tecnología cambiando rápidamente, algunas de las técnicas o programas que has visto en este capítulo podrían ser irrelevantes en un futuro próximo, por lo que es importante recordar las razones que hay detrás de estos métodos. Como ya se ha mencionado, es importante que la gente se sienta cómoda en tus experiencias. Asegúrate de estar atento y mantén alta esa frecuencia de fotogramas con arte optimizado!

Get Crear realidades aumentadas y virtuales now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.