20,741
edits
(→Status) |
|||
| 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> | ||