Release Notes - Version 2.0
The main reason for doing a major version bump is to introduce API and Earth File changes. But we did manage to sneak some new features and improvements in there as well.
Major Changes:
- Map API - We reorganized the Map API to make it more natural. This includes new explicit layer classes like ImageLayer and ElevationLayer. There is also a new MapFrame class for performing thread-safe operations on Map content.
- Config classes - Configuration options throughout are now serializable stack classes, including all the driver configuration options.
- Util namespace - The osgEarthUtil library is now under the osgEarth::Util namespace, for consistency across the project.
- Earth file - The .earth file has a new updated format that more clearly lays out options, while maintaining backwards compatibility with "version 1.x" earth files.
- Caching - Caches now use an auto-generated unique cache ID string for each layer (instead of the layer name). You can still force the old behavior by specifying an explicit cache-ID and setting it to the layer name.
New Features and Improvements:
- Shader Composition - osgEarth has a new shader composition framework that allows you to integrate your own shader code with osgEarth's core shaders.
- GPU Layer Composition - osgEarth now defaults to using the GPU to composite image layers, giving you more layers to work with and more flexibility in rendering them.
- ModelLayers have a new overlay mode for draping geometry on the terrain using projected texturing.
- New SkyNode utility to simulate sun, stars, and atmospheric effects for geocentric maps.
- New CompositeTileSource lets you group multiple image layers into one logical layer
- Updated OceanSurfaceNode sample utility to use the new shader composition framework.
- New osgearth_shadercomp example demonstrates simple shader integration.
- Upgrades to the Controls (2D UI) utility library.
- New osgearth_toc sample demonstrates runtime layer manipulation, and works with any .earth file.
- Incremental performance improvements throughout the system by minimizing mutex contention and heap allocation where possible.
- New pluggable terrain engine framework. This will allow us to experiment with next-gen terrain rendering techniques without interfering with osgEarth's current terrain engine.
- Faster spherical mercator reprojection support.
- Earth files now use OSG's osgDB::ReaderWriter mechanism for both reading AND writing. Instead of creating an EarthFile class, simply create a MapNode and call osgDB::writeNodeFile.
- EarthManipulator supports "arced" viewpoint transitions.
- Added control over the size of the L2 tile cache on a per-layer basis.
- Improved OGR driver support for mis-wound geometry
- Improved support for AMD/ATI GPUs, Cygwin/Mingw?, and VS2010.
