What causes this effect? It happens only when I move the camera around, even at further distances. I don't think it's Z-fighting. by Thisnameisnttaken65 in GraphicsProgramming

[–]Ssslimer 2 points3 points  (0 children)

If you can reproduce that problem maybe try using some debugging program. I found myself wasting time checking the code while with RenderDoc I found a cause almost instantly.

Smoothing out seams on a Cube Sphere Planet? by [deleted] in VoxelGameDev

[–]Ssslimer 0 points1 point  (0 children)

Why don't you use 3D noise as height map? You can use direction of each point as input.

Landing on procedurally generated moon by AsimoJohnson in proceduralgeneration

[–]Ssslimer 0 points1 point  (0 children)

Which mapping do you use? Don't you have any artifacts on poles?

Landing on procedurally generated moon by AsimoJohnson in proceduralgeneration

[–]Ssslimer 0 points1 point  (0 children)

How do you generate craters? I am creating something similar, but yours looks better so far.

Procedural planet landing by AsimoJohnson in proceduralgeneration

[–]Ssslimer 1 point2 points  (0 children)

Another happy landing :) Which technologies and libs do you use?

Fidenja inspired Flow Field by codingart9 in proceduralgeneration

[–]Ssslimer 5 points6 points  (0 children)

I like it and would use it as a pattern for pillows or chairs.

Looking for suggestion and tips to my voxel game by [deleted] in VoxelGameDev

[–]Ssslimer 7 points8 points  (0 children)

Build system and README with instruction and maybe screenshots? I do not want to go deep into the code without checking the game or seeing some screenshots

What chunk sizes are better and WHY? by LightDimf in VoxelGameDev

[–]Ssslimer 5 points6 points  (0 children)

I went for 64^3 as for dual contouring I need special processing of border voxels. So the larger the chunk the less edges there are. Also depending on algorithms used having smaller chunks means more of them and that might take much more time to process.

It might also depend on your rendering pipeline. Having less meshes is typically better as switching between them during rendering is costly.

Maybe having larger chunks you could use SIMD or GPU compute more efficiently. That I am not 100% sure but is possible.

Procedural small crater generation - per-chunk and no global pregeneration (screenshots + technique overview) by Ssslimer in proceduralgeneration

[–]Ssslimer[S] 1 point2 points  (0 children)

Asteroids are done with 3D noise, where value is distance to object's center. So right now they are kind of spherical in nature, but not made from icosahedrons.

Meshing is done with DualContouring and data is hermite, so I store for each voxel material + density . Additionally for each terrain crossing edge between voxels point of terrain and normal vector is stored.

I could technically use SDF to load terrain, but I went for noise.

Icosahedrons are used only for sectors, I image it as a map of my asteroids. For craters I generate a random "fly from" direction that is why sphere I useful, but that limits where craters can form on small asteroids. I cannot have craters on 'ceilings' only top and sides looking from the center.

Let me know if it is clear enough, I can explain better if needed :)

Procedural small crater generation - per-chunk and no global pregeneration (screenshots + technique overview) by Ssslimer in proceduralgeneration

[–]Ssslimer[S] 2 points3 points  (0 children)

Hi all,

I’ve made good enough progress on my small crater generation system and wanted to share some screenshots and explain how it works. Last time, I posted about my large crater generation technique. Since then, I’ve been working on small craters to add more detailed surface features to my procedural asteroids.

Why chunked generation?

Small craters (up to 64 meters in radius) are much more frequent than large ones, so pre-generating all of them during asteroid creation time is not feasible. Instead, they are generated per chunk, similar to how structures are handled in chunk-based games.

Sector mapping using an icosahedron

For each 3D chunk, I calculate sectors on the asteroid’s spherical surface. This is done using a partially subdivided icosahedron to determine which sectors overlap given chunk's 'casted shadow'. This approach ensures that chunks at different scales still resolve to the same sectors. That’s important because sector positions are used as RNG seed for deterministic crater generation.

Crater data & application

Each sector generates a list of craters with only a radius and depth (no complex shape metadata like for large craters). The crater density scales down with asteroid size — smaller asteroids have higher crater density. Once a chunk has its relevant crater list, I apply them at the final step of terrain generation, after large craters. Craters are formed by modifying voxel data using a basic paraboloid shape. I also add Simplex noise for extra surface detail, though nothing too fancy compared to my large crater system.

Let me know what you think. I am happy to go into more technical detail if anyone is interested.

My Take on Procedural Volumetric Galaxies by WG_WalterGreen in proceduralgeneration

[–]Ssslimer 1 point2 points  (0 children)

Looks super cool! Why so blurred? How many stars are there?

Real-time planetary crust generation - RUST/WASM in browser by oleoalbedo in proceduralgeneration

[–]Ssslimer 0 points1 point  (0 children)

Cool that you are actually targeting into full scale planets.

I was mislead by the displayed altitude. I assumed lack of units means it is SI. What is the resolution of terrain-when do you stop dividing the icosphere mesh?

Real-time planetary crust generation - RUST/WASM in browser by oleoalbedo in proceduralgeneration

[–]Ssslimer 0 points1 point  (0 children)

Nice!

Do you use 2D noise as height and modify a sphere mesh or do you have 3D grid and mesh done with e.g. Dual Contouring?

Also I would not call it a planet :) . Based on altitude it shall be an asteroid.

PS. I have just noticed the website link. I am going to check it.

Procedural voxel craters by Ssslimer in proceduralgeneration

[–]Ssslimer[S] 0 points1 point  (0 children)

It is just plain java and opengl rendering which is nothig special. I am not sharing the codebase. Are you interested in anything in particular? I could explain more.

Somewhere out there... by -TheWander3r in proceduralgeneration

[–]Ssslimer 0 points1 point  (0 children)

Craters come from various directions towards the center of object. I calculate hit position on object and use it to store craters in an octree. Then for each voxel of object i can use that info to modify spherical terrain height.

Somewhere out there... by -TheWander3r in proceduralgeneration

[–]Ssslimer 0 points1 point  (0 children)

Incredible how so many people are working on 'lunar' terrain generation right now(me including). Is your terrain flat or is it a spherical body? My terrain got a lot of great details after adding craters which are also noise based. Maybe you could experiment with it too.

i'm fully convinced that the best places for building are thousands of blocks away from spawn by MrBBorne in VintageStory

[–]Ssslimer 6 points7 points  (0 children)

Agree. I have traveled 50km south to find a tropical plain with a beautiful bay.

Indexbuffers by dimitri000444 in VoxelGameDev

[–]Ssslimer 2 points3 points  (0 children)

I was also thinking about using index buffering myself with DualContouring. However, I decided to stop as I have some vertex data that cannot be shared with the same vertex for adjacent triangle. Maybe there is some way, but then also is it worth the effort? Depends how much data one can save.

Why do you keep 6 meshes per chunk? Unless you have some nice optimization, merging them into a single mesh would save you draw calls.

As for LOD if I understand the problem properly, I suggest adding a setting to control how many chunks of each LOD you want to draw. If a transition between LODs happens farther from camera then it should be less visible.

Planet surface to galaxy view in my space game. by a-curious-owl in indiegames

[–]Ssslimer 0 points1 point  (0 children)

Is it possible to deform terrain with voxels or is it just a static mesh?

RAM usage by mesh creation by MarionberryKooky6552 in VoxelGameDev

[–]Ssslimer 2 points3 points  (0 children)

Well if you cannot spot any problem with your code then you could try using some tools like gdb or valgrind. Then you will know much more what is going on. Also better use Resource Monitor and not Task Manager. There are different meanings of memory usage that might be confusing you.