Table of Contents

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 como C:\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 modo REPEAT: se ignora la parte entera de la coordenada y se construye un patrón de repetición infinita, igual que el procesamiento GL_REPEAT en OpenGL.
  • 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.

  1. 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.

  2. 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.

  3. 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.

  1. 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.

  2. Forma del modelo
    El modelo admite diferentes formas, pero la estructura principal debe ser convex.

    Ambos objetos pueden ser detectados y rastreados por EasyAR.

  3. 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.

  1. 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.

  2. 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.

  3. 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.