Author: John 'JohnJ' Judnich
Current Maintainer: tdev (Thomas Fischer)
Project: OGRE Add-on Project (forests)
Bugtracker / Issue Ticket system / Support: Github
Supported Platforms: Windows, Linux, (Mac)
Supported Ogre Releases (Mercurial version): 1.6 and newer
Documentation: API Documentation, Tutorials, Examples
Product Support & News: PagedGeometry Addon Forum
License: zlib/libpng (free for any use)
Description: Real-time rendering of massive, dense forests, with not only trees, but bushes, grass, rocks, and other "clutter". Supports dynamic transitioned -LOD between batched geometry and static impostors (extendable).
Table of contents
What is PagedGeometry?
The PagedGeometry engine is an add-on to Ogre which provides highly optimized methods for rendering massive amounts of small meshes, covering a possibly infinite area. This is especially well suited for dense forests and outdoor scenes, with millions of trees, bushes, grass, rocks, etc., etc.
Paged geometry gives you many advantages over plain entities, the main one being speed: With proper usage of detail levels, outdoor scenes managed by PagedGeometry can be >100x faster than plain entities. Another advantage is that the geometry is paged; in other words, only entities which are immediately needed (to be displayed) are loaded. This allows you to expand the boundaries of your virtual world almost infinitely (only limited by floating point precision), providing the player with a more realistically scaled game area.
- Complete API documentation included, describing every feature in detail
- 4 tutorials included to teach you how to get PagedGeometry set up and optimized in your project
- 7 examples included to demonstrate the actual use of various selected features
- Dynamic geometry paging system, which enables infinite worlds
- Batched rendering -LOD for optimized rendering of near-by trees
- Impostor rendering -LOD for extremely fast rendering of distant trees
- Flexible -LOD display system, which can be expanded to display geometry with any technique you can implement
- Flexible -LOD configuration system, which allows you to configure any combination of supported LODs in any way you want
- Optional cross-LOD fade transitions, and far -LOD fade-out, fully configurable
- Flexible PageLoader system, allowing you to dynamically load geometry from any source you can imagine
- Easy addition / removal of trees with bit packing, allowing millions of trees to be stored in RAM using only a few MBs
- Color-map support for trees, which enables you to apply terrain lightmaps to your trees with one simple function call
- Animated, optimized grass rendering system. Supports density maps, color maps, wind animations, height range restriction, and much more.
- Right out-of-the-box, the CG shader language is used for runtime generated shaders. Therefore, a correctly setup CG plugin is required.
Screenshots & Videos
Expansive jungle scene with 240,000 trees and animated vegetation, running at 100 - 150 FPS on a GeForce 7800 GT:
Detailed forest scene with trees, ferns, mushrooms, flowers, etc., running at ~100 FPS on a GeForce 7800 GT:
Videos (Slightly Outdated)
Jungle Video (5.53 MB, WMV Format)
Vast Forest Video (5.62 MB, WMV Format)
Grass Shadows Video (3.72 MB, WMV Format)
Tree Demo Video (5.27 MB, WMV Format)
Grass Demo Video (4.49 MB, WMV Format)