A Valve engineer fixed 3D lighting so hard he had to tell all the graphics card manufacturers their math was wrong, and the reaction was: 'I hate you'
A Valve engineer fixed 3D lighting so hard he had to tell all the graphics card manufacturers their math was wrong, and the reaction was: 'I hate you'
…ish
The maths was right, except it was all being done on colour values than already had the CRTs response curve baked into them. You may have heard of “gamma correction”. Well, this is when you correct an images colour values for the display you’ll view it on.
Blending before gamma correction and after gamma correction produce very different results. The cards were doing it after. This story is about doing it before.
Paul Debevec had similar observations around the same time. His work at the time was all about HDRI and that was put into Source a few years later.
… It’s the headline on PC Gamer.
Also what does “stealing from Reddit”, an aggregator of Link’s, even mean?
Couldn’t have even changed the obnoxious thread title from when you stole this from reddit?
I just crossposted it from Lemmy and didn’t bother changing the title. I’m not the one who took it from Reddit so calm down.
Okay, I just looked and it was @[email protected] who originally posted it to Lemmy so they’re probably the one who “stole” the title from Reddit. Be mad at them.
"It's a bit technical," begins Birdwell, "but the simple version is that graphics cards at the time always stored RGB textures and even displayed everything as non linear intensities, meaning that an 8 bit RGB value of 128 encodes a pixel that's about 22% as bright as a value of 255, but the graphics hardware was doing lighting calculations as though everything was linear.
Jesus Christ, I knew this was a problem with image editing software back then, but I never knew, that GPU manufacturers fucked it up as well. How did this happen?
I have a good guess how this would actually happen:
PM: We need this
Specialist: makes this (doesn’t check results)
QC: Looks good (but doesn’t actually check)
Some updates later may further break the functionality. And as long as numbers aren’t blatantly wrong (think 0s everywhere, for example) and nobody checks thoroughly enough, the issue will remain.
I have unfortunate experience of being a part of such a story, haha. There are ways to counter it. Mainly, their project documentation either wasn’t up to par or wasn’t used as a reference during creation and tests. Either way, it’s negligence.
Allow me to introduce you to perceptual color spaces, CIELAB, CIELUV and HSLuv, something I needed for a project I was working on a few years ago: