PDA

View Full Version : Adaptative meshes



OldMan
02-27-2004, 04:09 PM
Does anyone knows a pointer to any work on real time adaptative meshes on arbitrary meshes ?
(ROAM like)

I am having a hard time trying to figure it out how to map the models geometry info to the adaptative mesh in a fast way. With terrain the height mas can be use in a single lookup to find the data for each new vertex.. but how to do it with an arbitrary mesh?

I would love any comments.

chemdog
02-27-2004, 09:31 PM
ROAM can be adapted to use a spherical coordinates system. (psi, phi, distance). This is a trivial adjustment for star-polyhedra, (a class of polyhedra, which is a superset of the convex class), in which the any point of the interior star-space can be used to generate a valid mapping.

On non-star meshes, map the points on the mesh to the new coordinate system, but you have to make sure adjacency is taken into account. Psi and phi normally range from 0 to 2pi radians, but now can range 0 to any number. When rendered, angle and angle+2pi are the same angle, but not when building the mesh. The idea here is that psi and phi are always non-decreasing as they wrap(in the sense of gift-wrap) around the mesh.

Using as an example, a 2-D bow-tie shape, (the procesdure generalizes to n-D):
(0,0), (0.5,0.25), (1,0), (1,1), (0.5, 0.75), (0,1).

We start arbitrarily at the (0,0) node.
Conversion to polar(rad,dist) gives
(0,0)->(0,0)
(0.5,0.25)->(pi/6, root(3)/3)
(1,0)-> should be (0,1), but angles need to be non-decreasing -> (0 + 2pi, 1)
(1,1)->(pi/4 + 2pi, root(2))
ecetera....

To generalize to 3-D, instead of a line to determine adjacency, we have a face. One can evaluate adjacent faces in any order, as long as the non-decreasing property holds for both angles. It is an open problem -- to my knowledge -- in determining the optimal traversal order for 3 and higher dimensions. Smallest-Angle-Delta-Next is a reasonable metric. Expand the next face, which minizes the sum of the deltas on the angles.

Smaller angles can be obtained by choosing a start location on the line/plane that has the minimal mesh-crossings. (In the bow-tie example, choosing a point on the crease would prevent any angle increases by 2pi.)

OldMan
02-29-2004, 04:01 AM
Thanks..

I will try to implement it and then put some return here.