From KlayGE
Jump to: navigation, search

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.

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)


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.