Comparativa de herramientas para bakear texturas

El artista y desarrollador Grzegorz Baran comparte este con algunas investigaciones que ha realizado sobre los distintos programas y sistemas de bakeo PBR en su flujo de trabajo de fotogrametría. Básicamente se centra en cuatro diferentes y en las pruebas realizadas cada uno de ellos realiza el mismo trabajo sobre la misma escena de forma que la comparativa sea equitativa en la usabilidad general, la funcionalidad, el rendimiento, las opciones que ofrecen, pero también lo que es más importante, la calidad de los conjuntos de texturas generados. Sabiendo lo que ofrece cada uno de ellos le permite elegir conscientemente el que mejor se adapta a su trabajo.

Especialmente porque creo que no existe una herramienta que podamos decir, esta es la mejor para hacer el trabajo y cada una tiene sus pros y sus contras, pero lo más importante es que cada una está en constante cambio.

Según palabras del propio artista, en detalle, presentó el flujo de trabajo de bakeo completo con el diseñador de sustancias en la versión 1.1.3, XNormal en la versión 3.19.3, KNALD en 1.2.1 y Marmoset Toolbag 3 en su versión 3.08.

Ten en cuenta que cada uno de estos no es solo el bakeo, sino que ofrece algunas funciones adicionales que pueden ser muy útiles en la creación de texturas. Como bakear depende en gran medida del uso del hardware, debes saber que para esta prueba utilizó un PC con Windows 10 de 64 bits instalado con el procesador i7 ejecutándose en 4 núcleos de 4.2GHz equipados con 64GB de RAM, con tarjeta gráfica usé Nvidia GeForce GTX 1080 Ti con los 11GB adicionales de RAM DDR5. Como tema para esta comparación, eligió una superficie bastante complicada y compleja desde el punto de vista de la altura y que convertí en un modelo 3D mediante la técnica de fotogrametría. Era una superficie de playa costera cubierto con diferentes rocas de diferente tipo y tamaño. Como quería cubrir solo un área de 180 por 180 centímetros para la textura marcó el área con reglas y lo capturó tomando 338 imágenes.

El paso siguiente es procesarlos con el software de edición de fotografías para eliminar las sombras y asegurarse de que los colores sean físicamente correctos, finalmente procesó estas imágenes en Agisoft Metashape y generó una malla 3D pesada de 37 millones de polígonos. Esta malla se utilizará como nuestro modelo High Poly para presentar la funcionalidad básica y el flujo de trabajo de cada bakeo. Ya que la malla no era demasiado densa, decidió usar información de albedo usando textura adicional y generó un mapa de albedo grande de 16k. Como respaldo, también guardó información de color en vértices. A continuación exportó el High Poly Mesh como un archivo FBX y la textura como un mapa de bits TIF de 16 bits.

Con el ZBrush creó un modelo de baja poligonización que se puede usar para transferir información de alta poligonización en el conjunto de texturas. Usó reglas reconstruidas como referencia de escala para estimar la cobertura del modelo de baja poligonización y las alineó para que coincida el nivel del terreno escaneado debajo de las rocas. Solo para dar una explicación aproximada a aquellos que no están seguros sobre el proceso de bakeo.

El bakeo es el proceso para transferir información tridimensional, generalmente realizada por el modelo de alta poligonización en un conjunto de texturas 2D PBR. Para hacerlo, necesitamos crear un modelo de baja poligonización, que es un lienzo para bakear que se usará para la proyección de datos. Este modelo Lowpoly debe alinearse con el modelo High Poly en el espacio 3D.

Todo lo que hay sobre este plano se considerará como convexo, y todo lo que esté debajo como cóncavo. Es por eso que debemos colocar el plano de polietileno bajo de la manera que sigue la forma de la superficie principal pero no sigue al mismo tiempo ningún medio o detalles de micro altura. De esta manera vamos a evitar el cruce de superficies gradiente cuando un lado de la textura es completamente diferente altura que la otra.

A continuación, necesitamos definir el rango de proyección. Algunos programas de bakeo lo calculan de forma totalmente automática, algunos manejan todo dentro de un rango dado por sí mismos pero para algunos, la distancia de proyección debe configurarse de forma totalmente manual.

Básicamente, cualquier cosa fuera de este rango no será tomado en consideración durante la proyección de alta poligonización. Si la distancia de proyección es demasiado corta, el bakeo puede recortar todo lo que no se incluyó en el área de proyección. Si la distancia es demasiado amplia, podemos incluir elementos aleatorios o partes de diferentes modelos, en una escena que no formaba parte de la reconstrucción o en algunos casos, la precisión de la reconstrucción pierde al no llenar todo el rango dinámico disponible.

Dejo aquí el tutorial y que cada uno saque sus conclusiones.

Ver más sobre el tema y los comentarios en el foro