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)
- https://threejs.org/docs/#api/en/geometries/BoxGeometry (opens in a new tab)
- https://threejs.org/docs/#api/en/materials/MeshBasicMaterial (opens in a new tab)
- https://threejs.org/docs/#api/en/objects/Mesh (opens in a new tab)
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)
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))
✨ 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 :
- https://threejs.org/docs/#api/en/materials/MeshBasicMaterial (opens in a new tab)
- https://threejs.org/docs/#api/en/math/Color (opens in a new tab)
Conclusion
Le mesh est l'objet 3d.
- Mesh = Geometrie (la forme) + Material ("la couleur")
Vous avez besoin :
- scene
- camera
- renderer
- mesh (geometrie + material)