Orbiter Visualisation Project
This project started as mirror of Martin Schweiger's SVN repository on Sourceforge, but quickly morphed into a development repository for OVP DirectX clients. So far, it hosts D3D9Client and D3D11Client, with the former (mainly implemented by Orbiter-Forum user jarmonik) mostly for reference.
This Wiki focus on D3D11Client development.
Create a vanilla Orbiter installation. Get the latest released version package here. Unzip to a temporary location, then copy the content of the extracted folder "face-ovp-<some_hash>" to your created Orbiter installation (if asked for overwriting folders or files, click yes). Further instructions here.
Currently the project runs three named branches with some bookmarks to mark heads:
|(default)||Mirror of SVN development - core OVP|
|D3D9Client||Mirror of jarmonik's releases and CodePlex repository|
|D3D9Client||(Orbiter130101)||Mirror of jarmonik's beta releases|
|D3D11Client||Face's work branch (deprecated)|
|D3D11Client||(master)||Project master for Orbiter beta|
|D3D11Client||(O2010P1)||Project master for Orbiter 2010 Patch 1|
|D3DxClient||(<user>/master)||user's work branch|
The following points are open for discussion and should reflect a first draft of a roadmap:
- Properly implement beacons for vessels, including proper lighting by them - completed.
- Implement per-pixel lighting for vessel, that would also support variable lights count - completed, supports up to 8 beacons, and number can be increased should the need arise.
- Make code compatible with latest Orbiter Beta release - completed, now the module is built against and compatible with Orbiter 111105 beta build.
- Adaptive tesselation for planet rendering. And/or Phong per-pixel lighting for terrain.
- Problem: currently specular highlights looks very bad at close distance due to large size of trianges.
- Self-shadowing parts of the vessel.
- Problem: shadow maps impractical due to multiple passes neccessary to create maps (one pass - one light source).
- Suggestion: apply Parralax Occlusion Mapping or similar approach to fix it up.
- Add post-processing effects like lense glare.
- Computing particle systems' state propagation in compute shaders to free up CPU.
- Design API for vessel developers. Possibly custom shaders, advanced particle effects.