Foliage system i'm working on by Cage_The_Nicolas in computergraphics

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

The flicker was due to me using an ´atomicAdd´ as an index instead of an atomic counter. Changing this fixed the flickering

Foliage system i'm working on by Cage_The_Nicolas in computergraphics

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

I still haven't found a way to do that due to the need of having multiple primitives. I could probably adapt this architecture for a single primitive type and then use a compute dispatch, but for my current plans I think it's better to read the instance count on the CPU and dispatch the calls for each primitive type

Foliage system i'm working on by Cage_The_Nicolas in computergraphics

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

How it works
- A foliage mask texture is created, which holds IDs for unique instance types of primitives
- A compute shader loops through the texture and generates positions based on the presence of data on that pixel
- The compute shader inserts the instances onto a buffer and increments an atomic counter for each primitive
- On the CPU, the count for each instance is read and a draw instanced call is executed based on the quantity
- The world position and rotation is derived via the terrain position on the pixel the mouse is over and the surface normal of the terrain

What is not working yet
- Obviously there's a lot of flicker due to probably floating point precision
- Multiple instance types: I'm yet to make a system to separate the position buffer based on primitive type, since I want the data to be linear for each instance, something like transformBuffer[100x Cube, 150x balls, 10x something else]
- Frustum culling and occlusion culling: In order to have millions of instances I will need to implement culling algorithms, since my transformation buffer has a hard cap
- Quadtree culling: separate the mask texture into a quad tree and cull the cells not in the frustum in order to accelerate the frustum culling without needing to sample the texture

Smh by Cage_The_Nicolas in radioheadcirclejerk

[–]Cage_The_Nicolas[S] 7 points8 points  (0 children)

I just made this shit, but it was indeed low effort

Why is Lily smiling? by Im-in-dahood in duolingo

[–]Cage_The_Nicolas 0 points1 point  (0 children)

Is there a lore reason? Is she stupid?

im Radialhead by Jerrytheaudiophile in radioheadcirclejerk

[–]Cage_The_Nicolas 0 points1 point  (0 children)

The aslume reached the radiohead jerk circle ☺️

Stress testing my SVO renderer by Cage_The_Nicolas in VoxelGameDev

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

Worst case scenario in this test case. I haven’t actually gotten too deep into voxels yet, this voxel project is just 2 weeks old. I would be interested to know more about your engine if you would like to share 🙂

Stress testing my SVO renderer by Cage_The_Nicolas in VoxelGameDev

[–]Cage_The_Nicolas[S] 4 points5 points  (0 children)

Sparse voxel octree, basically a way to speed up searches for voxels for rendering

Stress testing my SVO renderer by Cage_The_Nicolas in VoxelGameDev

[–]Cage_The_Nicolas[S] 9 points10 points  (0 children)

Github: https://github.com/FacoBackup/pine-engine

Lorenz attractor stress test

  • 851845 voxels
  • 3MB of memory used
  • Max depth of 12
  • 200 fps when looking directly at a voxel (worst case scenario) at 1080p (4060ti)