Friday 15 February 2013

unity3d - Creating simplified bounds with an inaccuracy threshold -


Looking at a set of non-rotated AABB limits, I'm hoping to create a simple set of straight lines from the original set,

Some examples: solution example

I am in unity with it I am working, but this is only the basic AABB comparison stuff, Unity is not unique I think that somebody had a system working for this at some point in the past, but I have no Do not look for luck. InkScooling Limit is easy, but it is difficult, because you are able Can not run from God. Sometimes a simple solution can be seen only by looking at the whole thing.

Fast performance is not important, but good will inaccuracy is correct in both directions (i.e., the actual size or slightly more than can limit less ) if this help So, I can expect to connect all the borders in the original set somewhere - there is no free floating piece in a different group.

I hope that anyone has a complete system to solve it, I am also hoping that it has already been solved or that it is possible to achieve one There is a clear process that I have not yet thought.

It seems something that is controlled by surface area heuristics (SAH) can be done. SAH is generally used to make rays better for trees, such as structures triangle is stored. There are many sources to discuss more about this, a good chapter is 7.3.

The original idea created by SAH starts with the whole space and divides it repeatedly. The decision of the position of the division is done on the basis of the calculation of the surface area of ​​both the nodes and the children through all the appropriate positions. In the proper position, the position of any triangle is upper or lower bound. After being widespread through all the candidates, the small total surface area division is used in children.

If SAH is not a good idea for your application, then you can make equal use by all the candidates, but calculate, for example, extra space inside AABB.


No comments:

Post a Comment