volca02 / openDarkEngine

Rewrite of the Dark Engine by Looking Glass
GNU General Public License v2.0
147 stars 18 forks source link

Replacement of the rendering engine #26

Open volca02 opened 6 years ago

volca02 commented 6 years ago

After trying to force Ogre3d to do stuff the way it's needed, which has proven to be harder on every step (notably light list population for movable objects, lately), it's time to depart ways with it and implement stuff differently. Obvious choice here is not to reinvent wheel when it comes to rendering API abstractions, which should mean easier transitions to new platforms, among other things.

This change will most likely mean shift away from fixed function rendering, as well as getting rid of Ogre's VFS support that was hijacked to be used here. This project does not necessarily need a full blown scene graph implementation, although there has to be support for object attachments - f.ex. camera can be attached to sub-objects of other objects, AI often has keys or valuables on the belt, etc.

Scene management code currently present in scenemanager/ directory will be partially scrapped, partially moved back to worldrep service, that should newly be responsible for static geometry management and rendering. Note, it would be nice to allow viewpoint instances to exist, so stuff like dynamic shadows instead of pre-baked lightmaps is possible later on.

Initial amount of work can be done sideways - loading of BIN (both LGMM and LGMD) files and displaying them can be prototyped in a separate project and backported. The same is probably true for VFS management code, which should live in a fitting service (did original Dark have any service dedicated to VFS?).