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
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.