Post Processing
As suggested on https://forum.openmw.org/viewtopic.php?f=6&t=4425, by using the 'effectcompositor' library we can provide a way for modders to write screen-space effects (HDR, SSAO etc) much like MGE allows.
The remaining problems with the "initial attempt":https://github.com/scrawl/openmw/tree/effectcompositor are:
- Chaining effects
Since people will commonly want to use more than one effect, we need a way to chain them together, which does not appear to be working at present. Possible solutions to this:
a) figure out why chaining by way of a node hierarchy does not work, and fix it
or b) write a function that merges two EffectCompositors into one EffectCompositor, linking the final output of the first compositor into the scene input of the second one.
- Uniform updates
The way shader uniforms are being updated in the EffectCompositor appears to have a threading bug (see https://wiki.openmw.org/index.php?title=Rendering_Architecture#Threading_considerations). This could be solved with a double buffering implementation. Ideally just the StateSets/Uniforms would be double buffered, but as an intermediate (easier) solution we can just double everything (including textures)
- Documentation
Write some cool example effects. Document the XML format in our documentation.
(RM-4067 from redmine: created on 2017-09-02 by scrawl ., )