99.07.26 Phone conversation with Seumas McNally of Longbow Digital Arts, concerning
his game Treadmarks
Learned an incredible amount about his terrain LOD implementation, which is
loosely based on the academic ROAM paper.
- his terrain mesh is:
- 1 m resolution
- 500 m basic view distance
- 1024 * 1024 terrain grid - which wraps around
- 64 * 64 color texture patches - to minimize how much needs to be
re-sent to the hardware when the ground texture changes
- differences from the ROAMing algorithm:
- not using split & merge priority queues!
- in fact, he doesn't store anything for the drawn triangles - they are
implicit on the stack as the recursive function walks the binary tree
- error metric calculation only computes error at the triangle's
hypotenuse, much simpler than the complicated calculations in the paper
- does not exploit frame-to-frame coherence - not even for culling
- doesn't use mip-mapping at all
- lighting is baked into the color texture
- morphing
- only requires one extra field per drawn triangle
- the vertex at the middle of the hypotenuse of the triangle's parent is
the one doing morphing
- he accomplishes multi-texturing in two ways: by rendering twice, or by
using the multi-texture API functions when available
- when rendering twice:
- he alters the front & back clipping planes slightly before drawing
the second pass, which solves the overdraw-Z buffer problem
- the first texture is the color-texture
- the second texture has a color component which is dark grey /
black, and an alpha component which covers the entire range. using
'modulate' mode, this alpha combines with a vertex alpha (set once,
not per vertex) which covers a small range
- when using API multi-texturing:
- the second texture is RGB-only, no alpha - close to white, set to
multiply with the first texture (some cards may not support this
multiply-multitexture properly)
- he considers the terrain rendering in the game 'Motorcross Madness' as
impressive (for it's time)
- notable person working on terrain LOD:
Thatcher Ulrich
- working on a snowboarding game
- "He's working on a quadtree based algorithm which seems very fast and
flexible, from what he's explained to me and from what I've seen from
playing a beta of his game. He seems to have quadtree algorithms
pretty much 'figured out'".