HelpRequested
From Ogre Wiki
Help Requested
This page lists a selection of tasks that are 'nice but not essential'; things that would be useful but are not likely to be developed by the core team. If you're interested in helping out and you don't have anything specific in mind, pick something off this list and make a note that you're working on it. Don't add things to this list, these tasks are approved by the team. You can of course tackle your own choice of feature too, but we're not guaranteed to support it unless you clear it with us conceptually in the forums first.
This list has also been used as the ideas list for the Google Summer of Code.
Complete the DirectX 10 render system
There is a fledgling DirectX 10 render system in CVS HEAD right now, but it needs plenty more work doing to it in terms of implementing recommended performance characteristics for Dx10, and supporting geometry shaders and stream rendering. You'll need a Vista-capable machine for this one and a native DirectX10 card. All new features must be exposed in such a way that they are options, with detection and fallback for non-Dx10 machines.
Per polygon material ID is now supported in DirectX10 which means exporters, importers and resource system and index buffers should support this.
Support for Dx10 hardware elements that have been incorporated into GL (like geometry shaders) would also be beneficial. Making OpenGL / DirectX10 both support the new hardware features are also important since Ogre supports both seamlessly.
OpenGL also works with Windows XP for shader model 4.0 hardware (DirectX10) hardware, which means a lot of non-Vista users can use XP and still tap into the DirectX10 hardware features in OpenGL mode.
Imposters
- Automating the process of creating imposters, ie rendering a sub-scene to a texture to use on a billboard to reduce rendering complexity. Should include detecting when the view needs updating due to the camera changing position, camera mirroring and multiple cameras.
CHC/CHC++ Utility Framework
- Create an implementation of CHC/CHC++ that is usable with any hierarchical scene structure (ie not SceneManager specific, but usable from any hierarchical scene structure)
Animation Enhancements
- High-level stateful animation blending helper system, similar to AnimationBlender in the wiki, but with much more power. Such as just being able to add a new animation to the mix and have the transition and which animations it replaces or blends with automatically determined based on an initial configuration or dynamic specification. (aka BlendTree)
- Animation compression
Unified Samples Framework
- Create a single, extensible framework that can be used to view any demo and switch between then dynamically, that is easy to plug new examples into.
Scene Manager: Hybrid tree
Hybrid tree implementation allowing for spatial partionning to be composed of various subtree part (octree, kdtree, aabbtree, quadtree) optimizing static geometry using best partionning possible.
Binary format support for scripts
Serializing materials, shaders, particle systems, compositor chains and such to a binary format. Meshs are a good example of what we aim to.
A unit testing framework
An infrastructure that will enable us to define tests for OGRE and run them one after the other so we will know that status of the version, because OGRE is mainly graphic - a part of the infrastructure will be to enable running the test in a "record" mode to record a positive state - and take a screen shot, this screen shot will be compared to the result of the same test running in "test" mode.
Full scene serializing
Serialize a scene to a file and enable loading it from file.
ISO or/and USB bootable Linux of all code/demo/tools, along with complete Ogre dev Environment
The idea is being able to deliver instant Ogre dev Environment, Ogre "Demo" (both games, graphics and all compilable addons) Disc, and gather all 3D/2D rt related tools chain reader "ToolChain" setup (blender, nvidia texture tools, gimp+ dds, etc... and some win32 tools using wine (xnormal, etc.)) This ISO should be easily "updatable" by community and directly "usable" by all beginners (no complex setup required). Obviously, due to license restriction, that would be based on some linux distribution.
Off-Screen Particles
Implement "GPU gems 3. Chapter 23. High-Speed, Off-Screen Particles" - http://http.developer.nvidia.com/GPUGems3/gpugems3_ch23.html
iPhone port
Enable running OGRE on an iPhone. There is already an OpenGL ES 1.X rendersystem in existence, this needs to be tested on the iPhone and supporting platform files, Xcode projects etc created.
In Progress - masterfalcon/David Rogers
OpenGL ES 2.0
Create a new render system for OpenGL ES 2.0. The render system can be based on the OpenGL and OpenGL ES 1.0 render systems. The developer can use an OpenGL ES 2.0 emulator for easier development without special hardware - http://developer.amd.com/gpu/opengl/Pages/default.aspx or http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp#GLES2
Importer/Exporter
Adding Ogre Import/Export to the misfit model 3D gpl modeling/animation tool using QT/XML.
Misc features
Support using more the one shadow technique
Add support of having both texture shadows and stencil shadows at once.
Fixed function emulation mode
Create an option to render everything using shaders – cg shaders will be created on the fly to replace the fixed pipe-line. The code can be based on the d3d10 shader generator.

