Wow! I uploaded this thing for a school project 4 years ago and now suddenly it has 33k views? What a neat surprise. I'm glad it's helped people!
@TheWebPotato4 жыл бұрын
Thanks for uploading, William. It helped a lot.
@VirtuelleWeltenMitKhan4 жыл бұрын
Yep, well done explanation.
@longjohn79923 жыл бұрын
Oh That was ur old channel
@cancername Жыл бұрын
Thank you! This helped a lot!
@sunofabeach94246 ай бұрын
i dunno i was specifically looking for it thank you
@qwertyuuytrewq8255 жыл бұрын
A long time ago I was playing Worms and wandering about that cool destructible terrain. Thanks for explaining how it could be implemented.
@NoVIcE_Source9 ай бұрын
"squares are simple shapes and computers are very fast" this actually sounds like a cool quote
@baoduyhoangnguyen5717 ай бұрын
9 years later this video just save my life and my project
@justhallowed84994 жыл бұрын
This video is still helping people 6 years later
@Thesoccerdood9 жыл бұрын
Thanks so much!! Now I can finally go and read the complex description my class gave and understand it clearly now.
@acking0273 Жыл бұрын
ik this is eight years old at this point but still very cool, definitely going to testing with these too see how the visualization of the tree changes with terrain changes
@Ro_void8 ай бұрын
Gotta love when random school projects are better at explaining the concept then the teacher
@jaadoo35917 ай бұрын
yo, which course are you pursuing?
@LucasofAppalachia7 жыл бұрын
Very simple, concise explanation. Thank you!
@CYON4D7 жыл бұрын
Great explanation of quadtrees. The terrain example reminds me of Worm's terrain system. I guess they used quadtrees aswell.
@oliverludwig61485 жыл бұрын
0:19 "...just like Worms or Tanks..."
@Kaiju_Tea_Party7 жыл бұрын
Your voice gets MUCH louder at 1:03 and then gets quiet again.
@nathanielsaxe30496 жыл бұрын
That's cause that line was really important
@breemudi3 жыл бұрын
squares are simple shapes and computers are very fast...✨
@cholushkin3 жыл бұрын
Hmm, I tought we don't really need a quadtree in games like worms. There you just need to store a bitmap. And all game logic such as physics collision deyection, explosions and so on works with bitmaps. Good example of using a quad tree is finding a closest objects for a big ammount of moving objects
@manxuma123 Жыл бұрын
Thanks. Very interesting and informative
@TheRickCh4 жыл бұрын
Concise and excelent video! Thank you
@guillermoraya33632 жыл бұрын
Neat little video, dude! Great explanation.
@zainulmuttaqin75653 жыл бұрын
very great explanation, this is pretty short explanation yet so easy to understand
@martinschurig11317 жыл бұрын
Excellent video!
@guanpenggao14633 жыл бұрын
great video and clear explaination
@afonsodolmen47593 жыл бұрын
So, the value of the root is the width and height of the canvas?
@Rouliousin6 жыл бұрын
Thanks ! I just understand how quadtree works in spatial indexes !
@WhompingWalrus3 жыл бұрын
Would this be much more efficient than storing the terrain as a 2d grid of binary values, and just interpolating if the display resolution is higher than pixel density?
@raniem43683 жыл бұрын
Yes, Because if you have a giant section with no terrain border, with your approach you would need to check each pixel. In this approach you check a section of pixels instead.
@WhompingWalrus3 жыл бұрын
@@raniem4368 Ah that makes perfect sense - you only really store detail where it's necessary with this method, rather than always using the maximum amount of detail even on simple geometry/data. Thanks (:
@magicalpopsicalyt19 жыл бұрын
I like this explanation, thanks :D
@gummiglas55712 жыл бұрын
that volume difference at 1:00 hahaha
@abdelz16172 жыл бұрын
Great video, thank you!
@boz93705 жыл бұрын
Great explanation it really helped.
@izzyblackout10906 жыл бұрын
Can you do more explanation on this topic? Like how the octree programming code looks like?
@storerestore6 жыл бұрын
Octrees are similar but extend into the third dimension. So instead of a rectangle at the root you have a box, and instead of subdividing it into four rectangles you subdivide it into 8 boxes. Traversing the tree to check for collision with a point can be done with a recursive algorithm that starts with the root box/rectangle: 1. Check whether the node contains the point 2. If it does not, return no collision 3. Check whether there is some element that you could collide with within the node (this should be a single flag for each node) 4. If there is not, return no collision 5. Check whether this node has child nodes 6. If there are not, return collision 7. Call into the function again for each child 8. If any of the calls to the children return collision, return collision There are some optimizations that can be made here at the expense of clarity. Some obvious ones: to avoid call overhead if you know that all points you'll check are contained within the root node, you can do the initial check whether the point is in a node for each child at step 7. You can also avoid unnecessary calls by returning early at step 7 if you find a collision, since a collision with a point can only ever occur within a single node.
@hoki8296 Жыл бұрын
Great Help Bro~~~~!
@diliupg6 жыл бұрын
very nicely explained in simple terms.
@jasonw5195 жыл бұрын
very straightforward
@javierpastor81393 жыл бұрын
Pretty good video!
@nicoletaplaian95004 жыл бұрын
So this is how that game Worms was done... niiice
@woodyTM2 жыл бұрын
still waiting on the Octree Explanation video
@hamamathivha60557 жыл бұрын
Nice explanation boy-o
@aksbarelyediting8 жыл бұрын
very simple thanks
@sweetberries46115 жыл бұрын
Thank you a lot!
@user-pr6ed3ri2k Жыл бұрын
Does it approximate the gorund
@user-pr6ed3ri2k Жыл бұрын
dumbest comment in history
@sayochikun32882 жыл бұрын
thanks
@MrPoutsesMple8 жыл бұрын
Thanks !
@slack1286 жыл бұрын
Thank you
@SciKot2 ай бұрын
WE CAN ACTUALLY APPLY THIS! Holy... but thanks anyway