05 Capítulo 5 · Lección 12

Modelos 3D

Redactado por
Author Sebastian V.
Fecha de publicación

26/02/2026

Tiempo de lectura

8 min

Tema

Three.js

Traer arte al código

Construir mundos usando solo cubos y esferas programadas está bien para matemáticas, pero para experiencias impactantes necesitas Modelos 3D reales creados por artistas en programas como Blender, Maya o Cinema4D.

El formato GLTF / GLB

Históricamente existían formatos pesados como OBJ o FBX. Hoy en día, la industria web ha estandarizado el uso de GLTF (y su versión binaria empaquetada, .glb). Es conocido como el "JPEG del 3D". Es ligero, comprime texturas y geometrías, y soporta animaciones integradas.

GLTFLoader

Para traer estos modelos a tu escena, usamos un Addon llamado GLTFLoader. Este loader descargará el archivo, desempaquetará su geometría y materiales PBR automáticamente, y te devolverá una estructura lista para añadir a tu Scene.

Optimización en Producción

Un modelo descargado de internet puede tener millones de vértices y texturas 4K. Si lo cargas en la web, tardará 15 segundos en descargar y luego trabará el móvil de tu usuario. Siempre debes pasar tus modelos por Blender o herramientas como Draco para comprimirlos antes de llevarlos a Three.js.

Consejo profesional

¿Tu modelo es muy oscuro cuando lo importas? Blender usa sistemas de iluminación complejos, pero Three.js importa el modelo crudo. Tendrás que configurar tus propias luces en Three.js o, mejor aún, usar un Environment Map (HDRI) para que los materiales metálicos tengan algo que reflejar.

Cargando un archivo .GLB

> _
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';

// Instanciamos el loader
const loader = new GLTFLoader();

// load( url, onLoad, onProgress, onError )
loader.load(
  '/models-three.js/small-airplane.glb',
  function (gltf) {
    // El modelo cargó correctamente
    const model = gltf.scene;
    
    // Ajustar escala si es muy grande o pequeño
    model.scale.set(0.5, 0.5, 0.5);
    
    // Centrarlo y añadirlo a la escena
    model.position.set(0, 0, 0);
    scene.add(model);
  },
  function (xhr) {
    // Para mostrar barras de progreso
    console.log((xhr.loaded / xhr.total * 100) + '% cargado');
  },
  function (error) {
    console.error('Un error ocurrió', error);
  }
);
> _

Modelo GLB de un pequeño avión cargado y renderizado.

Errores comunes

01
Ruta incorrecta del archivo En Astro/Vite, los archivos estáticos van en la carpeta public/. Debes cargarlos con la ruta absoluta desde la raíz: /models-three.js/modelo.glb, no con rutas relativas.
02
Modelo invisible A veces el modelo es 1000 veces más grande que tu cámara y estás atascado dentro de él, o es microscópico. Usa model.scale.set() para ajustarlo y revisa su tamaño en Blender antes de exportar.

Practica lo aprendido

Integra arte profesional.

01 Importa GLTFLoader.
02 Carga el modelo de prueba /models-three.js/small-airplane.glb.
03 Agrega luces a la escena para que el modelo no se vea negro.