I added a node, but it has no texture/lighting/etc. in osgEarth. Why?¶

Everything under an osgEarth scene graph is rendered with shaders.
So, when using your own models (or creating geometry by hand) you
need to create shader components in order for them to render properly.

osgEarth has a built-in shader generator for this purpose. Run the
shader generator on your node like so:

osgEarth::Registry::shaderGenerator().run( myNode );

After that, your node will contain shader snippets that allows osgEarth
to render it properly and for it to work with other osgEarth features
like sky lighting.

By default, the globe will be opaque white when there are no image layers, or when all the image
layers have their opacities set to zero. To make the underlying globe transparent, set the
base color of the terrain to a transparent color like so:

VirtualPlanetBuilder (VPB) is a command-line terrain generation tool. Before osgEarth
came along, VPB was probably the most-used open source tool for building terrains for
OSG appliations. We mention is here because many people ask questions about loading
VPB models or transitioning from VPB to osgEarth.

osgEarth differs from VPB in that:

VPB builds static terrain models and saves them to disk. osgEarth generates terrain on
demand as your application runs; you do not (and cannot) save a model to disk.

Changing a VPB terrain generally requires that you rebuild the model. osgEarth does not
require a preprocessing step since it builds the terrain at run time.

osgEarth and VPB both use GDAL to read many types of imagery and elevation data from
the local file system. osgEarth also supports network-based data sources through its
plug-in framework.

osgEarth has a VPB driver for “scraping” elevation and imagery tiles from a VPB model.

Confiugration of this driver is quite tricky and requires you to understand the details
of how VPB models are organized. You’re on your own.

Please Note that this driver only exists as a last resort for people that have a VPB
model but no longer have access to the source data from which it was built. If at all
possible you should feed your source data directly into osgEarth instead of using the VPB
driver.

osgEarth cannot load TerraPage (TXP) or MetaFlight. However, osgEarth does have a
“bring your own terrain” plugin that allows you to load an external model and use it as your
terrain. The caveat is that since osgEarth doesn’t know anything about your terrain model, you
will not be able to use some of the features of osgEarth (like being able to add or remove layers).

For usage formation, please refer to the byo.earth example in the repo.

The best way to work with the osgEarth repository is to make your own clone on GitHub
and to work from that clone. Why not work directly against the main repository? You
can, but if you need to make changes, bug fixes, etc., you will need your own clone
in order to issue Pull Requests.

Create your own GitHub account and log in.

Clone the osgEarth repo.

Work from your clone. Sync it to the main repository periodically to get the
latest changes.

First you need your own GitHub account and a fork of the repo (see above). Next,
follow these guidelines:

Create a branch in which to make your changes.

Make the change.

Issue a pull request against the main osgEarth repository.

We will review the PR for inclusion.

If we decide NOT to include your submission, you can still keep it in your cloned
repository and use it yourself. Doing so maintains compliance with the osgEarth
license since your changes are still available to the public - even if they are
not merged into the master repository.

Of course! We at Pelican Mapping are in the business of supporting users of
the osgEarth SDK and are available for contracting, training, and integration
services. The easiest way to get in touch with us is through our web site
contact form.

Pelican also offers a Priority Support package that is a good fit for
companies that prefer to do most of their development in-house.

Yes. The license permits use in a commercial product. The only requirement is that
any changes you make to the actual osgEarth library itself be made available
under the same license as osgEarth. You do not need to make other parts of your
application public.