Preparación y optimización de modelos 3D
Este artículo explica en detalle cómo preparar modelos 3D que cumplan los requisitos de EasyAR, incluyendo especificaciones de formato, herramientas recomendadas y troubleshooting común, para ayudar a los desarrolladores a mejorar la tasa de éxito de tracking desde el origen.
Formato y especificaciones del modelo
EasyAR 3D object tracking solo admite el formato Wavefront OBJ. Al usarlo, siga los siguientes requisitos y especificaciones.
Estructura de archivos del modelo
Un modelo 3D completo debe incluir los siguientes archivos:
- Archivo .obj: Datos geométricos del modelo, incluyendo vértices, caras, coordenadas UV, etc.
- Archivo .mtl: Definiciones de material, incluyendo colores y rutas de texture map.
- Texture maps: Al menos una imagen JPEG o PNG. Se recomienda una resolución de 512×512 a 2048×2048.
Requisitos de archivo
- Todos los archivos deben colocarse en la misma carpeta y referenciarse con rutas relativas, como
texture.jpg. No se permiten rutas absolutas comoC:\Models\texture.jpg. - Los nombres de archivo y las rutas dentro de los archivos no deben contener espacios. Se recomienda usar letras inglesas o números.
- La codificación de archivos debe ser UTF-8 para evitar fallos de carga causados por texto corrupto.
Requisitos mínimos para archivos OBJ (.obj)
- Debe contener
vertex
Vértices geométricos, representados por coordenadas \((x, y, z [, w])\). \(w\) es opcional y por defecto es 1.0. Los parámetros de color de vértice no son necesarios; si se proporcionan, el sistema no los cargará. - Debe contener
texture coordinates
Coordenadas de textura, representadas por coordenadas \((u, v [,w])\). \(w\) es opcional y por defecto es 0. En general, los valores de \(u\) y \(v\) deben estar entre 0 y 1. Para valores menores que 0 o mayores que 1, el sistema los procesa por defecto en modoREPEAT: se ignora la parte entera de la coordenada y se construye un patrón de repetición infinita, igual que el procesamientoGL_REPEATenOpenGL. - Debe contener
face
Los elementos face deben incluir al menos índices de vértices e índices de coordenadas de textura. También se admiten estructuras de caras poligonales con más de 3 vértices, como cuadriláteros. - Debe contener
mtllib
Referencia a un archivo de material. Debe especificarse al menos un archivo de material MTL externo, y la ruta del archivo debe ser relativa, no absoluta. - Debe contener
usemtl
El material referenciado por los elementos del modelo debe especificar un nombre de material, y este nombre debe coincidir con el nombre de material definido en el archivo de material MTL externo.
Requisitos mínimos para archivos MTL (.mtl)
- Un archivo MTL debe definir al menos un material.
- Los texture maps son obligatorios.
Normalmente solo es necesario especificar el texture map ambiental o difuso (map_Ka,map_Kd);
La ruta del texture map debe ser relativa, no absoluta. - Otros parámetros opcionales del texture map no son necesarios; si se proporcionan, el sistema no los usará.
Preparación del modelo
Puede preparar archivos de modelo OBJ que cumplan las especificaciones de varias formas.
Exportar desde un modelo existente
Use herramientas profesionales como Autodesk Maya / 3ds Max para importar un modelo FBX u otro formato existente, seleccione “OBJ Export” al exportar y asegúrese de que las opciones “Materials” y “UVs” estén habilitadas.Crear un modelo nuevo
Use herramientas de modelado como Autodesk Maya / 3ds Max para crear o dibujar un modelo 3D y exportarlo en formato OBJ.Escanear un objeto real y realizar reconstrucción 3D
Use software de escaneo y modelado 3D como Autodesk ReCap o Bentley ContextCapture, o un escáner láser para reconstruir en 3D un objeto real, y luego exporte el resultado en formato OBJ.
Importante
Las texturas del modelo deben reproducir con precisión las características visuales del objeto real; de lo contrario, recognition y tracking no funcionarán correctamente.
Mejores prácticas del modelo
A continuación se enumeran algunos problemas y ejemplos comunes al preparar modelos, como referencia rápida para revisar.
Asegure detalles de textura abundantes
La texture del modelo debe tener detalles de textura abundantes.
Imagen de referencia izquierda: puede ser detectada y rastreada por EasyAR. Imagen de referencia derecha: no puede detectarse ni rastrearse porque tiene muy poca textura.
Forma del modelo
El modelo admite diferentes formas, pero la estructura principal debe ser convex.
Ambos objetos pueden ser detectados y rastreados por EasyAR.
Comprobar las rutas referenciadas dentro del archivo
Las rutas referenciadas dentro del archivo del modelo deben ser relative paths, no absolute paths.
El modelo de la derecha no puede cargarse porque EasyAR no puede encontrar el archivo que usa absolute path.
Las rutas referenciadas dentro del archivo del modelo no pueden contener espacios ni caracteres especiales.
El modelo de la derecha no puede cargarse porque la ruta referenciada contiene espacios.
Comprobar el formato de codificación del archivo
Los archivos de modelo deben usar codificación UTF-8.
El modelo de la derecha no puede cargarse porque su codificación de archivo provoca un decoding error durante la lectura.
Comprobar las normales del modelo
La dirección positiva del normal vector de las caras del modelo debe seguir la right-hand rule.
Los normal vectors de las caras sombreadas del segundo cubo tienen orientación negativa. EasyAR tratará estas caras como invisible faces. Si se mira desde dentro del modelo, se verá como el tercer cubo.
El modelo debe evitar todas las caras con orientación normal negativa.Cantidad de caras del modelo
La cantidad de caras del modelo debe ser lo más pequeña posible manteniendo la forma geométrica del objeto, y normalmente no debe superar 100.000 triangle faces. Demasiadas caras pueden causar:- Tiempo de carga del modelo excesivamente largo, afectando la user experience al iniciar la aplicación
- Aumento del cálculo de face texture projection, afectando el frame rate de la aplicación durante tracking
La calidad del modelo 3D determina directamente el éxito del tracking. Los desarrolladores deben seguir estrictamente las especificaciones de formato, centrarse en optimizar los detalles de textura y asegurarse de que el formato de archivo sea correcto.