OGRE Wiki
Support and community documentation for Ogre3D
Ogre Forums
ogre3d.org
Log in
Username:
Password:
CapsLock is on.
Remember me (for 1 year)
Log in
Home
Tutorials
Tutorials Home
Basic Tutorials
Intermediate Tutorials
Mad Marx Tutorials
In Depth Tutorials
Older Tutorials
External Tutorials
Cookbook
Cookbook Home
CodeBank
Snippets
Experiences
Ogre Articles
Libraries
Libraries Home
Alternative Languages
Assembling A Toolset
Development Tools
OGRE Libraries
List of Libraries
Tools
Tools Home
DCC Tools
DCC Tutorials
DCC Articles
DCC Resources
Assembling a production pipeline
Development
Development Home
Roadmap
Building Ogre
Installing the Ogre SDK
Setting Up An Application
Ogre Wiki Tutorial Framework
Frequently Asked Questions
Google Summer Of Code
Help Requested
Ogre Core Articles
Community
Community Home
Projects Using Ogre
Recommended Reading
Contractors
Wiki
Immediate Wiki Tasklist
Wiki Ideas
Wiki Guidelines
Article Writing Guidelines
Wiki Styles
Wiki Page Tracker
Ogre Wiki Help
Ogre Wiki Help Overview
Help - Basic Syntax
Help - Images
Help - Pages and Structures
Help - Wiki Plugins
Toolbox
Freetags
Categories
List Pages
Structures
Trackers
Statistics
Rankings
List Galleries
Ogre Lexicon
Comments
History: Current Ogre Features
View page
Source of version: 25
(current)
{redirect url="https://www.ogre3d.org/about/features"} {maketoc showhide="y"} !!Productivity features * Simple, easy to use OO interface designed to minimise the effort required to render 3D scenes, and to be independent of 3D implementation e.g. {LEX()}Direct3D{LEX}, {LEX()}OpenGL{LEX}, etc. * Extensible example framework makes getting your application running is quick and simple. * Common requirements like render state management, hierarchical culling, dealing with transparency are done for you automatically saving you valuable time. * Clean, uncluttered design and full documentation of all engine classes. * Fully OO design allows you to extend the engine's functionality through plugins and subclasses with very little effort. !!Platform & 3D API support * Direct3D 9 & 11, OpenGL (incl. ES, ES2, ES3 and OGL3+) and WebGL (Emscripten) support * Windows (all major versions), Linux, Mac OSX, Android, iOS, Windows Phone & WinRT support * Builds on various compilers such as MSVC, GCC 3+ or Clang !!Material / Shader support * Powerful material declaration language allows you to maintain {LEX()}material{LEX} assets outside of your code * Supports {LEX()}vertex{LEX} shader and fragment programs (shaders), both low-level programs written in assembler, and high-level programs written in: {LEX()}Cg{LEX}, Direct X 9 {LEX()}HLSL{LEX}, or OpenGL {LEX()}GLSL{LEX}. Provides automatic support for many commonly bound constant parameters like worldview matrices, light state information, object space eye position etc * Supports the complete range of fixed function operations such as multitexture and multipass blending, texture coordinate generation and modification, independent colour and alpha operations for non-programmable hardware or for lower cost materials * Multiple {LEX()}pass{LEX} effects, with pass iteration if required for the closest 'n' lights * Support for multiple material techniques means you can design in alternative effects for a wide range of cards and OGRE automatically uses the best one supported * Material LOD support; your materials can reduce in cost as the objects using them get further away * Load textures from PNG, JPEG, TGA, BMP, PVRTC or DDS files, including unusual formats like 1D textures, volumetric textures, cubemaps, HDR (high dynamic range) and compressed textures (DXT/S3TC) * Support for dynamic textures in all supported formats, for efficient playback of movies and other realtime content on a texture !!Meshes * Flexible mesh data formats accepted, separation of the concepts of vertex buffers, index buffers, vertex declarations and buffer mappings * Export from many modelling tools including Milkshape3D, 3D Studio Max, Maya, ((Tools: Blender|Blender)) and Wings3D * Skeletal animation, including blending of multiple animations and variable bone weight skinning * Biquadric Bezier patches for curved surfaces * Progressive meshes ({LEX()}LOD{LEX}) * OpenGL Style Primitive Creation !!Scene Features * Highly customisable, flexible scene management, not tied to any single scene type. Use predefined classes for scene organisation if they suit or plug in your own subclass to gain full control over the scene organisation. While other engines are limited due to the fact that they are geared towards a specific scene type, OGRE allows you to efficiently render any type of scene you can conceive. * Generic {LEX()}SceneManager{LEX} hierarchically culls by bounding volumes * BSP-based plugin allows fast indoor renders, loading Quake3 levels inc. shader script parsing support * Octree plugin allows you to cull generic scenes based on an octree * Terrain plugin allows you to render geo-mipmapped terrains * Hierarchical scene graph; nodes allow objects to be attached to each other and follow each others movements, articulated structures etc * Set up spline paths for scene objects, including entities and cameras, which can then be animated easily !!Special Effects * Particle Systems, including easily extensible emitters and affectors (customizable through plugins). Systems can be defined in text scripts for easy tweaking. Automatic use of particle pooling for maximum performance * Support for skyboxes, skyplanes and skydomes, very easy to use * Billboarding for sprite graphics * Transparent objects automatically managed (rendering order & depth buffer settings all set up for you) * Overlay system allow you to build HUDs and menus using 2D or 3D objects * Flexible fog control * Software dot3 bump mapping * Cube mapping * Post-processing Effects !!Misc features * Common resource infrastructure for memory management and loading from archives (ZIP, PK3) * Flexible plugin architecture allows engine to be extended without recompilation * 'Controllers' allow you to easily organise derived values between objects e.g. changing the colour of a ship based on shields left * Debugging memory manager for identifying memory leaks * ((OgreXmlConverter|XMLConverter)) to convert efficient runtime binary formats to/from XML for interchange or editing * Initializing Ogre with ((Custom GPU Capabilities|custom GPU capabilities)) to test and tweak your OGRE application as it would appear on older hardware. * Framework for integration with other libraries such as physics and collision via the ReferenceAppLayer, allowing you to tie the OGRE world geometry to the physics and collision libraries of your choice. This gives you the flexibility to use the libraries that are right for you, rather than being constricted to a single library. Many people are already using [http://opende.sourceforge.net/|ODE], [http://www.tokamakphysics.com/|Tokamok] (via [http://www.ogre3d.org/phpBB2/viewtopic.php?t=3095|Ogretok]), ((-Newton|Newton)), ((-ODE|ODE)) and [http://www.codercorner.com/Opcode.htm|OPCODE] for physics / collision detection, but you can use any library you like. --- Alias: (alias(CurrentOgreFeatures))
Search by Tags
Search Wiki by Freetags
Latest Changes
One Function Ogre
IDE Eclipse
FMOD SoundManager
HDRlib
Building Ogre V2 with CMake
Ogre 2.1 FAQ
Minimal Ogre Collision
Artifex Terra
OpenMB
Advanced Mogre Framework
...more
Search
Find
Advanced
Search Help
Online Users
159 online users