3D model preparation and optimization
Este artículo explica en detalle cómo preparar modelos 3D que cumplan con los requisitos de EasyAR, cubriendo especificaciones de formato, herramientas recomendadas y solución de problemas comunes, para ayudar a los desarrolladores a mejorar la tasa de éxito del seguimiento desde el origen.
Formato y especificaciones del modelo
El seguimiento de objetos 3D de EasyAR solo admite el formato Wavefront OBJ. Se deben seguir los siguientes requisitos y especificaciones durante su uso.
Estructura de archivos del modelo
Un modelo 3D completo debe contener los siguientes archivos:
- Archivo .obj: Datos de geometría del modelo (incluye vértices, caras, coordenadas UV, etc.).
- Archivo .mtl: Definición de materiales (color, ruta de mapas de textura).
- Mapa de textura: Al menos una imagen en formato JPEG o PNG (resolución recomendada: 512×512 a 2048×2048).
Requisitos de archivos
- Todos los archivos deben estar en la misma carpeta y usar rutas relativas (ej.
texture.jpg). Prohibidas las rutas absolutas (ej.C:\Models\texture.jpg). - Los nombres de archivo y las rutas internas no deben contener espacios. Se recomienda usar inglés o números.
- La codificación de archivos debe ser UTF-8 (evita fallos de carga por caracteres corruptos).
Requisitos mínimos del archivo OBJ (.obj)
- Debe contener
vertex
Vértices geométricos, representados por coordenadas \((x, y, z [, w])\). \(w\) es opcional, por defecto 1.0. Los parámetros de color del vértice no son obligatorios; si se proporcionan, el sistema no los cargará. - Debe contener
texture coordinates
Coordenadas de textura, representadas por \((u, v [,w])\). \(w\) es opcional, por defecto 0. Normalmente, \(u\) y \(v\) deben estar entre 0 y 1. Para valores fuera de este rango, el sistema procesa en modoREPEAT(ignora la parte entera, creando un patrón repetitivo infinito, igual queGL_REPEATenOpenGL). - Debe contener
face
Elementos de cara. Debe incluir al menos índices de vértices e índices de coordenadas de textura. También admite polígonos con más de 3 vértices (ej. cuadriláteros). - Debe contener
mtllib
Referencia al archivo de material. Debe especificar al menos un archivo MTL externo con ruta relativa (no absoluta). - Debe contener
usemtl
El nombre del material referenciado debe coincidir con el definido en el archivo MTL externo.
Requisitos mínimos del archivo MTL (.mtl)
- Un archivo MTL debe definir al menos un material.
- El mapa de textura es obligatorio.
Normalmente basta con especificar textura para luz ambiental o difusa (map_Ka,map_Kd).
La ruta del mapa de textura debe ser relativa (no absoluta). - Los parámetros opcionales de textura no son obligatorios; si se proporcionan, el sistema no los usará.
Preparación del modelo
Puede preparar archivos de modelo en formato OBJ compatibles de varias formas.
Exportar desde modelos existentes
Usar herramientas profesionales como Autodesk Maya / 3ds Max, importar modelos en FBX u otros formatos, y exportar seleccionando "OBJ Export" habilitando "Materials" y "UVs".Crear un modelo nuevo
Usar herramientas de modelado como Autodesk Maya / 3ds Max para crear/diseñar el modelo 3D y exportarlo como OBJ.Escanear objetos reales y reconstrucción 3D
Usar software de escaneo 3D como Autodesk ReCap, Bentley ContextCapture, o escáneres láser para reconstruir objetos reales en 3D, exportando el resultado como OBJ.
Importante
El mapa de textura del modelo debe reproducir fielmente las características visuales del objeto real; de lo contrario, el reconocimiento y seguimiento fallarán.
Buenas prácticas para modelos
Aquí se listan problemas y ejemplos comunes al preparar modelos, para una revisión rápida.
Asegurar detalles de textura ricos
Las texturas del modelo deben tener abundantes detalles.
Imagen izquierda: Puede ser detectada y seguida por EasyAR. Imagen derecha: No se puede detectar ni seguir, textura insuficiente.
Forma del modelo
El modelo admite diferentes formas, pero su estructura principal debe ser convexa.
Ambos objetos pueden ser detectados y seguidos por EasyAR.
Verificar rutas de referencia en archivos
Las rutas referenciadas dentro del archivo del modelo deben ser relativas, no absolutas.
El modelo de la derecha no puede cargarse porque EasyAR no encuentra archivos que usan rutas absolutas.
Las rutas referenciadas dentro del archivo del modelo no deben 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 utilizar el formato de codificación UTF-8.
El modelo de la derecha no se puede cargar debido a un error de decodificación durante la lectura causado por problemas en la codificación del archivo.
Verificar las normales del modelo
La orientación positiva de las normales de los fragmentos (faces) del modelo debe seguir la regla de la mano derecha.
En el segundo cubo, las normales de los fragmentos sombreados están orientadas negativamente. Estos fragmentos se tratarán como invisibles en EasyAR. Si se mira desde dentro del modelo, aparecerá como en el tercer cubo.
El modelo debe evitar todos los fragmentos con normales orientadas negativamente.Número de fragmentos (faces) del modelo
El número de fragmentos (faces) del modelo debe ser lo más bajo posible garantizando la forma geométrica del objeto, y generalmente no debe exceder los 100,000 fragmentos triangulares. Un número excesivo de fragmentos puede causar:- Tiempos de carga del modelo demasiado largos, afectando la experiencia del usuario al iniciar la aplicación.
- Aumento del cálculo de la proyección de texturas en los fragmentos, afectando la tasa de fotogramas (FPS) durante el seguimiento en la aplicación.
La calidad del modelo 3D determina directamente la tasa de éxito del seguimiento. Los desarrolladores deben seguir estrictamente las especificaciones de formato, optimizar detalles de textura y garantizar que los archivos sean correctos.