HDR Pipeline: Difference between revisions

Jump to navigation Jump to search
2,518 bytes added ,  16 April 2021
m
stubs based on: https://sourceforge.net/p/flightgear/mailman/message/37260282/
(https://sourceforge.net/p/flightgear/mailman/search/?q=hdr+AND+fernando)
 
m (stubs based on: https://sourceforge.net/p/flightgear/mailman/message/37260282/)
Line 1: Line 1:
{{Experimental}}
{{Experimental}}
After getting convinced to pursue this by some of the core devs, for
the past couple of days I've been working on a new Compositor
pipeline. It's still very much experimental (trying to load any
scenery crashes FG!), but it's somewhat working under very special
circumstances.
Here are some screenshots of the c172p on the Nimitz. Aircraft
carriers are a nice substitute to actual terrain :)
https://i.imgur.com/onHZ5te.png
https://i.imgur.com/I65vYm4.png
https://i.imgur.com/omj4REY.png
A few implementation details for the curious:
- It's a deferred renderer. Most post-processing effects integrate
very nicely with a deferred pipeline, and modern forward rendering
techniques usually require a depth prepass. I haven't found an easy
way to share culling results between passes in OSG so that the main
forward pass reuses the culling information gathered during the depth
prepass, so I preferred to just go deferred.
- Entirely PBR-based. Old/legacy materials try to "translate" from the
legacy ambient/diffuse/specular model to PBR metalness/roughness.
Still, the classic pipeline isn't going anywhere. If a particular
aircraft is very broken under this pipeline, the user is free to use
ALS/classic.
- HDR and eye adaptation. Lighting values are written to HDR buffers
and then tone mapped based on a exposure setting. This exposure
parameter is calculated automatically based on the average scene
luminance (like a camera on the Auto setting would do), but there is
the possibility of lowering/increasing the exposure manually if the
user feels like the scene is too bright/dark. Maybe the pilot is
wearing sunglasses? :)
- Real time environment mapping. At the start of the frame we render
to a cubemap and subsequent passes use this information to evaluate
indirect lighting.
- Miscellaneous post-processing passes like ambient occlusions, FXAA,
bloom, etc.
Again, this is all *very* experimental for now. A lot of things are
broken because I'm forcing the use of core profile shaders (thanks
Nvidia for letting me do this under a compatibility profile context!),
so this is nowhere near usable. Still, I'm planning to release this to
next in the next week or so because it doesn't break anything:
everything is in FGData and on a different compositor pipeline, so
Classic and the C++ core are completely unaffected. In general the
move to the core profile will probably fix a lot of the issues that
this pipeline currently has.<ref>https://sourceforge.net/p/flightgear/mailman/message/37260282/</ref>




Navigation menu