Title: NDVI-based Vegetation Rendering
1NDVI-based Vegetation Rendering
Stefan Roettger, University of Erlangenhttp//www
.stereofx.org mailtostefan_at_stereofx.org
CGIM 07
2NDVI-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
3NDVI-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).
4NDVI-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)
5NDVI-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
6NDVI-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
7NDVI-based Vegetation RenderingVegetation
Information
Left Landsat ortho-image (pseudo-color) Middle
NDVI Index (automatic) Right Corine Landcover
Classification (hand-processed)
8NDVI-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
9NDVI-based Vegetation RenderingNDVI Mapping
Vegetation height and type are assumed to
correlate with the NDVI via a monotone
mapping For NDVI0 no vegetation
exists, above a specific threshold the vegetation
changes from grass to bushes or trees.
10NDVI-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.
11NDVI-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
12NDVI-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.
13NDVI-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 todays 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.
14NDVI-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).
15NDVI-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
16NDVI-based Vegetation RenderingCGIM 07
Thank you!