Time Nick Message 18:20 hmmmm hi 18:20 MTDiscord hmmmm hi 18:21 sfan5 o/ 18:21 hmmmm is it okay if i just hang around you guys? miss you a lot, but i don't think i'll be contributing any code 18:23 celeron55 well if you do it quietly enough, it's not off topic? 18:24 hmmmm indeed it wouldn't be. can't believe you're still around, hi 18:25 celeron55 hi. of course i am. i'm like a glue stain on clothes 18:27 hmmmm i don't know. i've still got some unfinished business with envlock, mapgen, and decorations. i have gone through a lot, and i'm starting to get my life back together. at some point i'd like to work on all this. 18:27 hmmmm is paramat == paradust? 18:29 rubenwardy No, Paramat left a year or so ago 18:29 kilbith hey hmmmm 18:29 kilbith good to see you 18:29 hmmmm hey kilbith, ruben 18:29 nrz hey welcome back ? 18:30 hmmmm lol nerzuel 18:30 kilbith have you seen the shadows and postprocessing? 18:30 MTDiscord you wouldn't believe it hmmmm but i've been working on a mapgen 18:30 hmmmm sorry about getting upset about the code cleanup PRs. my main issue was that it killed the git history. I guess we gotta start out fresh sometimes, huh? 18:30 hmmmm incredible 18:31 MTDiscord i also found our "perlin" isn't reference "perlin" 18:31 MTDiscord and has some slowness issuies 18:31 hmmmm I doubt the mapgen I had in mind before I left is going to be compatible with LuaVoxelManip 18:31 kilbith hmmmm: https://www.youtube.com/watch?v=DsGd1X9RlOE 18:31 MTDiscord the C++ method is basically the same as a LuaVM 18:32 hmmmm yeah, we know, celeron set the precedent for using a shortcut to generate perlin noise a long time ago. it's just so much more computationally efficient and doesn't hurt the results much. 18:33 MTDiscord it has a few problems, in that minetest's modified perlin has some bad issues 18:33 hmmmm the only way I could think of how to further optimize our perlin noise is by reusing already computed noise values in earlier iterations 18:33 hmmmm oh it does?? :( 18:33 MTDiscord it's slow for 3d noise 18:33 MTDiscord like 20ms slow for a standard 80x80x82 area 18:33 hmmmm just FYI, I didn't computationally change perlin noise from celeron's 18:34 MTDiscord it's not taking advantage of any compiler benefits even at -03 18:34 hmmmm uh oh 18:34 hmmmm one of the long stretch goals was to use AVX512 and NEON intrinsics 18:34 hmmmm I figured it at least had -O3 cpu optimizations 18:34 MTDiscord my mapgen is more akin to realistic terrain built on heightmap tech with 3d noise decorators 18:35 MTDiscord i profiled with TimeTaker and my current prototype runs about 50% faster than v7 or carpathian 18:35 hmmmm nice 18:35 hmmmm I'll have to take a look at some point 18:35 MTDiscord it's fast, provides realistic terrain 18:36 MTDiscord and is sized to realistic heights 18:36 MTDiscord meaning multiple kilometers of mountain 18:36 MTDiscord oceans aren't puddle sized either 18:36 hmmmm that's something I always was trying to achieve, but the large scale perlin noise meant that it would create boring landscapes 18:37 MTDiscord the trick is to mix multiple 2d noise scales 18:37 MTDiscord and use those as mini biomes 18:37 hmmmm if you added more iterations, it would encounter the same exact issues as if you just had smaller scale noise 18:37 MTDiscord hills, plains, mountains - ridge cuts 18:37 hmmmm yeah i've tried all that with v7... 18:37 MTDiscord basically multiple seeds at differing scales solves it well 18:37 hmmmm if it works, it works and I'm really happy 18:37 MTDiscord i've even experimented with pathfinding rivers 18:37 MTDiscord as in vertice based pathfindin g 18:38 hmmmm it's just that I figured the approach would need to become more procedural in nature 18:38 hmmmm like how minecraft does it 18:38 MTDiscord i throw a shitload of points onto a 2d plane then shrink wrap it 18:38 hmmmm top-down rather than bottom-up 18:38 MTDiscord via the getSpawnPos() 18:38 hmmmm nice, and there aren't any continuity issues? 18:38 MTDiscord nope 18:38 hmmmm incredible 18:38 MTDiscord the original version had some issues 18:38 hmmmm bravo :) 18:38 hmmmm no kidding :) 18:38 MTDiscord like getting stuck in infinite loops 18:39 hmmmm that's why the original rivers were carved using perlin noise 18:39 MTDiscord it also sucked due to it taking 20-30 seconds at start up 18:39 hmmmm oh, original version with yours 18:39 MTDiscord to pregenerate river paths 18:39 hmmmm are we still using v3s16? 18:39 MTDiscord yes 18:39 hmmmm hehe 18:39 MTDiscord i've built mine with v3s32 18:39 hmmmm yeah figures 18:39 MTDiscord so the moment that infinite world patch drops in my experimental mapgen works 18:40 MTDiscord it's also heightmap for a reason: farmesh 18:40 hmmmm if you were going to implement your own noise instead of use perlin.cpp, might as well do things the "right way" from scratch 18:40 MTDiscord i already did that 18:40 hmmmm right 18:40 MTDiscord ken's implementation has a few issues 18:40 MTDiscord like looping at certain points 18:40 hmmmm not familiar with ken. is he new? 18:40 MTDiscord ken perlin 18:40 hmmmm oh 18:41 MTDiscord ie 1/64000 will have issues at 64001/64000 being the same as 1/64000 18:41 rubenwardy :D 18:41 MTDiscord meaning the mapgen loops 18:41 MTDiscord we really don't want that 18:41 MTDiscord ideally, it needs to be between 0-1 18:41 MTDiscord with something like f32 or even f64 precision 18:41 hmmmm sounds like I need to brush up on the state of the art before doing anything at all 18:42 MTDiscord https://github.com/Jordach/minetest/tree/mg_reverb go have a play with iot 18:42 hmmmm the mapgen enhancements that I was working on right before I left were to make multiple passes instead of generating a chunk in one go 18:42 MTDiscord requires a somewhat older irrlichtMT to get goinbg 18:42 MTDiscord sometime from march 2022 will compile it 18:42 hmmmm heh, still using irrlicht 18:42 hmmmm never moved to openscenegraph, I guess 18:43 rubenwardy we've forked Irrlicht and massively reduce its size 18:43 hmmmm nice 18:43 MTDiscord mg_reverb.cpp and it's header are where the secret sauce lies 18:43 hmmmm but you're still lacking a lot of stuff you get "for free" with a more professional 3d library 18:43 rubenwardy there's rumours of replacing it with bgfx/OpenGL/something else, but there have been for a long while 18:43 MTDiscord Maybe once the menu is done 18:43 hmmmm there's a reason why Build-A-World slapped the shit out of us in terms of graphics 18:44 rubenwardy forking Irrlicht has also allowed us to fix longstanding issues, such as with certain keyboard layouts and copy+paste 18:44 hmmmm they also had incredibly talented shader dudes 18:44 rubenwardy BAW was made by someone with a PhD in computer graphics 18:44 MTDiscord lemme see if i can find some recent screenshots of reverb 18:44 rubenwardy or masters 18:44 kilbith BAW is all about the graphics and that's it 18:44 hmmmm indeed, superficial, that's why I never truly considered it a threat 18:45 hmmmm I figured they might move on from fancy graphics but it seems not 18:45 hmmmm thanks guys. I've gotta check this out a lot more later on. I'm technically supposed to be at work right now heh 18:45 kilbith we have x2048 now, who is more talented than RBA :] 18:46 hmmmm heh whoa 18:46 MTDiscord https://cdn.discordapp.com/attachments/747163566800633906/1011345554929897542/unknown.png 18:46 kilbith (not too difficult tbhà 18:46 MTDiscord take a look hmmmm 18:46 hmmmm I work in MA as a researcher for a university now :) 18:46 hmmmm I am into cybersecurity far more than graphics or programming 18:46 MTDiscord yes those cliffs follow the natural heightmap and are 3d noise 18:46 hmmmm i still have a ton of unfinished business with minetest though! 18:47 hmmmm ook cya later! 18:48 kilbith see you 18:49 hmmmm just to make sure, our mapnodes are still 32 bit right? 18:50 hmmmm also, RIP RBA 18:50 hmmmm <3 18:52 MTDiscord yes 18:52 MTDiscord hmmmm, here's the original algo for my river path finder https://gist.github.com/Jordach/6d9f08aef70100b49507e05257ddb70e 18:52 MTDiscord i saved it in case i ever wanted to retry pathfinding over actual simulated erosion 18:53 hmmmm thanks! 18:53 MTDiscord i'm working on a new implementation that lets me infinitely tile it 18:53 MTDiscord and prevent merging of rivers because it's a very dumb algo 18:53 hmmmm I had this crazy idea on how to approach river generation 18:53 hmmmm probably not natural looking at all but 18:54 MTDiscord i also managed to optimise the generation of voxel data by using AABB like bounding boxes 18:54 hmmmm so you know how I considered changing the mapgen to a top-down approach where a low-res bitmap is generated for the entire world at creation time, storing the major procedurally generated (non-perlin) features? 18:54 MTDiscord to only generate rivers in the local area 18:54 MTDiscord there's a lua mapgen that does that 18:55 hmmmm i see 18:55 hmmmm well basically the map would consist of multiple "layers" of terrain detail 18:55 hmmmm the rivers would be perlin noise passed through a gradient function that I had optimized trying to create cliffs 18:55 MTDiscord cliffs still fucking bother me to this day 18:56 hmmmm in order to make some kind of edge detection 18:56 MTDiscord the easiest solution would to just test 2d clouds and just drop their heights 18:56 MTDiscord is it lazy, yes 18:56 MTDiscord does it produce a reasonable cliff face? also yes 19:15 sfan5 rubenwardy: you can produce a functioning android build 19:15 sfan5 but might be beetter 19:15 sfan5 but might be better to wait for 5.6.1* 19:15 sfan5 but we actually need to work on that...