---
title: Modellen laden
description: Laad 3D modellen in je Tres scenes.
author: alvarosabu
thumbnail: /recipes/gltf-model.png
difficulty: 1
---
# Modellen laden
> Alle modellen in deze gids zijn van [Alvaro Saburido](https://sketchfab.com/3d-models/aku-aku-7dfcb6edf10b4098bbb965c56fd3055c).
3D-modellen zijn beschikbaar in honderden bestandsformaten, elk met verschillende doeleinden, diverse functies en variërende complexiteit.
Voor deze handleiding gaan we ons concentreren op het laden van gLTF-modellen (GL Transmission Format), het meest gebruikelijke formaat voor 3D-modellen op het web.
Er zijn meerdere manieren om modellen te laden in TresJS:
::: warning
Houd er rekening mee dat we in de bovenstaande voorbeelden `await`s op het hoogste niveau gebruiken. Zorg ervoor dat dergelijke code wordt verpakt met een [Suspense](https://vuejs.org/guide/built-ins/suspense.html#suspense) component. Zie Suspense voor meer informatie.
:::
## `useLoader` gebruiken
Met de `useLoader` composable kunt u elk type three.js-lader en een URL doorgeven waaruit de bron kan worden geladen. Het returned een `Promise` met de geladen bron.
Voor een gedetailleerde uitleg over het gebruik van `useLoader`, bekijk de [useLoader](/nl/api/composables#use-loader) documentatie.
```ts
import { useLoader } from '@tresjs/core'
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader'
const { scene } = await useLoader(GLTFLoader, '/models/AkuAku.gltf')
```
Vervolgens kunt u de modelscène doorgeven aan een TresJS [`primitive`](/nl/advanced/primitive) component om deze te renderen:
```html
```
> De component `` is geen op zichzelf staande component in de Tres-broncode. In plaats daarvan maakt het deel uit van de kernfunctionaliteit van Tres. Wanneer u `` gebruikt, wordt dit vertaald naar een `createElement`-aanroep, die het juiste three.js-object creëert op basis van de opgegeven "object"-prop.
Merk op dat we in het bovenstaande voorbeeld de component `Suspense` gebruiken om de component `TresCanvas` te wrappen. Dit komt omdat `useLoader` een `Promise` returned en we moeten wachten tot dit is resolved voordat de scène wordt weergegeven.
## `useGLTF` gebruiken
Een gemakkelijkere manier om modellen te laden is het gebruik van de `useGLTF` composable die beschikbaar is in het pakket [@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')
```
Een voordeel van het gebruik van `useGLTF` is dat je een `draco` prop kunt doorgeven om [Draco-compressie](https://threejs.org/docs/index.html?q=drac#examples/en/loaders/DRACOLoader) in te schakelen voor het model. Hierdoor wordt de grootte van het model kleiner en worden de prestaties verbeterd.
```ts
import { useGLTF } from '@tresjs/cientos'
const { scene, nodes, animations, materials } = await useGLTF('/models/AkuAku.gltf', { draco: true })
```
Als alternatief kunt u eenvoudig objecten binnen het model selecteren met behulp van de eigenschap `nodes`.
::: code-group
```vue [App.vue]
```
```vue [Model.vue]
```
:::
## `GLTFModel` gebruiken
De component `GLTFModel` is een wrapper rond de `useGLTF` composable, die beschikbaar is via het pakket [@tresjs/cientos](https://github.com/Tresjs/tres/tree/main/packages/cientos).
```vue{2,9}
```
Deze specifieke aanpak is eenvoudiger, maar geeft u minder controle over het model.
## useFBX
De `useFBX` composable is beschikbaar via de [@tresjs/cientos](https://github.com/Tresjs/tres/tree/main/packages/cientos) package.
```ts
import { useFBX } from '@tresjs/cientos'
const model = await useFBX('/models/AkuAku.fbx')
```
Dan is het net zo eenvoudig als het toevoegen van de scène aan uw scène:
```html
```
## FBXModel
De component `FBXModel` is een wrapper rond de `useFBX` composable, die beschikbaar is via het pakket [@tresjs/cientos](https://github.com/Tresjs/tres/tree/main/packages/cientos). Het is vergelijkbaar in gebruik met `GLTFModel`:
```vue{2,9}
```