Original Post
Ok, I've been reading around on on ABTs [invented/popularised] by Yann L. They seem ideal for my engine and after reading the threads I could find about them I think I've got a good enough understanding to begin implementation (and any other details I can read up on during the way [wink]). Before I get to work I would like to clear up a few nagging questions so I can get my head around this concept fully. 1) Yann talks about relaxing the bounds to fully encompass entire faces (to reduce splitting)... a) Is this growth only applied to one side of the AABB or all of them? b) Is this growth applied to every AABB or do you detect if there are faces interescting the bounds of the AABB and only grow those particarlar ones? 2) Take a look at this quote from Yann:
Quote:Can anyone elaborate on this, I don't fully understand it. What is meant by the 'optimal AABB'? And can anyone explain that equation. To me most of that doesn't make sense, what actually is happening? Any help is welcome here [smile] Now look at this one:
by Yann L Now it's time to optimize the volume. Because of the property of an AABB to encompass the whole volume of an object along it's primary axes, the AABB of the parent node often has a much larger volume than the combined AABBs of both children nodes. Mathematically expressed: AABB1 + AABB2 <= AABB1 UNION AABB2 In octtrees, that's a necessary evil, and can result in lots of empty (or almost empty) nodes. But we can do better: for both child nodes, recompute the optimal AABB for the geometry they contain. Continue the recursive process on both children, by supplying the newly formed AABBs as parameter to the recursive function. Do that until the process has terminated, and all leaves have been created.
Quote:Again, I don't completely understand what this actually achieves and what process actually occurs (apart from traversing up the tree [smile]). So any general help in this area is much apreciated. I'll continue to surf the forum for more info (there are a few references elsewhere on the net but they dont seem to be useful). Thanx in advance.
by Yann L At this point, due to all the overgrowing and optimization, your original node hierarchy will be largely out of sync with the nodes themselves. So you need to rebuild it from the bottom to the top. For each leaf, walk up the tree, and recreate the bounding boxes for each node by unifying the child AABBs to the parent AABB. If everything went well, you'll end up with the same root AABB that you've started with. Your tree is now complete.