4.4. LEVEL OF DETAIL Exploration of 3D mesh level-of-detail approaches Exploration of 3D mesh level-of-detail approaches Level of Detail (LOD) Level of detail (LOD) involves decreasing the complexity of a rendered object as it moves away from the viewer (or according to some other metric, e.g. importance, eye-space speed, etc.). Using LOD, the workload on the graphical pipeline is reduced (usually in terms of vertex transformations) The reduced visual quality of the model is often unnoticed because of the small effect on object appearance when distant or moving fast. Types of LOD Three core types of LOD technique can be defined: • Discrete LOD: constructing a number of discrete models of varying level of detail • Continuous LOD: encoding a continuous spectrum of detail from coarse to fine • View-dependent LOD: adjusting detail across the model in response to the viewpoint Discrete LOD This is the simplest approach – at run-time the appropriate LOD need only be selected and rendered. The approach works well with current GPUs as each LOD can be stored in a GPU friendly manner (triangle strips, cache-aware vertex arrays) which render faster than the immediate-mode triangles often used in CLOD. The downside of DLOD is the potential for popping when swapping between LODs. Also, in theory, CLOD has higher fidelity. Finally, DLOD is not particularly suitable for large objects or small object combination. Continuous LOD Whilst DLOD builds a number of preprocessed static views of the object, continuous LOD (CLOD) builds a data structure from which a desired level of detail can be extracted at run time. The advantages of CLOD include better fidelity (as the LOD is explicitly built, not preselected from some precreated options). CLOD also provides better granularity (i.e. smoother transitions, visual pops are less of an issue). View-Dependent LOD View-Dependent LOD can be viewed as a type of CLOD which takes into account the viewing angle, i.e. the algorithm allocates polygons where they are most needed, within as well as among objects, based on where the viewpoint is currently focussed. The key advantage of view-dependent LOD is that is permit very large objects to have high detail for those portions close to the viewpoint and less detail for those portions far away from the camera. LOD Selection Criteria When selecting which LOD to use, relevant selection criteria can include: • • • • distance on-screen pixel size environment factors view point Distance The distance from the view point to the object (nearest point or simply mid point) is simple and quick to compute. LOD Selection Criteria Size Select resolution based upon the projected screen size (or area) of an element. Objects appear smaller as they move further away. This requires a 3D to 2D projection in order to determine the screen projection. DLOD Preventing Popping Different techniques can be used to lessen the visual impact of DLOD popping, including: • hysteresis (the lagging of an effect behind its cause) • geomorphs • alpha-blending DLOD Preventing Popping Hysteresis Different trigger points (e.g. distances) are used to determine when to switch up/down between LODs. This reduces the effects of models continuously switching at a threshold. Priority Schemes A priority is assigned to each object based on the semantic importance of the object (likely significance/focal point for the user). High priority objects will use a higher LOD than less significance objects. DLOD Preventing Popping Alpha-Blending By blending between two LODs (in image space) it provides a means of fading in the new LOD whilst fading out the old LOD, thereby reducing the visual impact of changing LOD from a visual pop to a more gradual morph. Other areas of LOD application The concept of LOD can applied to more than geometric detail. For example, mipmapping is a form of texture based LOD which provides higher rendering quality by avoiding aliasing effects when a large texture is applied to a small screen area. Other areas of LOD application LOD techniques can also be applied to shader management to reduce the render cost of distance pixels, e.g. bump mapping, etc. can be removed, multiple textures can be reduced to a single texture (or even colour), etc. Improved LOD using normal mapping Original model (250k triangles) Improved LOD using normal mapping Phong Shading (8k triangles) 15 pixel error Improved LOD using normal mapping Normal Mapping (8k triangles) 15 pixel error Improved LOD using normal mapping Phong Shading (1k triangles) 78 pixel error Improved LOD using normal mapping Normal Mapping (1k triangles) 78 pixel error Exploration of different terrain LOD techniques Terrain LOD Techniques Terrain rendering provids an obvious target for LOD techniques given the typical terrain size and the need to provide up-close detail alongside far-off terrain features. Development of terrain LOD algorithms has included: • ROAM • Geomipmaps • Chunked LOD • Geometry clipmaps Real-time optimally adapting mesh (ROAM) ROAM is a CLOD algorithm for terrain meshes. It uses pre-processed bintree triangles alongside a split and merge process to construct the terrain mesh. ROAM is CPU intensive and, for current hardware, the cost benefit of using ROAM to reduce the number of polygons sent to be rendered is typically not justified (i.e. it is faster to save CPU time and send some unneeded polygons to the GPU). Geomipmaps Geomipmaps applies the notion of a image mipmap to a geometric representation (typically using a heightmap texture) The heightmap (or a square portion of the height map) is scaled down to provide coarser representations (parallel image mipmapping). At run time, the geomipmap is selected based on the onscreen LOD error using the current viewport. Geomorphing is often used (morphing from one LOD to another) to avoid the visual ‘popping’ of terrain when the selected LOD fragment changes. Chunked LOD Chunked LOD extends geoclipmaps by constructing a quad-tree of terrain chunks, which provides more detail as the leaves of the tree are approached. Chunked LOD improves upon geomipmapping as it reduces the number of individual mesh renders that must be performed. Geometry clipmaps Geometry clipmaps (which parallel texture clipmaps) use a set of nested regular grids centered about the viewer. The grids are stored in video memory as vertex buffers and contain filtered versions of the terrain at power-of-two resolutions. As the viewpoint moves, the clipmap levels shift and are incrementally refilled with data Video not available in on-line slides Directed reading concerning LOD and terrain rendering Directed reading: General LOD • Read Chapter 2 (Mesh Simplification) from Level of Detail for 3D Graphics – for general mesh LOD techniques • Read Chapter 3 (Simplification Error Metrics) from Level of Detail for 3D Graphics – for information on how to measure LOD differences • Read Chapter 4 (Runtime Frameworks) from Level of Detail for 3D Graphics – for information on how LOD can be implemented at runtime Directed reading: Terrain LOD • Read ROAMing Terrain: Real-time Optimally Adapting Meshes – for information on ROAM • Read Fast Terrain Rendering Using Geometrical MipMappings – exploring geomipmapping • Read Rendering Massive Terrains Using Chunked Level of Detail Control – explore chunked LOD • Read Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids – for information on geoclipmaps Directed reading: Terrain LOD • Read Survey on Semi-Regular Multiresolution Models for Interactive Terrain Rendering – for a comparative review of some terrain LOD techniques. • Read GPU Gems 2 - Terrain Rendering Using GPU-Based Geometry Clipmaps – for more information on geoclipmaps • Read Terrain Rendering using Spherical Clipmaps – for a spherical approach to geoclipmaps Summary Today we explored: Different types mesh LOD technique Terrain LOD techniques