Implementing sparse voxel octrees and the ray caster [Voxel Devlog #1]
HTML-код
- Опубликовано: 22 дек 2021
- In this video, I describe the development process of my new voxel ray marching renderer. I discuss my choice of graphics API, describe the way I chose to store my data, and show off the results of my ray caster. In the next episode, I hope to optimize accesses to the voxel octree, add textures, and add lighting.
Игры
Nice video 👍 I would definitely like more code focused video with all concepts like Sebastian lague or jdh does
same
Same
pretty good video!
with animations/editing, and better audio, i can totally see this video getting 100k+ views
Thanks! Audio is definitely something on which I will continue to work - right now, I record with a webcam and edit out background noise in Audacity, but that only accomplishes so much. If you enjoyed this episode, please have a look at part #2!
I stumbled upon your other videos so I went back to see this initial video. It's an interesting project and you've made great progress! I'm making an engine that uses Vulkan as well these days to work on a game on my free time. It's complicated for sure, but being on Mac OS, OpenGL wasn't really viable as you mentioned. I'm doing it in C which doesn't simplify matters (who needs dynamic arrays and strings anyway?) in this initial setup but it's a fun challenge
You have my respect for trying that project. I would love to do it but I'm way too easily distracted and scared off by complex problems.
I think the slow down is caused be register pressure due to allocation pr thread
Could you provide few resources on rendering voxels using ray marching? I find myself pursuing a similar project where I'm aiming to render clouds using voxels, and I'm having trouble understanding how raymarching would be used to render voxels
march the whole voxel tree at once, with (directionally, axis and diagonals) weighted breadth first search, with shadows, not a ray per screen pixel, and not everything slowly rasterized, all pixels and voxels at once, in once search call
you could also compute shaders in javascript webgl
make the voxels (cells) smaller if you need more detail
mark the wave front pixels (2d) or voxels (3d) dark shadow if they have hit occupied voxel at closest distance, axially or diagonally (weighted)
should work also with the sparse octree voxel representation
Oh my god dude, why do people always have to make this type of content? i see so many dev vlogs. jk but now i gotta binge watch your whole series
5:15 can you provide more information about this? What kind of buffer? Do you have your tree like structure still?
In this version, the data was passed as a normal SSBO to the Vulkan compute shader. The data was still encoded as an octree - in fact, the representation of the data on the CPU and the GPU was exactly the same. The octree nodes were packed tightly into the buffer using offsets, and decoded in the shader.
That said, this approach wasn't particularly fast. The cost of traversing the octree for each read were quite high, and other structures - like brickmaps - are almost certainly a better approach.
@@DouglasDwyer thanks for this information
hi @dougas I want to build something with C#, I am working with C# past 6 years i do web development, I want to build some side projects in rendering stuff not even building game engines etcc.
Which books you recommend ? I need to learn graphics programming, Algorithms and most importantly math. You also talking about optimization stuff which i am also interested in.
what are those graphics, physics and storage algorithms you are talking about, that sounds so good to my eyers.
Hey there! I would recommend getting started with the OpenTK tutorial and LearnOpenGL. OpenTK is a library that allows you to write graphics code in C#, and it's great for beginners!
Can you tell me where you learned all this, what university you graduated from?
I go to Northeastern University. However, there are very few computer graphics courses there - all of my CG knowledge comes from self-teaching! If you want to study CG, learnopengl.com is a good place to start.
a
b
c
Also improve your thumbnails kind of looking boring