J'essaie actuellement de générer un Minecraft comme un terrain de voxel avec 3D Simplex Noise et je veux également implémenter des grottes.
J'ai trouvé la méthode de Perlin Worms dans ce fil, qui génère de très bons résultats. Cependant, je n'ai aucune idée de la façon de le générer bloc par bloc. Est-ce possible ou existe-t-il des alternatives qui produisent un ver semblable à une grotte, morceau par morceau?
Edit: C'est le problème que je ne sais pas résoudre.
Edit2: C'est le résultat de la combinaison du bruit multifractal strié 2D avec une carte de hauteur de bruit simplex. A encore besoin de quelques ajustements, mais c'est à peu près le résultat que je voulais. Merci à Byte56.
terrain
minecraft-modding
voxels
perlin-noise
user000user
la source
la source
Réponses:
La plupart des algorithmes de bruit perlin vous permettront de récupérer la valeur du bruit à n'importe quel endroit donné, avec quelque chose comme
noise(x,y,z)
. Il est donc assez simple de générer du bruit morceau par morceau. Tout ce que vous devez faire est de passer la position globale, au lieu de la position de bloc.Vous pouvez donc voir que nous générons un terrain pour le bloc, en itérant sur les limites du bloc et en vérifiant si cette position globale est solide ou non. Il s'agit probablement de la même méthodologie que vous utilisez pour générer le terrain en général.
perlinNoise.get
prend une position globale et rend sa densité. OùisSolid
serait juste un simple test pour voir si le voxel est "suffisamment dense" pour se qualifier pour le solide.perlinNoise.get
peut être plus complexe qu'un simple algorithme de bruit. Vous pouvez avoir des contrôles basés sur la profondeur du voxel dans votre monde. Par exemple, si le voxel est en dessous de ce que vous avez décidé d'être "au niveau du sol de base absolu", alors il peut utiliser l'algorithme des vers perlin pour renvoyer une densité, s'il est au-dessus de la base absolue, il peut utiliser une fonction de densité normale pour vous donner terrain plus varié. Je recommanderais cependant un mélange entre les deux.La combinaison de différentes fonctions de bruit Perlin est juste quelque chose avec laquelle vous devez jouer et voir ce qui fonctionne. Il est préférable de configurer votre environnement de sorte que vous puissiez simplement modifier certaines valeurs et échanger à chaud le terrain sans avoir besoin de recharger votre jeu. Bonne expérimentation.
la source
Je pense que c'est ainsi que cela fonctionne dans Minecraft. Chaque ver a une longueur maximale (appelons-le
M
). Les têtes de chaque ver sont calculées en fonction de la position des morceaux. Lorsque vous effectuez le rendu de chaque morceau, vous devez vérifier tous les morceaux dans unM
rayon et suivre tous leurs vers. Ce n'est pas idéal en termes de performances, mais cela fonctionne.la source