- 0.jpg (54.2 KiB) Viewed 2043 times
- 1.jpg (125.02 KiB) Viewed 2043 times
- 2.jpg (219.57 KiB) Viewed 2043 times
Hmm... I suppose I could run some benchmarks to compare.Blockhead wrote: ↑Wed Sep 18, 2024 04:19That is pretty cool, though 3D noise can be slower than 2D. Simplex does produce nice results, and should be faster when done right. If you'd like to share, Minetest would definitely benefit from adding simplex noise parameters and maybe a new showcase generator - #11468. (also previous discussion on IRC).
Code: Select all
void MapgenV7::makeChunk(BlockMakeData *data)
{
std::cout
<< "Generating chunk:"
<< " blockpos_min=(" << data->blockpos_min.X << ","
<< " " << data->blockpos_min.Y << ","
<< " " << data->blockpos_min.Z << ")"
<< " blockpos_max=(" << data->blockpos_max.X << ","
<< " " << data->blockpos_max.Y << ","
<< " " << data->blockpos_max.Z << ")";
auto tbegin = std::chrono::high_resolution_clock::now();
//...existing code
auto tend = std::chrono::high_resolution_clock::now();
std::cout
<< " duration="
<< std::chrono::duration_cast<std::chrono::milliseconds>(tend-tbegin).count()
<< "ms" << std::endl;
}
output:
Generating chunk: blockpos_min=(-6, -2, -2) blockpos_max=(-3, 1, 1) duration=252ms
Generating chunk: blockpos_min=(-6, -2, 2) blockpos_max=(-3, 1, 5) duration=260ms
Generating chunk: blockpos_min=(-6, 2, -2) blockpos_max=(-3, 5, 1) duration=205ms
Generating chunk: blockpos_min=(-6, 2, 2) blockpos_max=(-3, 5, 5) duration=222ms
Generating chunk: blockpos_min=(-6, -6, -2) blockpos_max=(-3, -3, 1) duration=124ms
Generating chunk: blockpos_min=(-6, -6, 2) blockpos_max=(-3, -3, 5) duration=127ms
Generating chunk: blockpos_min=(-6, -2, -6) blockpos_max=(-3, 1, -3) duration=259ms
Generating chunk: blockpos_min=(-6, 2, -6) blockpos_max=(-3, 5, -3) duration=225ms
Generating chunk: blockpos_min=(-2, -6, -2) blockpos_max=(1, -3, 1) duration=152ms
Generating chunk: blockpos_min=(-2, -6, 2) blockpos_max=(1, -3, 5) duration=155ms
Generating chunk: blockpos_min=(-2, -6, -6) blockpos_max=(1, -3, -3) duration=123ms
Generating chunk: blockpos_min=(-2, -2, -6) blockpos_max=(1, 1, -3) duration=274ms
Generating chunk: blockpos_min=(-2, -2, -2) blockpos_max=(1, 1, 1) duration=282ms
Generating chunk: blockpos_min=(-2, -2, 2) blockpos_max=(1, 1, 5) duration=343ms
Generating chunk: blockpos_min=(-2, 2, -6) blockpos_max=(1, 5, -3) duration=237ms
Generating chunk: blockpos_min=(-2, 2, -2) blockpos_max=(1, 5, 1) duration=260ms
Generating chunk: blockpos_min=(-2, 2, 2) blockpos_max=(1, 5, 5) duration=254ms
Generating chunk: blockpos_min=(2, -6, -2) blockpos_max=(5, -3, 1) duration=132ms
Generating chunk: blockpos_min=(2, -6, 2) blockpos_max=(5, -3, 5) duration=141ms
Generating chunk: blockpos_min=(2, -6, -6) blockpos_max=(5, -3, -3) duration=127ms
Generating chunk: blockpos_min=(2, -2, -6) blockpos_max=(5, 1, -3) duration=271ms
Generating chunk: blockpos_min=(2, -2, -2) blockpos_max=(5, 1, 1) duration=283ms
Generating chunk: blockpos_min=(2, -2, 2) blockpos_max=(5, 1, 5) duration=286ms
Generating chunk: blockpos_min=(2, 2, -6) blockpos_max=(5, 5, -3) duration=234ms
Generating chunk: blockpos_min=(2, 2, -2) blockpos_max=(5, 5, 1) duration=260ms
Generating chunk: blockpos_min=(2, 2, 2) blockpos_max=(5, 5, 5) duration=251ms
Code: Select all
void MapgenSimplex::makeChunk(BlockMakeData *data)
{
std::cout
<< "Generating chunk:"
<< " blockpos_min=(" << data->blockpos_min.X << ","
<< " " << data->blockpos_min.Y << ","
<< " " << data->blockpos_min.Z << ")"
<< " blockpos_max=(" << data->blockpos_max.X << ","
<< " " << data->blockpos_max.Y << ","
<< " " << data->blockpos_max.Z << ")";
auto tbegin = std::chrono::high_resolution_clock::now();
//...existing code
auto tend = std::chrono::high_resolution_clock::now();
std::cout
<< " duration="
<< std::chrono::duration_cast<std::chrono::milliseconds>(tend-tbegin).count()
<< "ms" << std::endl;
}
output:
Generating chunk: blockpos_min=(10, -2, -10) blockpos_max=(13, 1, -7) duration=70ms
Generating chunk: blockpos_min=(10, -2, -6) blockpos_max=(13, 1, -3) duration=74ms
Generating chunk: blockpos_min=(10, 2, -10) blockpos_max=(13, 5, -7) duration=147ms
Generating chunk: blockpos_min=(10, 2, -6) blockpos_max=(13, 5, -3) duration=164ms
Generating chunk: blockpos_min=(10, -2, -14) blockpos_max=(13, 1, -11) duration=80ms
Generating chunk: blockpos_min=(10, 2, -14) blockpos_max=(13, 5, -11) duration=164ms
Generating chunk: blockpos_min=(14, -6, -10) blockpos_max=(17, -3, -7) duration=22ms
Generating chunk: blockpos_min=(14, -6, -6) blockpos_max=(17, -3, -3) duration=23ms
Generating chunk: blockpos_min=(14, -2, -14) blockpos_max=(17, 1, -11) duration=81ms
Generating chunk: blockpos_min=(14, -2, -10) blockpos_max=(17, 1, -7) duration=95ms
Generating chunk: blockpos_min=(14, -2, -6) blockpos_max=(17, 1, -3) duration=90ms
Generating chunk: blockpos_min=(14, 2, -14) blockpos_max=(17, 5, -11) duration=175ms
Generating chunk: blockpos_min=(14, 2, -10) blockpos_max=(17, 5, -7) duration=201ms
Generating chunk: blockpos_min=(14, 2, -6) blockpos_max=(17, 5, -3) duration=194ms
Generating chunk: blockpos_min=(18, -6, -10) blockpos_max=(21, -3, -7) duration=24ms
Generating chunk: blockpos_min=(18, -6, -6) blockpos_max=(21, -3, -3) duration=25ms
Generating chunk: blockpos_min=(18, -2, -14) blockpos_max=(21, 1, -11) duration=84ms
Generating chunk: blockpos_min=(18, -2, -10) blockpos_max=(21, 1, -7) duration=102ms
Generating chunk: blockpos_min=(18, -2, -6) blockpos_max=(21, 1, -3) duration=98ms
Generating chunk: blockpos_min=(18, 2, -14) blockpos_max=(21, 5, -11) duration=175ms
Generating chunk: blockpos_min=(18, 2, -10) blockpos_max=(21, 5, -7) duration=201ms
Generating chunk: blockpos_min=(18, 2, -6) blockpos_max=(21, 5, -3) duration=193ms
Generating chunk: blockpos_min=(14, 6, -10) blockpos_max=(17, 9, -7) duration=171ms
Generating chunk: blockpos_min=(14, 6, -6) blockpos_max=(17, 9, -3) duration=179ms
Generating chunk: blockpos_min=(18, 6, -10) blockpos_max=(21, 9, -7) duration=182ms
Generating chunk: blockpos_min=(18, 6, -6) blockpos_max=(21, 9, -3) duration=195ms
Generating chunk: blockpos_min=(10, 6, -6) blockpos_max=(13, 9, -3) duration=177ms
Generating chunk: blockpos_min=(10, 6, -10) blockpos_max=(13, 9, -7) duration=199ms
Generating chunk: blockpos_min=(14, 6, -14) blockpos_max=(17, 9, -11) duration=187ms
Generating chunk: blockpos_min=(18, 6, -14) blockpos_max=(21, 9, -11) duration=193ms
Code: Select all
Generating chunk: blockpos_min=(-6, -2, -2) blockpos_max=(-3, 1, 1) duration=197ms
Generating chunk: blockpos_min=(-6, -2, 2) blockpos_max=(-3, 1, 5) duration=152ms
Generating chunk: blockpos_min=(-6, 2, -2) blockpos_max=(-3, 5, 1) duration=167ms
Generating chunk: blockpos_min=(-6, 2, 2) blockpos_max=(-3, 5, 5) duration=184ms
Generating chunk: blockpos_min=(-6, -2, -6) blockpos_max=(-3, 1, -3) duration=164ms
Generating chunk: blockpos_min=(-6, 2, -6) blockpos_max=(-3, 5, -3) duration=184ms
Generating chunk: blockpos_min=(-2, -6, -2) blockpos_max=(1, -3, 1) duration=38ms
Generating chunk: blockpos_min=(-2, -6, 2) blockpos_max=(1, -3, 5) duration=38ms
Generating chunk: blockpos_min=(-2, -2, -6) blockpos_max=(1, 1, -3) duration=176ms
Generating chunk: blockpos_min=(-2, -2, -2) blockpos_max=(1, 1, 1) duration=178ms
Generating chunk: blockpos_min=(-2, -2, 2) blockpos_max=(1, 1, 5) duration=167ms
Generating chunk: blockpos_min=(-2, 2, -6) blockpos_max=(1, 5, -3) duration=197ms
Generating chunk: blockpos_min=(-2, 2, -2) blockpos_max=(1, 5, 1) duration=223ms
Generating chunk: blockpos_min=(-2, 2, 2) blockpos_max=(1, 5, 5) duration=214ms
Generating chunk: blockpos_min=(2, -6, -2) blockpos_max=(5, -3, 1) duration=37ms
Generating chunk: blockpos_min=(2, -6, 2) blockpos_max=(5, -3, 5) duration=41ms
Generating chunk: blockpos_min=(2, -2, -6) blockpos_max=(5, 1, -3) duration=164ms
Generating chunk: blockpos_min=(2, -2, -2) blockpos_max=(5, 1, 1) duration=178ms
Generating chunk: blockpos_min=(2, -2, 2) blockpos_max=(5, 1, 5) duration=183ms
Generating chunk: blockpos_min=(2, 2, -6) blockpos_max=(5, 5, -3) duration=197ms
Generating chunk: blockpos_min=(2, 2, -2) blockpos_max=(5, 5, 1) duration=228ms
Generating chunk: blockpos_min=(2, 2, 2) blockpos_max=(5, 5, 5) duration=213ms
Generating chunk: blockpos_min=(-6, 6, 2) blockpos_max=(-3, 9, 5) duration=175ms
Generating chunk: blockpos_min=(-2, 6, 2) blockpos_max=(1, 9, 5) duration=197ms
Generating chunk: blockpos_min=(-6, 2, 6) blockpos_max=(-3, 5, 9) duration=180ms
Generating chunk: blockpos_min=(-2, 2, 6) blockpos_max=(1, 5, 9) duration=204ms
Generating chunk: blockpos_min=(2, 2, 6) blockpos_max=(5, 5, 9) duration=194ms
Generating chunk: blockpos_min=(2, -2, 6) blockpos_max=(5, 1, 9) duration=189ms
Generating chunk: blockpos_min=(-6, -2, 6) blockpos_max=(-3, 1, 9) duration=176ms
Generating chunk: blockpos_min=(-2, -2, 6) blockpos_max=(1, 1, 9) duration=217ms
Generating chunk: blockpos_min=(-6, 6, 6) blockpos_max=(-3, 9, 9) duration=196ms
Generating chunk: blockpos_min=(-2, 6, 6) blockpos_max=(1, 9, 9) duration=219ms
Generating chunk: blockpos_min=(2, 2, 10) blockpos_max=(5, 5, 13) duration=176ms