Our Properties: Gamasutra GameCareerGuide IndieGames Indie Royale GDC IGF Game Developer Magazine GAO
My Message close
Latest News
spacer View All spacer
 
February 9, 2012
 
Analyst questions validity of unusual January NPD results [2]
 
DICE 2012: Blizzard's Pearce on World Of Warcraft's launch hangover
 
DICE 2012: Insomniac's Price on Quality Of Life, ditching the 'Loser' badge [1]
spacer
Latest Features
spacer View All spacer
 
February 9, 2012
 
arrow Principles of an Indie Game Bottom Feeder [14]
 
arrow Postmortem: CyberConnect 2's Solatorobo: Red the Hunter [1]
 
arrow Jerked Around by the Magic Circle - Clearing the Air Ten Years Later [39]
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
February 9, 2012
 
Airtight Games
Art Director
 
Telltale Games
Core Technology - Senior Systems Engineer
 
High 5 Games
Technical Artist
 
XEOPlay Inc
Game Developer (Mobile)
 
Kabam
Lead Software Engineer - Flash
 
Kabam
Lead Software Engineer-Ruby
spacer
Blogs

  Gamma-Correct Lighting
by David Rosen on 02/04/10 11:52:00 pm   Expert Blogs   Featured Blogs
Post A Comment Share on Twitter Share on Facebook RSS
 
 
  Posted 02/04/10 11:52:00 pm
 

I have been trying to avoid working on graphics recently in order to work on gameplay, but there was one feature I just had to implement. It has no performance cost, and makes a big difference in how the game looks! This feature is gamma-correct lighting. You can see the new lighting on the right side of this picture. 

You can see that the picture on the left has a harsher "CGI" look to it. To understand why this is, you first have to understand the 'gamma' curve. The gamma curve is used by digital displays to more efficiently encode color information for human perception. Here is a comparison between physically linear brightness (how many photons are emitted), and perceptually linear brightness (numerical differences correspond to perceived differences at any point). 


Adapted from the Wikipedia gamma correction article[1]
The lighting equations used for computer graphics are all based on physics, and thus assume that brightness 1.0 emits twice as many photons as brightness 0.5. However, on a computer screen, this assumption is not correct. Until very recently, there was nothing to be done about this, so we just lived with lighting that is physically incorrect. However, modern graphics cards have tools to support gamma-correct lighting, which you can see below on the right.

This is especially important for specular highlights (shiny areas). With incorrect lighting, specular highlights usually appear blown-out and hyper-saturated. To compensate, 3D artists often make specular maps that are the opposite color of the base surface, so that they cancel out and look white. However, with gamma-correct lighting, this is unnecessary; the diffuse color doesn't bleed into the specular color in the same way. You can see this by comparing the scars in the picture below. The lighting on the right is gamma-correct. 


Please ignore the glazed look in his eyes -- I will eventually add a special shader to render their surface shininess and retinal reflections.

To add gamma-correction to your game you just need to do two things -- convert textures to physically-linear space when you load them, and convert the framebuffer back to perceptually-linear space when you display it. In OpenGL you can just convert the textures with the texture_sRGB extension, and convert the framebuffer with the framebuffer_sRGB extension. These operations are free -- they use dedicated hardware, and have no performance cost. 


Bonus comparison shot!
If you are interested in learning more about gamma-correct lighting, you can read NVIDIA's "The Importance of Being Linear", Naty Hoffman's "Adventures with Gamma-Correct Rendering", or Bungie's "HDR the Bungie way".  If you have the latest alpha build of Overgrowth, you can turn on gamma-correct lighting by opening the "config.txt" file in the "Data" folder, and setting "gamma_correct" and "post_effects" to true.

Follow us on the Wolfire Blog!


Facebook iconModDB iconSteam iconTwitter iconYouTube icon

 
 
Comments


none
 
Comment:
 




 
UBM Techweb
Game Network
Game Developers Conference | GDC Europe | GDC Online | GDC China | Gamasutra | Game Developer Magazine | Game Advertising Online
Game Career Guide | Independent Games Festival | Indie Royale | IndieGames

Other UBM TechWeb Networks
Business Technology | Business Technology Events | Telecommunications & Communications Providers

Privacy Policy | Terms of Service | Contact Us | Copyright © UBM TechWeb, All Rights Reserved.