🔘 Échantillonnage de disque de Poisson
Échantillonneur interactif de Bridson à disque de Poisson produisant des distributions de points en bruit bleu. Comparez au hasard uniforme et aux grilles régulières, dessinez des cartes de densité.
À propos de cette simulation
Cette simulation met en œuvre l'algorithme de Bridson pour l'échantillonnage de disque de Poisson : une méthode rapide, accélérée par grille, pour disperser des points de sorte qu'aucun ne soit plus proche qu'un rayon minimal choisi r, sans les amas ni les vides de placement purement aléatoire. Chaque nouveau point naît d'un parent actif en essayant jusqu'à k candidats dans l'anneau [r, 2r] autour de lui, et une grille d'arrière-plan avec une taille de cellule r/√2 permet à la vérification de distance de voisinage de s'exécuter en O(1), de sorte que l'algorithme entier passe à l'échelle en O(n). L'ensemble de points résultant a la signature statistique du bruit bleu — l'agglutination basse fréquence est supprimée, visible dans le spectre de puissance radial en direct.
🔬 Ce que ça montre
Trois stratégies de génération de points côte à côte : bruit bleu de Bridson, placement aléatoire uniforme, et grille régulière. Les points violets marquent les points encore sur la liste active (des candidats peuvent encore naître d'eux) ; les points blancs sont des points « morts » dont le voisinage est complet. Un anneau discret clignote en rouge ou en violet autour de chaque candidat rejeté ou accepté pendant que l'algorithme s'exécute.
🎮 Mode d'emploi
Changez de mode avec les boutons radio, puis ajustez le Rayon minimal r (6–40 px) et les Tentatives k (5–60) — un k plus élevé trouve des empilements plus serrés au prix de plus de candidats rejetés. La vitesse d'animation contrôle le nombre de points générés par image. Activez le Rayon variable (densité) et Peindre la carte de densité pour glisser directement sur le canevas et sculpter des régions d'échantillonnage plus dense ou plus clairsemé ; activez Afficher la grille d'arrière-plan et l'encart de Spectre radial pour voir la structure d'accélération et la signature du bruit bleu.
💡 Le saviez-vous ?
Les ensembles de points de disque de Poisson (bruit bleu) sont très prisés en infographie précisément parce que la vision humaine est très sensible à l'agglutination basse fréquence — c'est pourquoi le bruit bleu est utilisé pour le tramage d'images, le placement d'arbres ou d'herbe dans les terrains de jeu, l'échantillonnage de pixels dans les moteurs de lancer de rayons, et même l'arrangement des cellules photoréceptrices dans la rétine, dont les biologistes ont découvert qu'elles suivent un motif proche du disque de Poisson.
Questions fréquentes
Qu'est-ce que l'échantillonnage de disque de Poisson ?
L'échantillonnage de disque de Poisson génère un ensemble de points aléatoires dans l'espace de sorte que chaque paire de points soit séparée d'au moins une distance minimale r, tout en gardant un aspect irrégulier et organique plutôt que semblable à une grille. Il se situe entre une dispersion entièrement aléatoire (qui forme des amas) et une grille régulière (qui paraît artificielle), et constitue la méthode standard pour produire des distributions de points en « bruit bleu ».
Comment fonctionne l'algorithme de Bridson étape par étape ?
On commence par un point de départ aléatoire ajouté à une « liste active ». On choisit ensuite de manière répétée un point aléatoire de la liste active et on essaie jusqu'à k candidats aléatoires dans l'anneau entre r et 2r autour de lui. Le premier candidat situé à au moins r de tout point existant est accepté et ajouté à la fois à l'ensemble de points et à la liste active ; si aucun des k essais ne réussit, le point parent est retiré de la liste active. Le processus se termine lorsque la liste active est vide.
Pourquoi l'algorithme utilise-t-il une grille d'arrière-plan ?
Vérifier un nouveau candidat par rapport à chaque point existant prendrait un temps O(n) par candidat, rendant tout l'algorithme O(n²). L'astuce clé de Bridson est une grille d'arrière-plan avec une taille de cellule r/√2, choisie de sorte que chaque cellule ne puisse contenir qu'un seul point accepté. Un candidat n'a besoin de vérifier que sa propre cellule et le voisinage environnant (un petit nombre fixe de cellules), de sorte que chaque vérification s'exécute en O(1), et l'algorithme entier s'exécute en temps O(n) pour n points de sortie.
Qu'est-ce que le « bruit bleu » et pourquoi est-ce important ?
Le bruit bleu décrit une distribution de points dont le spectre de puissance a peu d'énergie aux basses fréquences spatiales — ce qui signifie qu'il n'y a ni gros amas ni grands vides, seulement une variation fine et uniformément répartie. Cette propriété est visuellement importante car l'œil humain est très sensible aux motifs basse fréquence tels que les amas ou les artefacts de moiré. C'est pourquoi l'échantillonnage en bruit bleu est la technique standard pour le pointillisme, le tramage, l'anticrénelage, et la dispersion procédurale d'objets tels que des arbres, des roches ou de l'herbe de manière naturelle.
Comment l'échantillonnage à rayon variable crée-t-il des gradients de densité ?
Au lieu d'utiliser un rayon fixe r unique partout, la distance minimale locale peut être extraite d'une carte de densité : un petit rayon est utilisé dans les régions denses (permettant aux points de se rapprocher) et un rayon plus grand dans les régions clairsemées (éloignant davantage les points). La vérification de voisinage utilise alors le plus grand des deux rayons, celui du candidat et celui de chaque point existant, de sorte que le compactage reste cohérent partout. Cela produit une densité de points variant en douceur tout en conservant partout la même garantie d'absence de chevauchement, ce qui est exactement ce que l'outil Peindre la carte de densité permet de sculpter à la main.
L'échantillonneur en bruit bleu de Bridson en action : une liste active grandit en acceptant des candidats à une distance de r à 2r — et en refusant tout ce qui est plus proche que r. Comparez au hasard uniforme et observez le spectre radial.
3D · Moteur de rendu Three.js / WebGL · Cible 60 FPS · fonctionne entièrement côté client, sans installation