Sparse Voxel Octrees

preview_player
Показать описание
In this video I will give a quick overview of what a sparse voxel octree is. This is a concept that is brought up a lot in voxel development and I wanted to shed some light on it.
Рекомендации по теме
Комментарии
Автор

"if you've been around the voxel dev SPHERE", pun chance missed

mochou_p
Автор

Duude this is great!
- No 2 minutes long intro
- No 2 minutes long outro
- Gets straight to the point
- Explains code clearly and concisely
- Great visuals + animation
- Not too fast
- Not too slow
Love it! Keep it up!

tienne_k
Автор

Nice video! The next step is "brickmaps" where you store a small, dense voxel grid at each leaf instead of a single voxels, such as 8x8x8 or 32x32x32. Since surface details tend to exist around the same boundary, this can get you a lot more detail without as much overhead from the tree structure.

joeldavis
Автор

Minor clarification:
SVO's work pretty well for collision detection, but it depends what exactly you need.
Checking a point is a tree simple traversal.
There are algorithms to do efficient ray traversal in an SVO such that you walk the leaf nodes while sweeping the ray. The algorithm is not simple, but it is doable.

I suspect you can sweep a box efficiently as well, but I've not done it myself.

opliik
Автор

Very nice work. The animations are very smooth and the explanations are very clean. Some people would take 20 minutes to explain the concept so this is amazing!

thecowman
Автор

Love this video. Was looking for this. To the point, crystal clear, excellent work.

saltyscientist
Автор

Another storage optimization you could take is to only store the outer "shell" of the voxel object, and generate inner voxels as needed.

UltimatePerfection
Автор

An excellent video! Short and full of all the information one may need while looking for the solution! Especially liked the end when you said what it isn't good for.

Qwantopides
Автор

Great video Ozown! I wish this explanation style was more common. Since childhood I always felt my mind had a fast CPU but limited RAM, so I prefer _fast & repetitive_ over _slow & elaborate._ Alas, all school systems adhere to the latter, which never worked for me.

HiAdrian
Автор

Nice video! Never new about the difference between the two algorithms. Nice animations, but the explenations are a bit fast.

mihaiable
Автор

Great video! Good quality, good explanation, good stuff :)
It's probably going to blow up with a few thousand views in the following days and you deserve it!

davawen
Автор

Damn. Wish one day we'd have advanced our hardware to the point where you can make a game with a high-resolution grid without octrees

GeorgiKrastevMusic
Автор

very nice video and visual aids!


i had slight trouble understanding because the talking wasn't very clear

kipchickensout
Автор

So basically the 3D version of how maps are stored

first you assume the map is flat, divide into 4 quadrants until each quadrants has less than n number of points of interests or details in the sector

harrytsang
Автор

I thought about exactly this without knowing it is an existing technique.

The only thing I am curious about is how we should check if a node is intersecting with a mesh. Do we just do a collision check with the node against the mesh you want to base this SVO of? I am using UE5 where they have a box collision check, but it requires a lot of variables to be set for each operation, which seems expensive if we have to do it for each node. I don't know what software you are using but how would you go and do this check in a performant way?

makyuri
Автор

I have a question: Where are all these nodes allocated in memory? Are all the child nodes heap allocated in different places somewhere? Or do we do one big arena allocation upfront that has enough space for the entire oct-tree if it was completely filled with voxels?

tadeohepperle
Автор

Man, really cool video! How do you create the animations and the voiceover? Is the source code for the animations open source?

korigamik
Автор

Broo! I really like this video. Can you dhare the source code you used to create the animations? Can you tell us what tools you used to create this video as well?

korigamik
Автор

I didn't understand the part about not always dividing into 8 octants. By definition, doesn't an octree node always have either exactly 0 or exactly 8 children?

Enter_channel_name
Автор

Nice, this video inspires me to make my own voxel engine, but I'm too dumb and too tired in life to attempt such a task. However it's good to know the concepts. Helps you understand how it works.
Thanks 👍

visheshl