170 likes | 287 Views
NDVI-based Vegetation Rendering. Stefan Roettger, University of Erlangen http://www.stereofx.org mailto:stefan@stereofx.org. CGIM ‘07. NDVI-based Vegetation Rendering Overview. Recap of Terrain Rendering with C-LOD - How to get vegetation information - NDVI mapping
E N D
NDVI-based Vegetation Rendering Stefan Roettger, University of Erlangenhttp://www.stereofx.org mailto:stefan@stereofx.org CGIM ‘07
NDVI-based Vegetation RenderingOverview • Recap of Terrain Rendering with C-LOD • - How to get vegetation information • - NDVI mapping • Volumetric representation of vegetation • Rendering with texture splatting and billboards • Double-buffered tile set caching • - Results
NDVI-based Vegetation RenderingHeight Fields A common representation of terrain is the so called height field, a regular matrix which stores height values. By transforming the elevation into grey-values the height field is given by a grey-scale image (left). Color information is given by an ortho-image (right).
NDVI-based Vegetation RenderingRendering with Triangle Fans • - the height field is decomposed into a quad tree • - per quad tree node (dots) the decision to subdivide depends on the screen space error of the actual triangulation • each leave of the quad tree is rendered with a triangle fan (arrows) • to get a conforming mesh some vertices are skipped (crosses)
NDVI-based Vegetation RenderingC-LOD - screen-space error depends on distance to the eye point and the “surface roughness” - user-definable upper bound on the screen-space error continuously delimits the resolution of the triangulation high medium low
NDVI-based Vegetation RenderingTextured Terrain - an orthographic projection of the terrain texture yields the following visualization of the height field - geo-morphing of the vertices is used to suppress the popping effect
NDVI-based Vegetation RenderingVegetation Information Left: Landsat ortho-image (pseudo-color) Middle: NDVI Index (automatic) Right: Corine Landcover Classification (hand-processed)
NDVI-based Vegetation RenderingNDVI Definition - Landsat has channels 1-8 for visible and invisible wave lengths - 1-3 = BGR, but not exactly, wave lengths are shifted towards blue - 4 = NIR (Near Infra-Red) Channels I1-3
NDVI-based Vegetation RenderingNDVI Mapping Vegetation height and type are assumed to correlate with the NDVI via a monotone mapping: For NDVI=0 no vegetation exists, above a specific threshold the vegetation changes from grass to bushes or trees.
NDVI-based Vegetation RenderingVolumetric Representation We interprete the NDVI as a second height field that encodes HPlant and compute the triangulation based on the weighted error of both height fields. Then we take each base triangle of the mesh and stack a prism onto it where the height corresponds to the mapped NDVI. Now we can randomly place vegetation inside the prism.
NDVI-based Vegetation RenderingTexture Splatting If plant type is grass, e.g. the height is below a specific threshold, but not zero, we use texture splatting to show ground detail. A stack of grass textures is put into a 3D texture which is indexed by the mapped prism height. Then the lookup is perturbed with Perlin Noise, faded by distance and finally blended with the ortho-image. For bushes and trees the following billboard textures are scaled to fit the height of the prism:
NDVI-based Vegetation RenderingPaging and Caching The scene is divided into a regular tile set. All visible tiles are paged in and out depending on the LOD of each tile to minimize the [texture] memory footprint. For each frame only a subset of all the tiles is triangulated and the resulting part of the entire mesh is appended to a double-buffered vertex cache. While the back buffer of the cache is updated from frame to frame, the front buffer can be reused for a couple of subsequently rendered frames. Accordingly, for a single frame, only a subset of the plant geometry is updated and stored in the cache which leads to a much reduced CPU load since the vertex buffer can be redrawn with little overhead.
NDVI-based Vegetation RenderingLimiting Geometric Complexity Geo-morphing of both the terrain and the prisms allows for smooth transitions of the prisms and therefore the generated plant distribution. Prisms that are far away fade out to zero height and thus do not contain vegetation. As a result, the appearance of distant details is determined only by the ortho-image and plants are only generated in the vicinity of the viewer. This limits the overall number of geometric plant primitives to an amount that is easily managable by today’s graphics hardware. The total number of visible trees in a forest easily exceeds 50 million while the number of rendered trees in the vertex cache is only between 300k and a few million for densely vegetated areas.
NDVI-based Vegetation RenderingResults #1 We use green triangles as a simplified model for the plants in order to show the match of the NDVI (left) with the displayed plants (right).
NDVI-based Vegetation RenderingResults #2 The demo scene with and without vegetation rendering. Frame rate is about 15-20 fps on a NVIDIA GeForce FX 5900. Here comes a live demo…
NDVI-based Vegetation RenderingCGIM ‘07 Thank you!