I am currently creating a game that’s like old Minecraft and I have a chunk system that utilizes 2D perlin noise however, I want to have hangovers which means I have to convert it to 3D perlin noise.
I am having trouble on figuring out how to convert my 2D perlin noise chunk generator into 3D perlin noise. I have listed the code that I think will be the most useful for help below:
local ChunkRenderDistance = 8 local ChunkSize = 16 local ChunkGrid = {} local CurrentBiome = 4 local Seed = math.random(1, 9999) local blocks = game.Workspace.Blocks local uis = game:GetService("UserInputService") local Biomes = { --{'Mountains' ,80, 70}, {'Plains' ,70, 26}, {'Forest' ,70, 26}, {'Desert' ,70, 26}, {'Rivers' ,70, 26}, } function GenerateNewChunk(Position) if math.random(1,100) == 1 then CurrentBiome = math.random(1, #Biomes) print('Changed') end local Frequency = Biomes[CurrentBiome][2] local Amplitude = Biomes[CurrentBiome][3] local ChunkData = {} for x = 1, ChunkSize do ChunkData[x] = {} local LastYPos = 0 for z = 1, ChunkSize do local X = ((x * 3) + Position.X + 1.5) local Y = ((math.floor((math.noise(((x * 3) + Position.X + 1.5) / Frequency, ((z * 3) + Position.Z + 1.5) / Frequency, Seed) * Amplitude) / 3) * 3) + 1.5) local Z = ((z * 3) + Position.Z + 1.5) ChunkData[x][z] = Vector3.new(X, Y, Z) LastYPos = Y end end table.insert(ChunkGrid, {Position ,ChunkData}) return {Position ,ChunkData} end