In my previous rant about dynamic exposure in Elite Dangerous (which honestly applies to any other space game made to date), I made a rough calculation to predict the brightness of stars as they should realistically appear in photos taken in outer space. My prediction was, that,
- for an illumination of similar strength to that on earth,
- if the sunlit parts are properly exposed,
- and with an angular resolution of about 2 arc minutes per pixel,
then the pixel-value of a prominent star should be in the order of 1 to 3 (out of 255, in 8-bit sRGB encoding). Since then I was curious to find some real world validation for that fact, and it seems I have now found it.
I am a backer of the upcoming Elite Dangerous game and have participated in their premium beta programme from the beginning, positively enjoying what was there at the early time. ‘Premium beta’ sounds like an oxymoron, paying a premium for an unfinished game, but it is nothing more than purchasing the same backer status as that from the Kickstarter campaign.
I came into contact with the original Elite during christmas in 1985. Compared with the progress I made back then in just two days, my recent performance in ED is lousy; I think my combat rating now would be ‘competent‘.
But this will not be a gameplay review, instead I’m going to share thoughts that were inspired while playing ED, mostly about graphics and shading, things like dynamic range, surface materials, phase curves, ‘real’ photometry, and so on; so … after I loaded the game and jumped through hyperspace for the first time (actually the second time), I was greeted by this screen filling disk of hot plasma:
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. Continue reading
I was kindly invited by Wolfgang from Confetti FX to speak at the FMX 2013 conference about physically based shading (within the scope of the Real Time Rendering day). Since I remembered the FMX as a conference for visual arts, I made the presentation intentionally non-technical, for fear of alienating the listeners. In retrospect, my guess was a bit too conservative, as there were quite a number of programmers in the audience.
Nevertheless, here are the slides for download (with all notes included). The Keynote format is the original and the Powerpoint format was exported from that and is a little broken, so you should use the Keynote version if you can read it.
Download “FMX 2013 Slides (Keynote format)” fmx-11.zip – Downloaded 1937 times – 8 MB
Download “FMX 2013 Slides (Powerpoint format)” fmx-111.zip – Downloaded 3099 times – 8 MB
I just got news that Velvet Assassin has been ported over to the Mac and is available on the App Store! However, I was not at all involved in the Mac port and I don’t know the developers who did—it came as a surprise to me as to anyone else in the former team. Here is a direct iTunes link: http://itunes.apple.com/app/id586878367.
Shader Bug on ATI graphic cards
Unfortunately there is a shader bug with ATI graphics chips. It happened to me while trying it out on a 2011 iMac with an ATI Radeon HD 5670. I got reports from friends that this is not a problem of the Mac port itself but it happens on PC too. The problem is related to ATI chips with drivers that are newer than 2010 or so. Here is a screenshot:
Here are some philosophical and rendering-related questions that I took home from the last vacation. What’s the color of clouds? The standard answer would be, white.
What’s the color of snow? Again, white. Ok, then look at the following picture, where the snow seems considerably whiter. This is the case in almost all photos that I took.
There is an image on Wikipedia from the same general area on which the brightness difference between clouds vs snow is even more pronounced. If you look at the directly lit parts of the snow and consider it white (#ffffff), then the directly lit parts of the clouds are at most 50% grey (#bbbbbb). Is that an evidence of air pollution? Unlikely! (At least not in Tyrol).
I finally got around to write some comments on this years Advances in Real Time Rendering held at SIGGRAPH 2011. Thanks to the RTR-team for making the notes available. The talk about physically-based shading in Call Of Duty has already been mentioned in my previous post. So, in no particular order:
Rendering in Cars 2
Christopher Hall, Robert Hall, David Edwards (AVALANCHE Software)
At one point, the talk about rendering in Cars 2 describes how they use pre-exposed colors as shader inputs to avoid precision issues when doing the exposure after the image has been rendered. I have employed pre-exposed colors with dynamic exposure in the past, and I found them tricky to use. Since there is a delay in the exposure feedback (you must know the exposure of the previous frame to feed the colors for the next frame) you can even get exposure oscillation!
It is good to see how physically based shading is finally gaining momentum in real time graphics and games. This is something I have been advocating for a long time. Developers are spreading the word. I was especially surprised to learn about Call of Duty: Black Ops joining the club . Even a slick 60Hz-shooter with no cycles to spare can afford to do PBS today!
This leads me to the topic of this post, the normalization of the Blinn-Phong specular highlight. Why am I writing about it? It came to my mind recently with the current batch of publications from people adopting physically based shading models. This got me checking the maths again and I compiled a list with normalization factors for different shading models, given here in this post. I would also like to elaborate a little on the model that I wrote about in ShaderX7 . Be aware this post is a large brain dump.