Le générateur de carte est peut-être l'application la plus intuitive et la ludique du bruit. On interprête les valeurs du gradient directement comme une altitude, les valeurs basses étant comparées à la mer ou l'océan tandis que les valeurs hautes représentent les montagnes. On désigne ensuite des valeurs seuils pour choisir ce qui represente les plaines, collines etc. (ex: g < 0.5 --> mer, g < 0.7 --> collines et ainsi de suite).
Toutefois notre carte, bien que fonctionnelle serait un peu simpliste. On va rajouter un peu de variations sur le type de terrain en créant des "Biomes", zones climatiques différentes ou le terrain peut varier (par exemple un désert, marais ou plaine ont la même altitude). Pour cela on va créer en parallèle de notre premier bruit un deuxième représentant le taux d'humidité de notre carte: plus la valeur est haute plus il fait humide.
On peut dès lors assembler les deux bruits pour créer nos biomes. J'ai également voulu gérer la temperature de la carte en prenant en compte l'éloignement aux pôles et l'altitude, mais le résultat est assez mitigé ...
Pour finir il faut générer des arbres éparpillés un peu partout sur la carte. Pour cela, je n'ai pas utilisé les simplex noise comme pour les autres map mais une technique appelée les "Disques de Poisson". Je ne vais pas vous détailler son fonctionnement mais vous pourrez retrouver une page détaillée dans les sources plus bas. Notez tout de même que cela permet de générer des points espacés de manière aléatoire sur une sorte de gaussienne (ce n'est pas le cas mais vous avez compris l'image). Dans notre générateur, l'espacement est géré par un joli algorithme (j'ai pris un polynome du 3ème ordre) qui mélange nos bruits d'altitude et d'humidité pour donner une loi de répartition des arbres sur la carte.
À noter que pour les basses fréquences, la loi de répartitions pète un cable et génère des arbres de façon exponentielle ralentissant drastiquement les performances de votre machine ... (à régler)
La méthode du bruit pour générer une carte est assez simple mais a malheureusement ses limitations: on ne peut pas vraiment influer sur la carte elle-même, seulement sur l'ensemble. C'est ainsi très dur de créer des rivières qui longent les montagnes par exemple, auquel cas il faudrait se pencher sur d'autres algorithmes.