Re: Terrain LOD modelling.

New Message Reply Date view Thread view Subject view Author view

Jenny Zhao (zhz++at++dandan)
Wed, 20 Mar 1996 13:42:59 -0800


On Mar 18, 10:19pm, Steve Baker wrote:

>
> The ultimate solution is to morph your terrain between one LOD and the next -
> but that isn't as easy as it sounds (although Performer 2.0 makes it a lot
> easier).
>
and the solution is coming your way in Performer2.1!

The continuous morphing feature in 2.1 is called
ASD (active surface definition).
Instead of switching LOD on a per patch level, we can switch on a
per triangle level. Instead of instant switching, we
do smooth morphing. As a result, triangles at different LOD levels are matched
together and the details are changed continuously. There won't be any
gaps or missing holes. If the morphing criteria is tuned right by the
user, there shouldn't be any flashing either.
Performer 2.1 is scheduled to be released in April and will contain
the single process version of ASD. The more elaborate
features (Multi Processing, etc) of ASD will be added in the future.

1. Database design
Instead of LOD patches, the new ASD terrain database is organized as
hierarchy of triangles.

The database consists of layers of triangles at different LODs. the triangles
are connected in a strict tree hierarchy.

LOD 0 is a coarse triangle meshing. Significant points (e.g. corner of the
terrain or important mountains or cultural features) are selected
to form this meshing.
from there, each triangle is RECURSIVELY divided into up to 4 triangles. the
initial position of these triangles are coplanar subdivisions of their parent
triangle. the final positions are defined by user.
for example:

LOD 0 LOD1
      P P
     /\ / \
    / \ A /-----\ B
   / \ /\ /\
  / \ / \ / \
 /--------\ ------------
 M N M C N

the final position of new vertices A, B, C can be at any positions, most likely
determined by the terrain data. Make sure the initial position of A,B,C, are
on the edges of the parent triangle PMN.

2. Meshing generation at run time

At run time, Performer mixes and matches triangles from different LOD
levels to form a valid mesh. The subdivision of triangles or the merging of
triangles are carried out smoothly.

The morphing from PMN to (APB), (ABC), (CBN) and (MAC) is done continuously on
the fly. Each edge of PMN is evaluated by either a
user callback function (or the Performer default evaluation function)
to decide if it should be split into its child edges.
e.g. the evaluation function might decide edge PM should be displayed, or it
might decide AP, and AM should be displayed. The position of A is a linear
interpolation between A's initial position (a user-predetermined position
that can be any where on PM) and A's final position (an arbitrary
user-predetermined position).

This evaluation function can be designed and customized by the database
modeler. A common evaluation function is one based purely on distance
to the eye. Based on this evaluation function, an edge would be replaced
by its child edges if it falls within some distance range. What we get using
this evaluation is terrain that has a finer tessellation at places that
are closer to the eye point.

The evaluation might also be event driven, e.g. a bomb dropping might cause
edges to be split and morphed to finer details.

ASD in Performer 2.1 also handles morphing for normals.

If you are interested in this feature, please contact us. We will definitely
appreciate "brave" testers.


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:34 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.