.fbx export ¿Por qué no hay materiales ni texturas?

Usé texturas de nodos en una malla que exporté a .FBX.

Luego lo importé a Unreal Engine 4 y no funcionó » t importar texturas; hice clic en la opción Cargar texturas en Unreal Engine.

¿Hay algo que estoy haciendo mal o es Blender?

Comentarios

Responder

Esta es una pregunta frecuente.

TL; DR

La mayoría de los formatos de archivo simplemente no admiten la exportación de texturas, y mucho menos definiciones de material completas u otras características específicas de la aplicación . También la mayoría de los importadores / exportadores de Blender actualmente no admiten bien los materiales basados en nodos.

Reproduzca manualmente sus materiales utilizando las texturas disponibles en el entorno de destino.

Larga historia

Los materiales son demasiado específicos de la implementación y están estrechamente ligados al sistema de renderizado al que pertenecen a , o al software con el que fueron creados. No puede, en su mayor parte, importar / exportar definiciones de material entre aplicaciones, ni siquiera puede hacer que los materiales internos de Blender funcionen con Cycles Renderer ni viceversa, y ambos se crean con Blender, y mucho menos entre aplicaciones completamente diferentes. .

Por esta razón, ningún formato de archivo que utilice puede, ni siquiera intenta, importar o exportar propiedades del material, ya sea 3DS, FBX, Collada, STL, OBJ o cualquier otro. En su mayoría, se trata de formatos de archivo centrados en la geometría y solo de malla relacionados con la portabilidad de formas de objetos y, en ocasiones, la animación, la armadura y el sombreado básico o las propiedades de color (como archivos MTL); nunca definiciones de materiales complejas completas.

Simplemente no hay estructuras de datos en las especificaciones para la mayoría de los formatos de archivos de intercambio para acomodar esos datos, y mucho menos todos los tipos posibles de propiedades, configuraciones o mapas; e incluso si las hubiera, hay demasiadas implementaciones de renderizado diferentes para una variedad de propósitos y que responden a distintos requisitos (como velocidad o capacidad de respuesta para juegos o motores de renderizado en tiempo real, o realismo para «renderizados sin conexión» basados físicamente) utilizando su propio conjunto diferente de parámetros y formas particulares de interpretar propiedades específicas para poder hacer coincidir correctamente configuraciones, parámetros o características particulares entre ellos fácilmente.

Por ejemplo, la mayoría de los sistemas de renderizado en tiempo real necesitan algún tipo de opción explícita " backface culling " porque la rasterización depende en gran medida de ella por razones de rendimiento, pero en el renderizado como Cycles es solo un nodo básico porque para los trazadores de rayos es irrelevante en qué dirección se enfrenta una geometría. Por otro lado, los sombreadores de vidrio y transparentes " simplemente funcionan " con una gran refracción en los raytracers, pero en EEVEE debes jugar con la mezcla modos y configuraciones de transparencia, inexistentes en Cycles, porque representar interacciones de objetos es costoso y complejo para los rasterizadores.

Algunos canales de textura basados en imágenes más comunes pueden algunas veces conservarse correctamente, como difuso, especular, brillo o el " flujos de trabajo PBR " cada vez más populares, pero ciertamente nunca texturas generadas proceduralmente y / o coordenadas de textura generadas, estas se generan en el tiempo de renderización «t ser exportado. Tenga en cuenta que la mayoría de los exportadores de Blender ni siquiera admiten materiales basados en Cycles node (en ese momento de escritura para Blender 2.79 #), por lo que incluso las texturas de imagen utilizadas en los árboles de nodos Cycles probablemente no se conservarán.

Lo mismo se aplica a muchas otras funciones específicas de aplicaciones o motores de renderizado, como parámetros de iluminación, configuración de sombras, lámparas, cámaras, simulaciones de física (fluidos, telas, cuerpos blandos), opciones de textura (sujeción, recorte, mosaico, ajustes de color), coordenadas de textura generadas (cualquier cosa que no esté mapeada explícitamente por un mapa UV o creada al desenvolver una malla), opciones de material (selección del reverso, sombras, visibilidad, transparencia y modos de fusión) sistemas de partículas, simulaciones de humo y fuego, datos volumétricos, modificadores, transformación de formas (como teclas de forma o animaciones basadas en deformaciones) y otros " Los datos generados ", «t también en su mayor parte pueden ser importados o exportados (con algunas excepciones).

¿Cómo resolverlo entonces?

Todo lo que puede, y debe, importar / exportar son coordenadas UV con su malla para que pueda aplicar correctamente sus texturas en el " aplicación de destino " , motor de juego o entorno de procesamiento de recepción, donde importarás y mostrarás tu modelo , ya sea Unreal, Unity, Gamekit, software de renderizado externo o cualquier otra cosa; o incluso el propio Blender cuando se importan modelos de otros lugares. Los mapas UV generalmente se conservan correctamente en la mayoría de los formatos de archivo de intercambio de forma predeterminada.

Allí debe gastar algo de tiempo recreando tus materiales desde cero nuevamente con las texturas provistas y los mapas disponibles. Sí, requiere un poco de retroceso y tomará algo de tiempo, pero con práctica será más rápido. Guarde los ajustes preestablecidos en bibliotecas reutilizables cuando estén disponibles, para reducir la cantidad de repetición.

Lo que puede hacer en algunas situaciones es usar Blender para hornear texturas que luego puedes usar en el destino final o recibir la aplicación para crear materiales allí, no dentro de Blender .

Hornear es el proceso de pre-cálculo del sombreado y almacenarlo en una textura de imagen estática que puede incorporar varios canales opcionales como luz difusa, brillante, indirecta, mapas de relieve, mapas normales, mapas de luz, entre otros. Esto puede mejorar la calidad gráfica o el " realismo " percibido a expensas del dinamismo, ya que ciertas propiedades de los materiales y texturas pueden volverse estáticas, como si " pintado sobre la superficie ", como sombras o reflejos. Esto suele ser un requisito para medios de alto rendimiento o plataformas de baja potencia, como juegos web o móviles, donde los recursos disponibles son limitados o desconocidos, y la velocidad tiene prioridad sobre la fidelidad gráfica.

Excepciones

Una excepción notable a todo esto es el formato de archivo glTF , que a partir de la versión 2.0 glTF admite algunas definiciones de materiales basadas en un modelo de sombreado de rugosidad metálica en sus especificaciones. El complemento glTF-Blender-IO creado por el propio Khronos Group admite exportar materiales basados en nodos de Principled BSDF . Pero incluso entonces se aplican algunas restricciones.

Debido a la reciente popularidad del Physically Based Rendering , y su uso cada vez mayor en motores de juegos y real -Aplicaciones de renderizado temporal, se ha convertido en una especie de " estándar flexible " vagamente definido para describir las propiedades de la superficie de los materiales (aunque varios matices diferentes versiones existentes).

Desarrollos futuros

PBR no es un estándar sin embargo y no todas las implementaciones funcionan de la misma manera o interpreta los mismos parámetros de manera similar. El Principled BSDF ya se redactó según un modelo diseñado por un líder de la industria establecido (Disney) para su propio uso interno y juego. motores como Unreal Engine® o aplicaciones de pintura de texturas como Substance Painter® también lo adoptaron.

A medida que el flujo de trabajo PBR gana popularidad y tracción, es posible que más aplicaciones " Únase al movimiento " e impleméntelo en el futuro. Si se puede acordar una norma común, es posible que en el futuro más importadores / exportadores mejoren la compatibilidad con un número creciente de propiedades de los materiales. Probablemente leerán directamente de un archivo Blend, usarán algún otro formato de archivo nuevo hipotético o se verán obligados a implementar nuevos estándares; ya que los actuales todavía carecen de estructuras de datos para describirlos correctamente. En este punto, es pura especulación y no se hacen planes conocidos.

Problemas relacionados

Comentarios

  • Nunca he usado Unreal o cualquier otro motor, no tengo ni idea, tendrás que preguntar al respecto en una comunidad dedicada I ' tengo miedo.Escuché que algunos motores no permiten múltiples materiales por malla, tendrías que dividirlos en varios objetos. De todos modos, puede aplicar los materiales en Blender, para obtener fidelidad visual en la ventana gráfica, y si el importador admite que es ' menos trabajo que tiene que rehacer en el motor, simplemente no ' No espere usar las mismas definiciones de material exactas.
  • Vale la pena señalar que muchas aplicaciones / formatos se preocupan por los espacios de material asignados (es decir, qué verts tienen qué material asignado) , pero no el material real que se asigna, ya que los necesitan para asignar sus propios materiales.
  • @Duarte Farrajota Ramos hay innumerables scripts de exportación que exportan mallas de Blender con sus materiales asignados
  • @ phil123 Debería publicar eso como una respuesta a continuación, con enlaces a dichos scripts y una descripción del flujo de trabajo utilizado, junto con algunas capturas de pantalla de los resultados
  • Puedo agregar algo sobre Unreal y glTF, don ' No conozco FBX. Cycles, Eevee y Unreal tienen poderosos materiales basados en nodos. El modelo de material glTF 2.0 es más simple pero puede manejar un gran porcentaje de las necesidades de arte del juego (PBR basado en texturas de imágenes). glTF funciona entre Blender y Unreal (a partir de 4.19) para mallas estáticas con materiales. Puede tener varios materiales en un solo objeto de malla, y estos se mostrarán como ranuras de material en Unreal. Desde allí, puede usar los materiales importados de glTF o intercambiarlos / crear otros nuevos en Unreal.

Responder

Al exportar a .fbx, no puede exportar materiales, tendrá el color de la superficie, pero no otras configuraciones como brillo y reflejo, para texturas, sí puede, pero debe usar blender internal (lo hace no funciona con ciclos), y asegúrese de no usar nodos, aplique las texturas, luego, cuando esté en la configuración de exportación de fbx, vaya a la parte inferior, establezca la ruta para copiar, luego marque el ícono con forma de caja al lado, ahora debería incrustar las texturas con el archivo fbx exportado.

PD: No probé la nueva licuadora 2.79

Configuración de exportación de Blender Fbx para incrustar texturas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *