Je peux enrouler ma tête en utilisant une fonction de bruit Perlin 2D pour générer la valeur de hauteur, mais je ne comprends pas pourquoi une fonction de bruit 3D Perlin serait utilisée. Dans Notch's blog, il a mentionné l'utilisation d'une fonction de bruit 3D Perlin pour la génération de terrain sur Minecraft. Est-ce que quelqu'un sait comment cela serait fait et pourquoi cela serait utile? Si vous passez x
, y
, et z
valeurs ne signifie pas que vous avez déjà la hauteur?Comment une fonction de bruit 3d perlin est-elle utilisée pour générer du terrain?
Répondre
Eh bien, Minecraft est sur les mines. Donc, ce que Notch a essayé de résoudre était: "Comment puis-je obtenir des trous/surplombs dans mon monde?"
Depuis bruit 2D Perlin génère belle/lisser les collines à la recherche, 3d bruit de Perlin va générer de belles collines/lisses et trous agréable dans votre grille de voxels 3D.
Une mise en œuvre peut être trouvé here (bien que ce soit une solution à N dimensions).
Dans d'autres cas d'utilisation de la composante Z d'un bruit de Perlin 3D est réglé sur l'heure actuelle. De cette façon, vous obtiendrez une transition en douceur entre les différents bruits 2d perlin et qui peut être utilisé comme base pour les textures fluides.
L'article dit exactement pourquoi il a utilisé le bruit 3D:
J'ai utilisé un heightmap de bruit 2D Perlin ... ... mais l'inconvénient d'être assez terne. Plus précisément, il n'y a aucun moyen pour cette méthode de générer des surplombs.
J'ai donc basculé le système dans un système similaire basé sur le bruit 3D Perlin . Au lieu d'échantillonner le "ground hauteur", j'ai traité la valeur de bruit comme la "densité", où rien de plus bas que que 0 serait l'air, et quoi que ce soit supérieur ou égal à 0 serait terre.
Hater doit détester! – Brian
- 1. Dérivé analytique du bruit 3D Perlin
- 2. Java Perlin bruit 2D pour la génération de terrain aléatoire
- 3. python et libtcod: terrain générer en utilisant le bruit de Perlin
- 4. Fonction de gradient de bruit Perlin
- 5. Java - Perlin bruit qui boucle
- 6. Algorithme de bruit Perlin
- 7. Perlin bruit et heightmaps/bitmaps
- 8. Générer du bruit 3D rapidement en python
- 9. Lissage du bruit perlin à faible octave
- 10. Bonnes ressources/implémentation du bruit Perlin?
- 11. Logiciel Implémentation de bruit Perlin
- 12. Envelopper le bruit perlin 2D
- 13. Génération de bruit de terrain avec un masque?
- 14. Aide pour l'utilisation de la bibliothèque de bruit perlin libnoise
- 15. Perlin Niveau de bruit. Comment zoomer sur un paysage?
- 16. Fonction aléatoire paramétrique pour la génération de bruit 2D
- 17. Advanced Terrain Generation
- 18. Générer des cartes de bruit de mosaïque "à la volée"
- 19. Calcul des normales par vertex à partir du bruit 3D
- 20. Comment modifier le bruit de Perlin [voir l'exemple dans le fil]
- 21. terrain 3 vecteurs dans 3d
- 22. 3D: comment rendre/créer un terrain
- 23. Comment programmer pour générer des modèles 3D?
- 24. Générer couleur Terrain
- 25. Générer aléatoirement du terrain low-poly
- 26. Coordonnées de texture pour un terrain dynamique - OpenGL
- 27. Perlin simplex worley bibliothèques de bruit pour le carrelage en javascript ou HTML5 en général?
- 28. Comment créer une "zone brûlée" sur un terrain 3D?
- 29. Comment l'interpolation linéaire fonctionne-t-elle dans le bruit Perlin classique?
- 30. Perlin Noise Création d'image en C#
Le lien est rompu, archive.org a heureusement un instantané de 2008: http://web.archive.org/web/20081118194515/http://peter.grumpykitty.biz/perlin.html – Tyron
@Tyron Merci! Ajouté au texte de la réponse – jpaugh