X-​Plane announces Physically Based Rendering

I always won­dered when X-​Plane would jump on the PBR band­wagon. I like X-​Plane, I think its the best actively-​developed (*) flight sim­u­la­tor out there, but I always felt that shad­ing could be bet­ter. For instance, there is this unre­al­is­tic ‘Lambert-​shaded’ world ter­rain tex­ture, which becomes too dark at sun­set; another is the dreaded ‘con­stant ambi­ent color’ that plagues the shad­ing of objects.

Now in this post on the X-​Plane devel­oper blog, Ben announces that Phys­i­cally Based Ren­der­ing is a future devel­op­ment goal, yay! Then he goes on to say that, while sur­face shad­ing will be a solved prob­lem™ because of PBR, oth­ers like par­tic­i­pat­ing media (clouds, atmos­phere) would still need magic tricks for the fore­see­able future. Con­tinue read­ing

Journey into the Zone (Plates)

I have exper­i­mented recently with zone plates, which are the 2-​D equiv­a­lent of a chirp. Zone plates make for excel­lent test images to detect defi­cien­cies in image pro­cess­ing algo­rithms or dis­play and cam­era cal­i­bra­tion. They have inter­est­ing prop­er­ties: Each point on a zone plate cor­re­sponds to a unique instan­ta­neous wave vec­tor, and also like a gauss­ian a zone plate is its own Fourier trans­form. A quick image search (google, bing) turns up many results, but I found all of them more or less unus­able, so I made my own.

Zone Plates Done Right

I made the fol­low­ing two 256×256 zone plates, which I am releas­ing into the pub­lic so they can be used by any­one freely. Con­tinue read­ing

Ego mecum conjungi …

… Twit­ter!


So out of a whim I just embar­rassed myself and tried to write in (prob­a­bly wrong) latin that I joined twit­ter. You can fol­low me under: @aries_code.

If you won­der how this came about, this was my train of thought:

  • Twit­ter has some­thing to do with birds
  • Birds have fancy latin species names
  • The species name for Spar­row is Spasser domes­ti­cus
  • This doesn’t sound too fancy …
  • How do you say ‘I joined twit­ter’ in latin anyway?

But then I dis­cov­ered that I am onto something: According to one argu­ment, the brand name of Twit­ter should have been ‘Titi­a­tio’, had it existed in antiquity. And accord­ing to another argu­ment, latin should be an ideal twit­ter lan­guage, because it is both short and expressive.

But I digress. If you are into com­puter graph­ics, then you know of Johann Hein­rich Lam­bert, the eponym of our beloved Lam­bert­ian ref­electance law. The book where he estab­lished this law, Pho­tome­tria, is writ­ten 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 …

Yes, sRGB is like µ-law encoding

I vaguely remem­ber some­one mak­ing a com­ment in a dis­cus­sion about sRGB, that ran along the lines of

So then, is sRGB like µ-law encoding?

This com­ment was not about the color space itself but about the spe­cific pixel for­mats nowa­days branded as ‘sRGB’. In this case, the answer should be yes. And while the tech­ni­cal details are not exactly the same, that anal­ogy with the µ-law very much nails it.

When you think of sRGB pixel for­mats as noth­ing but a spe­cial encod­ing, it becomes clear that using such a for­mat does not make you auto­mat­i­cally “very picky of color repro­duc­tion”. This assump­tion was used by hard­ware ven­dors to ratio­nal­ize the deci­sion to limit the sup­port of sRGB pixel for­mats to 8-​bit pre­ci­sion, because peo­ple “would never want” to have sRGB sup­port for any­thing less. Not true!Screen Shot 2014-03-06 at 19.02.54I’m going to make a case for this later. But first things first.

Con­tinue read­ing

Spellforce 2 Demons of the Past

Spell­force 2 was released in 2006 and will be 8 years old by april. Nev­er­the­less, 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 devel­op­ers include my attribute-​less nor­mal map algorithm. The orig­i­nal SF2 did not have any nor­mal maps, and there­fore none of the orig­i­nal art assets comes with tan­gent space infor­ma­tion. This is an ideal sce­nario to pimp up the visu­als with­out touch­ing the geom­e­try, sim­ply by mak­ing a shader change and adding nor­mal maps. Con­tinue read­ing

Slides of my FMX 2013 presentation on Physically Based Shading

I was kindly invited by Wolf­gang from Con­fetti FX to speak at the FMX 2013 con­fer­ence about phys­i­cally based shad­ing (within the scope of the Real Time Ren­der­ing day). Since I remem­bered the FMX as a con­fer­ence for visual arts, I made the pre­sen­ta­tion inten­tion­ally non-​technical, for fear of alien­at­ing the lis­ten­ers. In ret­ro­spect, my guess was a bit too con­ser­v­a­tive, as there were quite a num­ber of pro­gram­mers in the audience.

Screen Shot 2013-04-24 at 14.53.58

Nev­er­the­less, here are the slides for down­load (with all notes included). The Keynote for­mat is the orig­i­nal and the Pow­er­point for­mat was exported from that and is a lit­tle bro­ken, so you should use the Keynote ver­sion if you can read it.

FMX2013 (Keynote for­mat) (1701)
FMX2013 (Pow­er­point for­mat) (2510)

Followup: Normal Mapping Without Precomputed Tangents

This post is a follow-​up to my 2006 ShaderX5 arti­cle [4] about nor­mal map­ping with­out a pre-​computed tan­gent basis. In the time since then I have refined this tech­nique with lessons learned in real life. For those unfa­mil­iar with the topic, the moti­va­tion was to con­struct the tan­gent frame on the fly in the pixel shader, which iron­i­cally is the exact oppo­site of the moti­va­tion from [2]:

Since it is not 1997 any­more, doing the tan­gent space on-​the-​fly has some poten­tial ben­e­fits, such as reduced com­plex­ity of asset tools, per-​vertex band­width and stor­age, attribute inter­po­la­tors, trans­form work for skinned meshes and last but not least, the pos­si­bil­ity to apply nor­mal maps to any pro­ce­du­rally gen­er­ated tex­ture coor­di­nates or non-​linear defor­ma­tions. Con­tinue read­ing

Velvet Assassin on Mac (Patch)

I just got news that Vel­vet Assas­sin has been ported over to the Mac and is avail­able on the App Store! However, I was not at all involved in the Mac port and I don’t know the devel­op­ers who did — it came as a sur­prise to me as to any­one else in the for­mer team. Here is a direct iTunes link: http://itunes.apple.com/app/id586878367.

Shader Bug on ATI graphic cards

Unfor­tu­nately there is a shader bug with ATI graph­ics chips. It hap­pened to me while try­ing it out on a 2011 iMac with an ATI Radeon HD 5670. I got reports from friends that this is not a prob­lem of the Mac port itself but it hap­pens on PC too. The prob­lem is related to ATI chips with dri­vers that are newer than 2010 or so. Here is a screenshot:

Screen shot 2013-01-11 at 04.09.06

Con­tinue read­ing