16
NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen http://www.stereofx.org mailto:[email protected]

NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen mailto:[email protected]

Embed Size (px)

Citation preview

Page 1: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

NDVI-based Vegetation Rendering

CGIM ‘07

Stefan Roettger, University of Erlangenhttp://www.stereofx.org mailto:[email protected]

Page 2: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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

Page 3: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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).

Page 4: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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)

Page 5: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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

low

medium

high

Page 6: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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

Page 7: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

NDVI-based Vegetation RenderingVegetation Information

Left: Landsat ortho-image (pseudo-color)Middle: NDVI Index (automatic)Right: Corine Landcover Classification (hand-processed)

Page 8: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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

Page 9: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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.

Page 10: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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.

Page 11: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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:

Page 12: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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.

Page 13: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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.

Page 14: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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).

Page 15: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

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…

Page 16: NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen  mailto:stefan@stereofx.org

NDVI-based Vegetation RenderingCGIM ‘07

Thank you!