I think I need to switch to trying Simplex noise or stop trying to copy Earth

This commit is contained in:
2026-07-21 19:58:39 -06:00
parent 831ab54250
commit a7fde20dd6
+14 -7
View File
@@ -67,7 +67,7 @@ local biomes = {
-- }, -- },
[900] = { [900] = {
name = "deep ocean", name = "deep ocean",
altitude = {min = -math.huge, max = -400}, altitude = {min = -math.huge, max = -5000},
temperature = {min = -math.huge, max = math.huge}, temperature = {min = -math.huge, max = math.huge},
humidity = {min = -math.huge, max = math.huge}, humidity = {min = -math.huge, max = math.huge},
color = {0, 0, 0.25, 1}, color = {0, 0, 0.25, 1},
@@ -114,19 +114,26 @@ local function generate()
map.size = 500 map.size = 500
map.tile_size = 1 map.tile_size = 1
map.altitude = heightmap.create(map.size, map.size, -440, 8849) -- meters map.altitude = heightmap.create(map.size, map.size, 0, 1) -- meters
map.temperature = heightmap.create(map.size, map.size, -89.2, 56.7) -- celsius map.temperature = heightmap.create(map.size, map.size, -89.2, 56.7) -- celsius
map.humidity = heightmap.create(map.size, map.size, 18, 3240) -- millimeters rainfall map.humidity = heightmap.create(map.size, map.size, 18, 3240) -- millimeters rainfall
local function altitude_ocean_bias(altitude) -- local function earthlike_altitude_adjustment(altitude)
local bias = 3.5 -- higher -> more ocean -- -- max too low, min too high, too much ocean
local normalized_altitude = (altitude - -400) / (8849 - -440) -- return 6099 - 114909 * altitude + 830891 * altitude^2 - 2.72e6 * altitude^3 + 4.19e6 * altitude^4 - 3.02e6 * altitude^5 + 815866 * altitude^6
return -440 + normalized_altitude^bias * (8849 - -440) -- end
local function earthlike_altitude_adjustment(altitude)
-- good oceans, too much high altitude
return -10948 + 101018 * altitude - 643382 * altitude^2 + 2.17e6 * altitude^3 - 3.62e6 * altitude^4 + 2.87e6 * altitude^5 -852042 * altitude^6
end end
-- local function earthlike_altitude_adjustment(altitude)
-- -- only creates ocean (wtf)
-- return -10851 + 151279 * altitude - 1.14e6 * altitude^2 +3.84e6 * altitude^3 -6.11e6 * altitude^4 +4.48e6 * altitude^5 - 1.21e6 * altitude^6
-- end
local min, max = math.huge, -math.huge local min, max = math.huge, -math.huge
for x = 0, map.size do for x = 0, map.size do
for y = 0, map.size do for y = 0, map.size do
local value = altitude_ocean_bias(map.altitude[x][y]) local value = earthlike_altitude_adjustment(map.altitude[x][y])
if value > max then max = value end if value > max then max = value end
if value < min then min = value end if value < min then min = value end
map.altitude[x][y] = value map.altitude[x][y] = value