Game Tech: How BioShock Infinite's Lighting Works
An anonymous reader writes "The Principal Graphics Programmer for BioShock Infinite has put up a post about how the game's lighting was developed. We don't usually get this kind of look into the creation of AAA game releases, but the studio shut down recently, so ex-employees are more willing to explain. The game uses a hybrid lighting system: direct lighting is dynamic, indirect uses lightmaps, shadows are a mix. 'Dynamic lighting was handled primarily with a deferred lighting/light-pre pass renderer. This met our goals of high contrast/high saturation — direct lighting baked into lightmaps tends to be flat, mostly because the specular approximations available were fairly limited.' It's interesting how much detail goes into something you don't really think about when you're playing through the game. 'We came up with a system that supported baked shadows but put a fixed upper bound on the storage required for baked shadows. The key observation was that if two lights do not overlap in 3D space, they will never overlap in texture space. We made a graph of lights and their overlaps. Lights were the vertices in the graph and the edges were present if two lights' falloff shapes overlapped in 3D space. We could then use this graph to do a vertex coloring to assign one of four shadow channels (R,G,B,A) to each light. Overlapping lights would be placed in different channels, but lights which did not overlap could reuse the same channel. This allowed us to pack a theoretically infinite number of lights in a single baked shadow texture as long as the graph was 4-colorable.'"
it seems to me like the interest is in the minutia, specifically how they achieved a more film-like quality to their renders without wasting overhead on expensive and unnecessary raytracing. Is it worth a story on slashdot? probably not. Is this response a gross oversimplification? sure!
See, this is something actually nerdy but nobody gives a shit. /. is dead.
Hail Eris, full of mischief...
E pluribus sanguinem
The best part is that most of the people complaining about it or making idiotic comments without reading the article are the same people who will, tomorrow, be bitching about "slashvertisements" and "important world news isn't news for nerds!", etc. They act like they want slashdot to be a recondite technical news and discussion site, but when they are actually given that, the comments sections languish and are filled with people who know little or nothing about the subject matter deriding it to feel better about themselves.
Beta is a drop in the bucket next to how shitty and anti-intellectual the community has become.
Ignoring the obvious performance issues you can't make any substantial changes to the behavior of the engine. Take a look at most games shipped with Unreal and you'll see they use different middleware (audio, pathfinding + others) to what is in the shipped engine. This is not something which can be practicably done via UnrealScript. Even if you could manage to make it work the performance will be appalling. Transitions between UnrealScript and native code are expensive.
No, it's an excellent technical write up for those in the know about 3D lighting but I'm still at a loss for anything to actually discuss about it. I think even the old guard are 99.9% out of their depth trying to discuss whether any of the techniques used were appropriate or optimal. It's not even remotely trying to make it accessible to the general nerd as it's throwing references, acronyms and low level implementation details at you at a blazing pace with little to no explanation. The only summary I got away with was "smart man, if I ever need anyone to do something like that you're the kind of guy I'd hire" which I suppose might be the point, but it's not my little phd-class niche of expertize so I'm not going to argue with him. So what exactly would you like to discuss?
Live today, because you never know what tomorrow brings
I actually found this story quite useful as the references it gave showed that some of the problems they solved are very similar to a research problem that I am working on in electron microscopy. That being said, the article was very technical and outside of my understanding in some of the more video game related areas. I'm happy to see this on slashdot.
Oh stop it. You're overreacting.
So what if the article does not have a huge conversation tacked on. You expect 500 comments about video game lighting? While the article is in fact very nerdy and jives with the whole "news for nerds" thing. It's one of those articles that caters to a limited number of people, namely video game developers. For most people its overly technical and beyond their understanding. There are plenty of other technical articles that don't get a large number of posts either.