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 have experimented recently with zone plates, which are the 2‑D equivalent of a chirp. Zone plates make for excellent test images to detect deficiencies in image processing algorithms or display and camera calibration. They have interesting properties: Each point on a zone plate corresponds to a unique instantaneous wave vector, and also like a gaussian a zone plate is its own Fourier transform. A quick image search (google, bing) turns up many results, but I found all of them more or less unusable, so I made my own.
Zone Plates Done Right
I made the following two 256×256 zone plates, which I am releasing into the public so they can be used by anyone freely.
This page is my personal collection of highlights from GDC 2014. I was not able to attend in person, so I had to rely on Twitter to get updated. The immersion was not perfect, but some of the thrill was definitely carried over. So here it goes (in release order): Continue reading
So out of a whim I just embarrassed myself and tried to write in (probably wrong) latin that I joined twitter. You can follow me under: @aries_code.
If you wonder how this came about, this was my train of thought:
- Twitter has something to do with birds
- Birds have fancy latin species names
- The species name for Sparrow is Spasser domesticus
- This doesn’t sound too fancy …
- How do you say ‘I joined twitter’ in latin anyway?
But then I discovered that I am onto something: According to one argument, the brand name of Twitter should have been ‘Titiatio’, had it existed in antiquity. And according to another argument, latin should be an ideal twitter language, because it is both short and expressive.
But I digress. If you are into computer graphics, then you know of Johann Heinrich Lambert, the eponym of our beloved Lambertian refelectance law. The book where he established this law, Photometria, is written entirely in latin—now this is hardcore!
So, now you know what to do if you want to stand out in your next SIGGRAPH paper …
I vaguely remember someone making a comment in a discussion about sRGB, that ran along the lines of
So then, is sRGB like µ‑law encoding?
This comment was not about the color space itself but about the specific pixel formats nowadays branded as ‘sRGB’. In this case, the answer should be yes. And while the technical details are not exactly the same, that analogy with the µ‑law very much nails it.
When you think of sRGB pixel formats as nothing but a special encoding, it becomes clear that using such a format does not make you automatically “very picky of color reproduction”. This assumption was used by hardware vendors to rationalize the decision to limit the support of sRGB pixel formats to 8‑bit precision, because people “would never want” to have sRGB support for anything less. Not true!I’m going to make a case for this later. But first things first.
Spellforce 2 was released in 2006 and will be 8 years old by april. Nevertheless, the third add-on of the series shipped a month ago. Talk about a long seller!
Of course I’m attached to SF2 because I wrote many parts of its engine back then. This time I was briefly involved to help the developers include my attribute-less normal map algorithm. The original SF2 did not have any normal maps, and therefore none of the original art assets comes with tangent space information. This is an ideal scenario to pimp up the visuals without touching the geometry, simply by making a shader change and adding normal maps. Continue reading
Sometimes reality looks like if it was taken straight out of Half-Life.
EDIT 2019: I have converted the original slides to PDF format and also made minor corrections. See this post for details. The download is at the end of this page.
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 PDF with Notes” fmx-11-revised.pdf – Downloaded 1479 times – 15 MB
This post is a follow-up to my 2006 ShaderX5 article  about normal mapping without a pre-computed tangent basis. In the time since then I have refined this technique with lessons learned in real life. For those unfamiliar with the topic, the motivation was to construct the tangent frame on the fly in the pixel shader, which ironically is the exact opposite of the motivation from :
Since it is not 1997 anymore, doing the tangent space on-the-fly has some potential benefits, such as reduced complexity of asset tools, per-vertex bandwidth and storage, attribute interpolators, transform work for skinned meshes and last but not least, the possibility to apply normal maps to any procedurally generated texture coordinates or non-linear deformations. Continue reading