HDR Pipeline: Difference between revisions

Jump to navigation Jump to search
m
Line 32: Line 32:
A few implementation details for the curious:
A few implementation details for the curious:


* It's a deferred renderer. Most post-processing effects integrate
* It's a deferred renderer. Most post-processing effects integrate very nicely with a deferred pipeline, and modern forward rendering
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
techniques usually require a depth prepass. I haven't found an easy
forward pass reuses the culling information gathered during the depth prepass, so I preferred to just go deferred.
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
* Entirely PBR-based. Old/legacy materials try to "translate" from the legacy ambient/diffuse/specular model to PBR metalness/roughness.
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
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.
ALS/classic.


* HDR and eye adaptation. Lighting values are written to HDR buffers
* HDR and eye adaptation. Lighting values are written to HDR buffers and then tone mapped based on a exposure setting. This exposure
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
parameter is calculated automatically based on the average scene
the possibility of lowering/increasing the exposure manually if the user feels like the scene is too bright/dark. Maybe the pilot is
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? :)
wearing sunglasses? :)


* Real time environment mapping. At the start of the frame we render
* Real time environment mapping. At the start of the frame we render to a cubemap and subsequent passes use this information to evaluate
to a cubemap and subsequent passes use this information to evaluate
indirect lighting.
indirect lighting.


* Miscellaneous post-processing passes like ambient occlusions, FXAA,
* Miscellaneous post-processing passes like ambient occlusions, FXAA,bloom, etc.
bloom, etc.


Again, this is all *very* experimental for now. A lot of things are
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
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
Nvidia for letting me do this under a compatibility profile context!),
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
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>
this pipeline currently has.<ref>https://sourceforge.net/p/flightgear/mailman/message/37260282/</ref>


Navigation menu