three.js
3 - 3D Scene

Scene 3D

Pour voir un objet 3d, il faut :

  • une scène
  • une camera
  • un renderer
  • un objet 3d (mesh = géométrie + material)

Créer une scène

Une scène est un conteneur qui contient tous les éléments de la scène 3D.

// Scène
const scene = new THREE.Scene()

J'instancie ma classe Scene avec le mot-clé new et je stocke l'instance dans une variable scene.

Implémenter un objet

Geometrie + Material = Mesh

// Mesh
const geometry = new THREE.BoxGeometry(1, 1, 1)
const material = new THREE.MeshBasicMaterial({ color: 0xff0000 })
const mesh = new THREE.Mesh(geometry, material)
scene.add(mesh)

Camera

Sizes

const sizes = {
    width: 800,
    height: 600
}

Camera

const camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height)
scene.add(camera)

Renderer

Canvas

const canvas = document.querySelector('canvas.webgl')

Renderer

// Renderer
const renderer = new THREE.WebGLRenderer({
    canvas: canvas
})
renderer.setSize(sizes.width, sizes.height)
 
renderer.render(scene, camera)

Scene 3D

Positions de la camera

// const camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height)
camera.position.z = 3
// scene.add(camera)

Optimisation

Canvas tout en haut

// Canvas
const canvas = document.querySelector('canvas.webgl')

Sizes : Toute la taille de l'écran

    width: window.innerWidth,
    height: window.innerHeight

Pixel ratio (pour les écrans retina)

// renderer.setSize(sizes.width, sizes.height)
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2))

Rendu

✨ Informations

Pour changer la couleur du material, il suffit de changer la valeur du paramètre color :

const material = new THREE.MeshBasicMaterial({ color: "orange" })

Types de couleur :

  • hexadécimal : 0xff0000
  • string : "blue"
  • rgb : "rgb(255, 0, 0)"
  • hsl : "hsl(0, 100%, 50%)"

Documentation :

Conclusion

Le mesh est l'objet 3d.

  • Mesh = Geometrie (la forme) + Material ("la couleur")

Vous avez besoin :

  • scene
  • camera
  • renderer
  • mesh (geometrie + material)