Tune parameters. Add exponents
This commit is contained in:
parent
e78aeef9fb
commit
b1fee3d90c
@ -1,4 +1,4 @@
|
|||||||
riverdev 0.4.1 by paramat
|
riverdev 0.4.2 by paramat
|
||||||
For latest stable Minetest back to 0.4.8
|
For latest stable Minetest back to 0.4.8
|
||||||
Depends default
|
Depends default
|
||||||
Licenses: code WTFPL
|
Licenses: code WTFPL
|
||||||
|
46
init.lua
46
init.lua
@ -1,4 +1,4 @@
|
|||||||
-- riverdev 0.4.1 by paramat
|
-- riverdev 0.4.2 by paramat
|
||||||
-- For latest stable Minetest and back to 0.4.8
|
-- For latest stable Minetest and back to 0.4.8
|
||||||
-- Depends default
|
-- Depends default
|
||||||
-- License: code WTFPL
|
-- License: code WTFPL
|
||||||
@ -8,19 +8,20 @@
|
|||||||
local YMIN = -33000
|
local YMIN = -33000
|
||||||
local YMAX = 33000
|
local YMAX = 33000
|
||||||
local YWATER = 1
|
local YWATER = 1
|
||||||
local YSAND = 4 -- Top of beach
|
local YSAND = 4 -- Top of beach y
|
||||||
local YTER = -64 -- Terrain zero level, average seabed level
|
local YTER = -64 -- Deepest seabed y
|
||||||
|
|
||||||
local TERSCA = 512 -- Terrain vertical scale in nodes
|
local TERSCA = 512 -- Terrain vertical scale in nodes
|
||||||
local BASAMP = 0.3 -- Base amplitude. Ridge network structure
|
local BASAMP = 0.3 -- Base amplitude. Ridge network structure
|
||||||
local MIDAMP = 0.1 -- Mid amplitude. River valley structure
|
local MIDAMP = 0.05 -- Mid amplitude. River valley structure
|
||||||
local TERAMP = 0.6 -- Primary terrain amplitude. Stream / path valley structure
|
local TERAMP = 0.65 -- 3D noise terrain amplitude. Path valley structure
|
||||||
|
|
||||||
local TSTONE = 0.02
|
local TSTONE = 0.02
|
||||||
local TRIVER = -0.02
|
local TRIVER = -0.018
|
||||||
local TRSAND = -0.025
|
local TRSAND = -0.02
|
||||||
|
local TPFLO = 0.02 -- Width of flora clearing around paths
|
||||||
|
|
||||||
local APPCHA = 1 / 4 ^ 2 -- Appletree maximum chance per grass node. 1 / n ^ 2 where n = minimum average distance between flora
|
local APPCHA = 1 / 4 ^ 2 -- Appletree maximum chance per grass node. 1 / n ^ 2 where n = average minimum distance between flora
|
||||||
|
|
||||||
-- 3D noise for terrain
|
-- 3D noise for terrain
|
||||||
|
|
||||||
@ -33,15 +34,15 @@ local np_terrain = {
|
|||||||
persist = 0.67
|
persist = 0.67
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 2D noise for mid terrain
|
-- 2D noise for mid terrain / river
|
||||||
|
|
||||||
local np_mid = {
|
local np_mid = {
|
||||||
offset = 0,
|
offset = 0,
|
||||||
scale = 1,
|
scale = 1,
|
||||||
spread = {x=768, y=768, z=768},
|
spread = {x=512, y=512, z=512},
|
||||||
seed = 85546,
|
seed = 85546,
|
||||||
octaves = 5,
|
octaves = 5,
|
||||||
persist = 0.5
|
persist = 0.4
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 2D noise for base terrain
|
-- 2D noise for base terrain
|
||||||
@ -49,7 +50,7 @@ local np_mid = {
|
|||||||
local np_base = {
|
local np_base = {
|
||||||
offset = 0,
|
offset = 0,
|
||||||
scale = 1,
|
scale = 1,
|
||||||
spread = {x=3072, y=3072, z=3072},
|
spread = {x=2048, y=2048, z=2048},
|
||||||
seed = -990054,
|
seed = -990054,
|
||||||
octaves = 3,
|
octaves = 3,
|
||||||
persist = 0.4
|
persist = 0.4
|
||||||
@ -60,7 +61,7 @@ local np_base = {
|
|||||||
local np_patha = {
|
local np_patha = {
|
||||||
offset = 0,
|
offset = 0,
|
||||||
scale = 1,
|
scale = 1,
|
||||||
spread = {x=384, y=384, z=384},
|
spread = {x=512, y=512, z=512},
|
||||||
seed = 7000023,
|
seed = 7000023,
|
||||||
octaves = 3,
|
octaves = 3,
|
||||||
persist = 0.4
|
persist = 0.4
|
||||||
@ -71,9 +72,9 @@ local np_patha = {
|
|||||||
local np_pathb = {
|
local np_pathb = {
|
||||||
offset = 0,
|
offset = 0,
|
||||||
scale = 1,
|
scale = 1,
|
||||||
spread = {x=384, y=384, z=384},
|
spread = {x=512, y=512, z=512},
|
||||||
seed = 23,
|
seed = 23,
|
||||||
octaves = 4,
|
octaves = 3,
|
||||||
persist = 0.4
|
persist = 0.4
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,10 +83,10 @@ local np_pathb = {
|
|||||||
local np_tree = {
|
local np_tree = {
|
||||||
offset = 0,
|
offset = 0,
|
||||||
scale = 1,
|
scale = 1,
|
||||||
spread = {x=192, y=192, z=192},
|
spread = {x=256, y=256, z=256},
|
||||||
seed = 133338,
|
seed = 133338,
|
||||||
octaves = 3,
|
octaves = 3,
|
||||||
persist = 0.5
|
persist = 0.6
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Stuff
|
-- Stuff
|
||||||
@ -178,17 +179,16 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||||||
local n_zprepathb = nvals_pathb[(nixz - sidelen - 1)]
|
local n_zprepathb = nvals_pathb[(nixz - sidelen - 1)]
|
||||||
|
|
||||||
local n_terrain = (nvals_terrain[nixyz] + 2) / 2
|
local n_terrain = (nvals_terrain[nixyz] + 2) / 2
|
||||||
local n_absmid = math.abs(nvals_mid[nixz])
|
local n_absmid = (math.abs(nvals_mid[nixz])) ^ 0.8
|
||||||
local n_absbase = math.abs(nvals_base[nixz])
|
local n_absbase = (math.abs(nvals_base[nixz])) ^ 0.8
|
||||||
|
|
||||||
local n_invbase = (1 - n_absbase)
|
local n_invbase = (1 - n_absbase)
|
||||||
local grad = (YTER - y) / TERSCA
|
local grad = (YTER - y) / TERSCA
|
||||||
local densitybase = n_invbase * BASAMP + grad
|
local densitybase = n_invbase * BASAMP + grad
|
||||||
local densitymid = n_absmid * MIDAMP + densitybase
|
local densitymid = n_absmid * MIDAMP + densitybase
|
||||||
local teramp = n_invbase * TERAMP
|
local density = n_terrain * n_invbase * n_absmid * n_abspatha ^ 1.2 * n_abspathb ^ 1.2 * TERAMP + densitymid
|
||||||
local density = n_terrain * teramp * n_absmid * (0.1 + n_abspatha * n_abspathb) + densitymid
|
|
||||||
|
|
||||||
local tstone = TSTONE * (1 + grad)
|
local tstone = TSTONE * (1 + grad * 2)
|
||||||
local triver = TRIVER * n_absbase
|
local triver = TRIVER * n_absbase
|
||||||
local trsand = TRSAND * n_absbase
|
local trsand = TRSAND * n_absbase
|
||||||
|
|
||||||
@ -270,7 +270,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||||||
elseif density < 0 and under[si] ~= 0 then -- air above surface
|
elseif density < 0 and under[si] ~= 0 then -- air above surface
|
||||||
if under[si] == 1 and nodidu ~= c_path then
|
if under[si] == 1 and nodidu ~= c_path then
|
||||||
if math.random() < APPCHA * n_tree
|
if math.random() < APPCHA * n_tree
|
||||||
and n_abspatha > 0.03 and n_abspathb > 0.03 then
|
and n_abspatha > TPFLO and n_abspathb > TPFLO then
|
||||||
riverdev_appletree(x, y, z, area, data)
|
riverdev_appletree(x, y, z, area, data)
|
||||||
else
|
else
|
||||||
data[viu] = c_grass
|
data[viu] = c_grass
|
||||||
|
Loading…
x
Reference in New Issue
Block a user