Wishlist
This is a list of suggested additions for the further versions of KlayGE.
This list is intended as a stimulus to further work. Some of the items on this list already have one or more concrete proposals associated with them, others are vague hopes, and most are somewhere in between. Similarly, the scope of these items extend from minor changes in an existing interface to major research projects.
Contents
- 1 The wish list
- 1.1 Support of pose animation
- 1.2 Integrate physics System
- 1.3 Integrate modern GUI System
- 1.4 Vector texture mapping
- 1.5 Software rendering plugin
- 1.6 HTML5 based UI system
- 1.7 Get rid of DirectShow
- 1.8 Physics & math on GPU
- 1.9 Powerful memory manager
- 1.10 GPU audio process
- 1.11 Command buffer recording and replaying
- 1.12 Realtime Catmull-Clark Subdivision
- 2 On going
- 3 Accomplished
The wish list
Support of pose animation
Requester: cin
Add support of pose animation (vertex and normal with any weight). Example: We have original model and and two "shots" with different positions of some vertex. In model we have "animation track" which contains weights on different time. When engine play the track, it get interpolated weight and compute new vertexes positions relative by original. Also interpolated normals. (May be this need do more better than I wrote :)
Integrate physics System
Requester: cin
Add support physics engine (PhysX, Newton, Bullet, Tokamak, ODE)
Integrate modern GUI System
Requester: cin
Need use more progressive GUI system as plugin. MyGUI is good choice.
Vector texture mapping
Support texture stores vectors in texels. A font engine can be built on top of it.
Software rendering plugin
D3D10-like software rendering plugin. Support all parts in D3D10+ with pure software.
HTML5 based UI system
Integrate a HTML5 renderer so that the UI system can be presented by HTML5.
Get rid of DirectShow
Replay video/audio without DirectShow. One option is take .ogm as container format, Theora as video codec, and Vorbis as audio codec. Subtitle is also supported.
Physics & math on GPU
Requester: Ye Wu
Physics simulation, basic linear algebra with GPGPU.
Powerful memory manager
Support memory allocation/deallocation cross DLL boundaries, leak detection, and pool. Better to be Lock-free or wait-free.
GPU audio process
Process audio (3D, effect) by GPU and send raw data to audio card.
Command buffer recording and replaying
Capture all DX/OGL API calls in a thread and replay the buffer in other threads.
Realtime Catmull-Clark Subdivision
Requester:Bo Zhou
Implement the GPU subdivision algorithm in Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches.
On going
GPU based tessellator
Support hardware tessellation on D3D11/D3D10 (ATI), shader based tessellation on D3D9/OpenGL. (D3D11 tessellator is supported)
Realtime global illumination
Requester: Ye Wu
Global illumination in realtime. Shadow, refraction, reflection, translucency and bounces are supported. (Shadow and one bounce are done)
Accomplished
Deferred shading
Deferred shading based rendering with anti-alias and transparency. (showed as a sample in KlayGE 3.8.0)
Depth peeling
Order-independent transparency. (showed as a sample in KlayGE 3.7.0)
Screen space ambient occlusion
Use SSAO to add details in dark places. (showed as a sample in KlayGE 3.8.0)
Mobile support
OpenGL ES 2.0 plugin and D3D mobile plugin.
Terrain rendering
Large scale terrain rendering.