Title: Questioning LOD
1Questioning LOD
- Jonathan Blow
- Bolt Action Software
- jon_at_number-none.com
2What is LOD?
- Complex models contain too many triangles to
render quickly. - Most of the triangles will not add much to the
appearance of a scene. - We can construct approximations to those models
and render them instead. - LOD stands for Level of Detail.
3Types of LOD management
- Discrete LOD
- Rigid progressive meshes
- Malleable progressive meshes
- View-dependent mesh manipulation
4Examples of LOD
5Examples of LOD
6Questioning the basic assumptions
- Complex models contain too many triangles to
render quickly. - Most of the triangles will not add to the
appearance of the scene. - We can construct approximations to those models
and render them instead. - Geometry management is an isolated problem.
7Complex models contain too many triangles to
render quickly?
- Graphics card makers (e.g. nvidia) are giving us
hardware with huge throughput potential (tens of
millions of polygons / sec) - You can only come near the marketing numbers if
your data is rigid. - Most types of LOD methods cripple the rendering
system.
8Questioning the basic assumptions
- Complex models contain too many triangles to
render quickly. - Most of the triangles will not add to the
appearance of the scene. - We can construct approximations to those models
and render them instead. - Geometry management is an isolated problem.
9Most triangles will not add to the scene?
- ...but you spend CPU figuring out which ones.
- The set of desired triangles can change
frequently - requiring a lot of data structure updates
- disrupting rigidity that the graphics card
likes.
10Questioning the basic assumptions
- Complex models contain too many triangles to
render quickly. - Most of the triangles will not add to the
appearance of the scene. - We can construct approximations to those models
and render them instead. - Geometry management is an isolated problem.
11We can construct approximations?
- Approximation algorithms are based on heuristics
that often go awry. - The approximations require more storage than the
original model. - This kind of code is complex and hard to write.
- It is hard to know when the code is correct.
12Questioning the basic assumptions
- Complex models contain too many triangles to
render quickly. - Most of the triangles will not add to the
appearance of the scene. - We can construct approximations to those models
and render them instead. - Geometry management is an isolated problem.
13Geometry management is not isolated from the rest
of your system.
- We must texture and light that geometry.
- We must push it through the rendering manager
(vertex buffer manager, shader organizer) - It must cooperate with unpredictable portions of
your game engine.
14Examples Terrain Lighting
- Vertex removals hate vertex-based lighting
popping happens. - Lightmaps solve this, but cost an extra texture
pass. - Oh wait! We want to bump-map now.
- Bump frames are pinned down by vertices...
- Were screwed unless we have really advanced
dependent texture reads.
15Examples Terrain Texturing
- Triangles cant cross texture boundaries.
- Unless we have an intricate texture LOD system,
our geometric LOD is stifled. - May involve dynamic texture generation or reading
from a large disk store. - Requires us to switch the textures on mesh
triangles dynamically (this is not free!)
16Examples Character Animation
- Skeletal animation is about weighted vertices
attached to bones. - If you create new vertices you need to synthesize
new weights. - If you dont create new vertices you will have
weird stretching problems. (e.g. shoulder) - It is difficult to know what the body will do in
advance.
17Massive scalabilityis a myth.
- Case study Shinys Messiah
- Game design imposes scaling limitations.
- Many developers consider 4-6x triangle count to
be the maximum effective scalability - 6x polygon count does not mean 6x better looking
18But researchers say LOD is good!
- Many researchers have low expectations that are
easily satisfied. - Most printed research is targeted at old
hardware. - Most researchers dont have a clear idea of what
is important to games. - Most research is not used in production systems
that have to work solidly.
19Recommendations
- Terrain, far viewing distance Use
Lindstrom-Koller or Isosurfaces. - Terrain, short distance Use static-mesh TINs.
- Static Models Use VIPM.
- Animated characters Use no LOD if you can
possibly get away with it.
20Questioning LOD
Jonathan Blow Bolt Action Software jon_at_number-none
.com