I always wondered when X‑Plane would jump on the PBR bandwagon. I like X‑Plane, I think its the best actively-developed* flight simulator out there, but I always felt that shading could be better. For instance, there is this unrealistic ‘Lambert-shaded’ world terrain texture, which becomes too dark at sunset; another is the dreaded ‘constant ambient color’ that plagues the shading of objects.
Now in this post on the X‑Plane developer blog, Ben announces that Physically Based Rendering is a future development goal, yay! Then he goes on to say that, while surface shading will be a solved problem™ because of PBR, others like participating media (clouds, atmosphere) would still need magic tricks for the foreseeable future.
I’m not arguing with that. I did many magic tricks in the past all kinds of shading, surface, cloud and atmosphere included. Many can be found scattered around this blog. Here are two magic tricks which are non-disruptive and easy to implement, which could improve surface shading in X‑Plane right now:
- Replace the constant ambient term with something like hemisphere lighting [1]!
Shading in X‑Plane is mostly outdoor, so two hemisphere colors based on the sky and ground of the aircraft position does wonders to the shading of areas that are not in direct sunlight. - Use the Lommel-Seeliger law [2] for the world terrain texture!
This law is still cheap to calculate and is more appropriate for the mostly rough planetary surface, for which it has been developed [3].
(* which eliminates MSFS from the equation)
References
[1] Shawn Hargreaves (2003): “Hemisphere Lighting with Radiosity Maps”
http://www.gamasutra.com/view/feature/131226/…
[2] Fairbairn, M. B. (1999): “Planetary Photometry: The Lommel-Seeliger law”
http://adsabs.harvard.edu/full/2005JRASC..99…92F
[3] Hugo Seeliger (1887) “Zur Theorie der Beleuchtung der großen Planeten, insbesondere des Saturn”
(direct link to the relevant page in the only online version that seems to exist)
I wonder what is ‘lambda’ in reference [3] for Lommel-Seeliger law. It can’t be that it’s wavelength. Whats that?
Hallo Max,
its not entirely clear what the lambda means because he references an earlier publication of him in a quarterly (“Vierteljahresschrift”) on which the formula is based. However, later in the text, lambda is set routinely to 1 so I think it serves as an empirical parameter.
I’ve not seen this parameter in the modern version of the Lommel-Seeliger BRDF either.
Hello Christian,
thanks for explanation.
Glad to report we’ve improved our terrain lighting greatly with Lommel-Seeliger BRDF, previously we’vve used it only for moon shading. Thanks for pointing out!
Pingback: Elite Dangerous: Impressions of Deep Space Rendering | The Tenth Planet