Feature Stencil

This plugin “drapes” vector feature data over the terrain using a stencil buffering technique.

Example usage:

<model driver="feature_stencil">
    <features name="world" driver="ogr">
        <url>../data/world.shp</url>
    </features>

    <styles>
        <style type="text/css">
            world {
               stroke:         #ffff007f;
               stroke-width:   0.1;
            }
        </style>
    </styles>
</model>

Properties:

extrusion_distance:
 How far to extrude stencil volumes (meters)
inverted:Whether to stencil the inversion of the feature data (true/false)
mask:Whether to use the stenciled region as a terrain mask (true/false)
show_volumes:For debugging; draws the actual stencil volume geometry

Shared properties:

All the feature-rendering drivers share the following properties (in addition to those above):

styles:Stylesheet to use to render features (see: Symbology Reference)
layout:Paged data layout (see: Features & Symbology)
cache_policy:Caching policy (see: Caching)
fading:Fading behavior (see: Fading)
feature_name:Expression evaluating to the attribute name containing the feature name
feature_indexing:
 Whether to index features for query (default is false)
lighting:Whether to override and set the lighting mode on this layer (t/f)
max_granularity:
 Anglular threshold at which to subdivide lines on a globe (degrees)
shader_policy:Options for shader generation (see: Shader Policy) :use_texture_arrays: Whether to use texture arrays for wall and roof skins if you’re card supports them. (default is true)

Also see:

feature_stencil_line_draping.earth sample in the repo

Notes:

  • This plugin does NOT support paging (display layouts).

Fading

When fading is supported on a model layer, you can control it like so:

<model ...
    <fading duration  = "1.0"
            max_range = "6000"
            attenuation_distance = "1000" />

Properties:

duration:Time over which to fade in (seconds)
max_range:Distance at which to start the fade-in
attenuation_distance:
 Distance over which to fade in

Shader Policy

Some drivers support a shader policy that lets you control how (or whether) to generate shaders for external geometry. For example, if you want to load an external model via a stylesheet, but do NOT want osgEarth to generate shaders for it:

<model ...
    <shader_policy>disable</shader_policy>