# Je eerste scene
Deze gids zal jou helpen om je eerste Tres scene te maken. 🍩
## De Canvas eexperience opzetten
Voordat we een ThreeJS `Scene` kunnen maken, hebben we ruimte nodig om deze weer te geven. Met gewoon [ThreeJS](https://threejs.org/docs/index.html#manual/en/introduction/Creating-a-scene) zouden we een `canvas` HTML-element moeten maken om de `WebglRenderer` te mounten en de `Scène` te initialiseren.
Met **TresJS** hoef je alleen de standaardcomponent `` te importeren en toe te voegen aan de template van uw Vue-component.
```vue
```
::: warning
Het is belangrijk dat alle componenten die verband houden met de scène zich tussen de component `` bevinden. Anders worden ze niet weergegeven.
:::
De `TresCanvas` component gaat achter de schermen wat instellingswerk doen:
- Het creëert een [**WebGLRenderer**](https://threejs.org/docs/index.html?q=webglrend#api/en/renderers/WebGLRenderer) die elk frame automatisch bijwerkt.
- Het stelt de render loop in die op elk frame moet worden aangeroepen op basis van de refresh rate van de browser.
## Canvas grootte
Standaard neemt de component `TresCanvas` de **parent breedte en hoogte** over. Als u een lege pagina ervaart, zorg er dan voor dat het bovenliggende element de juiste grootte heeft.
```vue
```
Als je scène geen deel gaat uitmaken van een UI, dan kun je het canvas ook dwingen de breedte en hoogte van het volledige venster te nemen door de `window-size` prop als volgt te gebruiken:
```vue
```
## Een scene maken
We hebben 4 kernelementen nodig om een 3D-ervaring te creëren:
- Een [**Scene**](https://threejs.org/docs/index.html?q=scene#api/en/scenes/Scene) die de camera en objecten samen houd.
- Een [**Renderer**](https://threejs.org/docs/index.html?q=renderer#api/en/renderers/WebGLRenderer) om de scene in de DOM te renderen.
- Een [**Camera**](https://threejs.org/docs/index.html?q=camera#api/en/cameras/Camera)
- Een [**Object**](https://threejs.org/docs/index.html?q=object#api/en/core/Object3D)
Met **TresJS** hoeft u alleen de component `` toe te voegen aan de template van uw Vue-component en deze zal automatisch een `Renderer` (`canvas` DOM-element) en `Scene` voor u maken.
```vue
```
Vervolgens kunt u een [**PerspectiveCamera**](https://threejs.org/docs/index.html?q=perspectivecamera#api/en/cameras/PerspectiveCamera) toevoegen met behulp van de `` component.
```vue
```
::: warning
Een veel voorkomend probleem is dat de standaardpositie van de camera de oorsprong van de scène is (0,0,0). TresJS zal de positie van uw camera automatisch instellen op `[3,3,3]` als de prop `position` niet door u is ingesteld. Als er in uw scène geen camera is gedefinieerd, wordt er automatisch een perspectiefcamera toegevoegd.
:::
## Een 🍩 toevoegen
Die scène ziet er een beetje leeg uit, laten we een basisobject toevoegen. Als we gewoon **ThreeJS** zouden gebruiken, zouden we een [**Mesh**](https://threejs.org/docs/index.html?q=mesh#api/en/objects/Mesh) object moeten maken, er een [**Materiaal**](https://threejs.org/docs/index.html?q=material#api/en/materials/Material) aan toe moeten voegen en een [**Geometrie**]( https://threejs.org/docs/index.html?q=geometry#api/en/core/BufferGeometry) zoals dit:
```ts
const geometry = new THREE.TorusGeometry(1, 0.5, 16, 32)
const material = new THREE.MeshBasicMaterial({ color: 'orange' })
const donut = new THREE.Mesh(geometry, material)
scene.add(donut)
```
Een **Mesh** is een basisscèneobject in three.js en wordt gebruikt om de geometrie en het materiaal vast te houden dat nodig is om een vorm in de 3D-ruimte weer te geven.
Laten we nu eens kijken hoe we gemakkelijk hetzelfde kunnen bereiken met **TresJS**. Om dat te doen gaan we de `` component gebruiken, en tussen de standaard slots gaan we een `` en een `` component doorgeven.
```vue
```
::: info
Merk op dat we niets hoeven te importeren, omdat **TresJS** automatisch een **Vue-component genereert op basis van de drie objecten die u in PascalCase wilt gebruiken met een Tres-voorvoegsel**. Als u bijvoorbeeld een 'AmbientLight' wilt gebruiken, gebruikt u de component ``.
:::
```vue
```
Vanaf hier kunt u beginnen met het toevoegen van meer objecten aan uw scène en beginnen met spelen met de eigenschappen van de componenten om te zien hoe deze de scène beïnvloeden.