# Importar y usar modelos > Todos los modelos usado en esta guía son de [Alvaro Saburido](https://sketchfab.com/3d-models/aku-aku-7dfcb6edf10b4098bbb965c56fd3055c) Los modelos 3D están disponible en cientos de formatos, cada uno con propósitos diferentes, características distintas, y complejidad variable. En esta guía, vamos a enfocarnos en glTF (GL Transmission Format) modelos, que son el formato más común de modelos 3D en el web. Hay algunas maneras para cargar modelos en TresJs: ## usando `useLoader` Para cargar el recurso, el `useLoader` composable te permite pasar cualquier tipo de `Loader` de Three.js y una URL. Devuelve una `Promise` con el recurso cargado. Para una explanación detallada de como usar `useLoader`, ve la documentación de [useLoader](/api/composables#useloader). ```ts import { useLoader } from '@tresjs/core' import { GLTFLoader } from 'three/addons/loaders/GLTFLoader' const { scene } = await useLoader(GLTFLoader, '/models/AkuAku.gltf') ``` Entonces, puedes pasar la escena de modelo a un componente `primitive`: ```html{3} ``` > El componente `` es parte del núcleo en Tresjs. Cuando usas ``, es transformado usando una llamada `createElement` que crea una instancia de Threejs, basado en la propiedad proporcionada en "object" Nota que en el ejemplo anterior que usamos el componente `Suspense` para 'envolver' el componente `TresCanvas`. Eso es por que el `useLoader` devuelve una `Promise` y necesitamos esperarlo a que se resuelva antes de renderizar la escena. ## Usando `useGLTF` Una manera más conveniente de cargar modelos es usando el `useGLTF` composable disponible de [@tresjs/cientos](https://github.com/Tresjs/tres/tree/main/packages/cientos). ```ts import { useGLTF } from '@tresjs/cientos' const { scene, nodes, animations, materials } = await useGLTF('/models/AkuAku.gltf') ``` Una ventaja de usar `useGLTF`es que puedes pasar un `draco` prop para habilitar [Draco compression](https://threejs.org/docs/index.html?q=drac#examples/en/loaders/DRACOLoader) por el modelo. Eso reducirá el tamaño del modelo y mejorar el rendimiento. ```ts import { useGLTF } from '@tresjs/cientos' const { scene, nodes, animations, materials } = await useGLTF('/models/AkuAku.gltf', { draco: true }) ``` Alternativamente puedes fácilmente seleccionas los objetos dentro de tu modelo usando la propiedad `nodes` ```vue ``` ## Usando `GLTFModel` El componente `GLTFModel` es un 'wrapper' alrededor de `useGLTF` que es disponible del paquete [@tresjs/cientos](https://github.com/Tresjs/tres/tree/main/packages/cientos). ```vue{2,9} ``` Esta estrategia en particular es más directo pero te da menos control sobre el modelo. ## useFBX El composable `useFBX` esta disponible del paquete [@tresjs/cientos](https://github.com/Tresjs/tres/tree/main/packages/cientos). ```ts import { useFBX } from '@tresjs/cientos' const model = await useFBX('/models/AkuAku.fbx') ``` Entonces, es tan fácil como añadir el modelo a tu escena: ```html{3} ``` ## FBXModel El componente `FBXModel` es un 'wrapper' alrededor de `useFBX` que esta disponible del paquete [@tresjs/cientos](https://github.com/Tresjs/tres/tree/main/packages/cientos). Tiene un uso similar al `GLTFModel`: ```vue{2,9} ```