Retour

Champ de fleurs

Un champ de fleurs en temps réel dans le navigateur : agitez la souris ou pincez des deux mains devant la caméra, et des vagues de fleurs éclosent le long de votre trajet — halo, densité et vitesse entièrement réglables.

Auteur: 希彼赫
Essayer en direct
Champ de fleursEssayer en direct

À propos de ce projet

Bloom est un champ de fleurs en temps réel qui tourne dans le navigateur : balayez le champ à la souris, ou activez la caméra et pincez des deux mains, et des vagues de fleurs éclosent le long de votre trajet.

Les fleurs sont rendues en temps réel à partir de modèles 3D chargés à distance, avec rayon d'influence, vitesse d'éclosion, halo, taille des fleurs, densité et vitesse des vagues réglables — une pièce interactive jouable et un banc d'essai des performances des assets 3D en temps réel.

Points forts

  1. Balayez le champ à la souris et des vagues de fleurs éclosent le long de votre trajet
  2. Faites glisser pour orbiter la caméra et molette pour zoomer — cadrez le champ sous tous les angles
  3. Activez la caméra et pincez deux fois pour faire fleurir tout le champ d'un coup
  4. Halo, densité, vitesse des vagues, ainsi que la taille et la saturation de chaque fleur sont réglables ; appuyez sur H pour masquer l'interface et filmer une prise propre

Analyse technique

  • Assets 3D · Tripo text-to-3D

    Les six fleurs du champ — blanche, jaune, marguerite, violette, bleue et rouge — sortent tout droit de Tripo text-to-3D : on écrit un prompt, on récupère un GLB avec matériaux PBR. Chaque fleur reste entre 2 000 et 8 000 triangles — pas par perfectionnisme visuel, mais parce que le champ en plante près de cinq mille à la fois : plus les modèles sont légers, plus le frame rate est stable.

    Tous les modèles suivent la même convention : face vers +Z, base à l’origine, environ une unité de haut. Le code n’a jamais besoin de cas particulier pour une fleur — on en ajoute une nouvelle et ça marche, tout simplement.

  • Des milliers à l’écran · InstancedMesh

    Faire éclore quelques milliers de fleurs à la fois dans le navigateur, c’est l’affaire d’InstancedMesh de Three.js : chaque espèce ne garde qu’une géométrie et un matériau, l’instanciation se charge des copies — environ 4 900 fleurs par défaut, un seul draw call par espèce, bien moins de charge qu’on ne l’imagine.

    L’animation d’éclosion ne touche pas non plus aux modèles : on met à jour l’échelle de chaque instance dans instanceMatrix, et chaque fleur passe de la pousse au ras du sol à la pleine floraison.

  • Vagues de floraison · raycasting + front d’onde radial

    Quand la souris balaie le champ, un Raycaster projette le curseur sur la prairie ; le point d’impact devient l’origine de la vague. Chaque fleur regarde à quelle distance elle se trouve de ce point pour décider quand s’ouvrir — les proches d’abord, les lointaines ensuite, en cercles concentriques. Ça a l’air sophistiqué, mais le cœur tient dans un simple calcul de distance.

  • Commande gestuelle · MediaPipe Hands

    Caméra allumée, MediaPipe Hands suit en temps réel 21 points de repère de la main. Le code ne surveille qu’une chose : le pouce et l’index se pincent-ils — deux pincements, et tout le champ fleurit à l’endroit exact que pointe votre doigt. Pour éviter les faux déclenchements, seule la main droite compte.

  • Halo lumineux · post-traitement bloom

    Ce halo onirique au-dessus de la scène vient du post-traitement UnrealBloomPass : le glow global est réglé à 0,46 par défaut — lumineux sans jamais brûler. Chaque espèce de fleur garde en plus ses propres réglages de glow et de saturation : on peut pousser l’ambiance à fond sans étouffer la couleur propre de chaque fleur.