I can wrap my head around using a 2D Perlin noise function to generate the height value but I don't understand why a 3D Perlin noise function would be used. In Notch's blog, he mentioned using a 3D Perlin noise function for the terrain generation on Minecraft. Does anyone know how that would be done and why it would be useful? If you are passing x
, y
, and z
values doesn't that imply you already have the height?
相关问题
- Smoothing issue with Diamond-Square algorithm
- Minecraft Forge EntityJoinWorldEvent returns Wrong
- How to merge multiple 3D objects as a single Mesh
- How to Send Packets to a Remote Minecraft Classic
- Terrain/Mountain algorithm not working as intended
相关文章
- Issue with Perlin Noise in Java
- Making the diamond square fractal algorithm infini
- How to control the mouse in Minecraft using Python
- Information on L-Systems
- Three.js texturing terrain on a spherical hexagon
- Large mutable byte array in Erlang
- Uniform distribution from a fractal Perlin noise f
- How to secure client-side anti-cheat [closed]
The article says exactly why he used 3D noise:
Well, Minecraft is about Mines. So, what Notch tried to solve was: "How do I get holes / overhangs in my world?"
Since 2D perlin noise generates nice/smooth looking hills, 3d perlin noise will generate nice/smooth hills and nice holes in your 3D voxel grid.
An implementation can be found here (while that is an N-dimensional solution).
In other use-cases the Z component of a 3D perlin noise is set to the current time. This way you will get a smooth transition between different 2d perlin noises and that can be used as groundwork for fluid textures.
You should look at the Minetest source, specifically at the files noise.cpp and map.cpp.