News for hackers. Stuff that matters.
Re:An Interactive Explanation of Quadtrees by taeric on Tuesday February 14, 2023 @09:29PM (#34799271)
I'm now very curious on this. My gut was more that it is 2^(number of dimensions) that is important here. As such, for a single dimensional storage of data, standard binary tree. Add in another dimension, but still want to halve the search space with every comparison, add another branch factor to the tree.

That said, this implies that for 3d space, you would want 8 way trees? But, I don't think I've ever heard of that being done/used.

Re:An Interactive Explanation of Quadtrees by ShredKazoo on Tuesday February 14, 2023 @09:40PM (#34799344)
A B-tree does in fact have >2 children for only a single dimension.
Re:An Interactive Explanation of Quadtrees by taeric on Tuesday February 14, 2023 @11:49PM (#34800217)
Right. But that is more to optimize cache/block reads, right? Been way too long since I've looked at many of those details. :)
Re:An Interactive Explanation of Quadtrees by ShredKazoo on Wednesday February 15, 2023 @03:46AM (#34801482)
Yeah pretty much, a node in a B-Tree is designed to fill a single page of memory
Re:An Interactive Explanation of Quadtrees by EliasLittle on Tuesday February 14, 2023 @09:38PM (#34799326)
8 way trees are used for 3D, they’re called Octrees.

https://en.wikipedia.org/wiki/Octree?wprov=sfti1

Re:An Interactive Explanation of Quadtrees by taeric on Wednesday February 15, 2023 @08:30AM (#34803520)
I'm now super amused with myself for not looking for "oct." Which, yeah, would have been the obvious prefix to look for.
Re:An Interactive Explanation of Quadtrees by corysama on Tuesday February 14, 2023 @10:29PM (#34799733)
In ray-tracing, people debate back and forth between kd-trees, octrees, quad-AABB trees, oct-AABB trees, and I’m sure there are a few more.

I think quad-AABB has been the most popular option for a while now.

Re:An Interactive Explanation of Quadtrees by sudosysgen on Wednesday February 15, 2023 @01:40AM (#34800797)
Generally the most popular is a BVH system between objects and a kd-Tree within objects, in my experience.
Re:An Interactive Explanation of Quadtrees by boppo1 on Wednesday February 15, 2023 @05:31AM (#34802068)
I'm a noob to DS&A, but I'm writing a little add-on for Blender and have come up against BVH and kd-trees. What makes one more popular for 'within objects' and the other for 'between'?
Re:An Interactive Explanation of Quadtrees by sudosysgen on Wednesday February 15, 2023 @12:17PM (#34807153)
BVHes handle sparsity and very large scenes with variable density very well, so they are good to be able to see which objects you might intersect. kd-Trees are much better for objects because they handle the high density of geometry very well and are thus very effective if you want to test against a million triangles in close proximity, for example.
Re:An Interactive Explanation of Quadtrees by boppo1 on Thursday February 16, 2023 @12:52PM (#34822416)
Thanks!
Re:An Interactive Explanation of Quadtrees by taeric on Wednesday February 15, 2023 @08:31AM (#34803525)
So many things to read up on, now! :D Thanks for the pointers!
Re:An Interactive Explanation of Quadtrees by misja111 on Wednesday February 15, 2023 @03:13AM (#34801304)
> My gut was more that it is 2^(number of dimensions) that is important here.

Yes, it's just binary search but applied to every dimension.

Re:An Interactive Explanation of Quadtrees by taeric on Wednesday February 15, 2023 @08:29AM (#34803514)
This was my thinking, exactly. I have not tried implementing one before.