You are browsing as a guest. Sign up (or log in) to start making projects!

Voxelized

  • 10 Devlogs
  • 55 Total hours

A voxel engine that raytraces on the CPU

Open comments for this post

2h 36m 3s logged

I’ve implemented gradual world gen, so instead of generating all at once they get generated on demand. Currently it’s still constrained to a specific size but I will fix it by changing to a hashmap. I need to also implement chunk prioritization for better experience and multi thread it better.

0
0
8
Open comments for this post

6h 25m 59s logged

Clouds and more optimizations.
I store 2 pre-calculated noise maps, one is height, the other is density I use them in combination to create clouds

0
0
11
Ship #2

I implemented GUI, more varied scenes, reflections to the water
Along with general QOL and it should be slightly faster than before.
I worked on documenting the technical details as well

  • 4 devlogs
  • 20h
  • 13.94x multiplier
  • 279 Stardust
Try project → See source code →
Open comments for this post

7h 28m 14s logged

I have implemented more different world types, gui improvements, water reflections, world loading and unloading etc… Mostly general optimizations and QOL improvements rather than a deep technique. Something I plan for the release after this one

0
0
10
Open comments for this post

5h 8m 44s logged

I implemented larger worlds and a very basic menu to choose it’s size. Along with the ability to dynamically change resolutions, (currently controllable by keyboard but I want to make a full ui for all the graphical stuff). I removed trees as I want to move towards space colonization and ones that will actually look good. Overall rendering a world that is 4096^2x512 is not much slower than 8192^2x512 thanks to distance fields. I am moving forward with getting acceptable performance for a game, but it’s still not perfect. Also superliminal gave me a license to their cpu debugging software suite for free ;) so it will get fine tuned after I have all techniques implemented

0
0
12
Open comments for this post

5h 2m 59s logged

I implemented colored lighting, and light absorption, eg different materials absorb different amounts of light along with light diffusion so that light scatters, I am working on an upscaler and on demand probe allocation(it’s easily the heaviest part of the storage). I also implemented quantizing distance4 values to consume less memory. I also speed up world generation and multithreaded it. Overall focusing on memory storage. It’s very buggy rn however so a lot of bug fixing incoming

0
0
8
Ship #1

I’ve implemented a software raytracer that runs on the CPU in real time. It’s quite heavy still so a beefy system is recommended. (I use a 5950x). It uses avx2 to speed up the direction calculations along with a low level ray pass (the complete list of functionality is listed in the release description on github)

  • 3 devlogs
  • 23h
  • 11.55x multiplier
  • 225 Stardust
Try project → See source code →
Open comments for this post

6h 39m 8s logged

I’ve been optimizing the project. Now it can handle much larger render distances, at higher fps and I added deduping along with light absorption per material. It’s highly experimental but it works. I’ve improved on the terrain gen a bit more so that the scene is a bit more complex. I also finished lods. I am preping the ship

0
0
11
Open comments for this post

2h 54m 4s logged

I’ve been working on optimizing the renderer and the world structure and acceleration data generation. I’ve implemented that low resolution pass, screen space lods that calculate the distance to start based on resolution and fovy. Along with just making the algorithm faster. I added secondary rays that use per voxel data as it’s faster to calculate (so a cheat code in a way because per pixel shadows are more expensive) they are only a visibility check for now. Along with speeding up the world gen and adding actual tree crowns. I plan on simiding the rays themself now along with the fact that speeding up world gen and making it more interesting is one of my more important tasks along with implementing proper global illumination and upscaling(there is a partial simple implementantion however it does no edge detection and smoothing). This is all running on a 5950x at 1000x1000 resolution at about 40-45 fps average (yes I know a frame time should be given instead of fps but I haven’t yet exactly built a debugger for it) however at 80% internal resolution it’s about 50-60 fps.

0
0
6
Open comments for this post

13h 47m 49s logged

I’ve been working on a realtime CPU voxel raytracer. It utilizes raymarching combined with multi level DDA for fast primary rays. I calculate distance fields stored in an octree format to optimize the raymarcher. I simded the ray direction calculation and multithreaded it. It utilizes checkerboard rendering while keeping the quality seemless. Every even frame gets to use odd’s frame distance, to speed up the traversal speeds. I want to implement a low level traversal algorithm for odd frames to speed up their traversal as well. Sadly I am not yet ready to blog but I am forced to as to not lose more hours. I tried to experiment with more techniques but I decided to still go with raytracing as I already have anotehr rasterization project going on.

0
0
10

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…