Simulation · s'appuie sur l'étape 6
Tout se rejoint : la gravité de 3.1, la boucle de l'étape 3, et la caméra libre de l'étape 6 — tournez autour, c'est fait pour. Une trajectoire vue de face ne dit rien ; vue de profil, elle dit tout.
Trois billes partent du même canon, au même angle, à la même vitesse. Seule la gravité diffère.
g
n'apparaît que sur vitesse.y — jamais sur x ni
z. Tant qu'aucune bille n'a touché le sol, les trois ont avancé
exactement autant horizontalement. Si la bille lunaire va loin, c'est qu'elle
a plus de temps, pas plus de vitesse.
pointerdown et
pointerup : au-delà de 5 px, c'était un glisser, on ne tire pas. C'est
le piège de toute scène à la fois navigable et cliquable.
enableDamping oblige à appeler controls.update() à
chaque image. Sans cet appel, l'inertie ne s'applique jamais et la caméra semble se
figer dès qu'on relâche.
SphereGeometry et trois matériaux : tirez cent fois, c'est toujours un
seul envoi à la carte graphique (étape 1b). Chaque trace, en revanche, crée sa
propre géométrie — « Effacer » doit donc les dispose(), sinon la
mémoire GPU fuit.