Jump to content
Hash, Inc. Forums
Sign in to follow this  
Eric Camden

Gamma correction?

Recommended Posts

I never paid much attention to it, but now that I have a night scene, I wonder if I have to make adjustments so everyone can see all the intended details? It looks great on my monitor, will it look the same on everyone elses'?

Share this post


Link to post
Share on other sites

I know that some images created on certain macs look very dark on some pc's but images created on pc's dont look dark on macs.

Share this post


Link to post
Share on other sites
It looks great on my monitor, will it look the same on everyone elses'?

 

Nope. I don't think so. No matter what you do - you have no control over how others have their monitors calibrated or not.

 

However, after you read Yves' tutorial - could you please give us the real answer? Just a short yes, no, maybe will do (hee hee) :rolleyes:

 

(I have read that wonderful chock full of great info tutorial ... and always come to the same conclusion.... which is a very definitive "huh?")

Share this post


Link to post
Share on other sites

Gamma correction is actually not that difficult to understand. It is becoming less important as more and more displays have the gamma correction built right in--which is really the best way to do it. Almost all types of displays have a non-linear response. They are less responsive at low values and more responsive at high values. Most have a response curve that follows a "power-law" curve that looks pretty much like a loose string connected at a point on the floor and a point on the wall. (The "gamma" is the exponent applied to the original value--the "power" it is raised to. A gamma of 2.0 is the "square" of the value.) The curve is roundest near the floor (where the weight of the string has less effect) and straighter near the top (where the weight of the string pulls it tighter). The overall result is that--relative to mid-range values--dark values become darker and lighter values become more bright and saturated as compared to the values as captured by the camera. Gamma correction essentially "pulls the string straight" by applying the inverse of the gamma.

 

The problem with gamma correction is that it depends on the particular display. In the television world, CRT displays were standardized, so the gamma was predictable. The television signal was altered to correct for gamma.

 

In the world of PCs, and the new world of digital television, there is a plethora of displays with different gammas, so there is no one gamma that fits all. You basically have to match the gamma to each display. However, newer displays with DVI or HDMI digital inputs are building the gamma correction into the display itself. This eliminates the need for gamma correction to be applied to the video signal or still image data and is the smart way to handle gamma. Even with these displays, as the display ages, corrections have to be made, but all this can be built into the display itself, so the user can tweak the display using a built in test pattern.

 

If you have a newer display card that can apply gamma correction to match your display (assuming the display doesn't already apply it's own gamma correction) you can program the card to apply the correction. This case also essentially removes the need to apply gamma correction to the video or picture data.

 

In digital video and images, both the non-linear characteristic of human vision and the need for gamma correction affects the visibility of quantization steps making artifacts like "banding" more visible at some values than at others. As it turns out, human vision and gamma correction have roughly an inverse relationship, so video or images that are encoded in a gamma corrected non-linear code are less succeptible to banding. Higher bit depths are rapidly making most of these issues a thing of the past.

 

The need for gamma correction outside of the display, to correct for the display's effects, has complicated the work-flow of digital image production--something Yves' tutorial explains quite well. As displays (or the display adapters) take over the job of gamma correction, the entire work-flow from the output of the camera, to the input of the display, becomes linear and the work-flow becomes far more consistent and straightforward. We are on the cusp of this era of digital production.

 

So, that's another long answer.

 

The short answer is that a gamma of 2.2 is usually a good rough guess for displays + adapters which do not provide the gamma correction. So your video/image gamma correction would have a value about .45 (the inverse of 2.2). Macs typically have a gamma of 1.8 (still pretty close to 2) so your video/image gamma correction would have a value of about .55 (the inverse of 1.8). If you correct it for a Mac and send it to someone with a PC, the darks will look slightly darker and the lights will look slightly more bright and saturated, but should still look reasonably good. If you send it to someone with a gamma corrected display, it will look pretty washed out. So Nancy was right...it all depends!

Share this post


Link to post
Share on other sites
The short answer is that a gamma of 2.2 is usually a good rough guess for displays + adapters which do not provide the gamma correction. So your video/image gamma correction would have a value about .45 (the inverse of 2.2). Macs typically have a gamma of 1.8 (still pretty close to 2) so your video/image gamma correction would have a value of about .55 (the inverse of 1.8). If you correct it for a Mac and send it to someone with a PC, the darks will look slightly darker and the lights will look slightly more bright and saturated, but should still look reasonably good. If you send it to someone with a gamma corrected display, it will look pretty washed out. So Nancy was right...it all depends!

I agree that it depends but I don't agree that it depends on the system or the display.

 

It depends on what are your intents. If you are going for photorealistic rendering of lights and shadings and shadows, then you must gamma correct throughout the whole production pipeline. If you are not going for photorealism, then you may do whatever you want.

 

The Mac is gamma 1.8 is old story. Mac displays are no more gamma corrected for 1.8. They follow the rest of the industry which are all oriented toward the sRGB standard which requires a gamma 2.2 corrections on photos. And that includes digital 3D renders too.

 

Digital photos and computer display are corrected for gamma 2.2. That means that any material colors are also gamma corrected. Before being used by a renderer, they must be linearized, meaning that their gamma correction must be reversed.

 

Applying a gama 2.2 correction to renders is just doing the same type of correction that are applied to digital photos. Just as there is no "it depends" for photos, there is no "it depends" for renders. Different media production pipelines are geared to correctly print or display photos which are gamma corrected so if your renders are also gamma corrected, they are already suited for print, display on computer screen or on TV or printed to film.

 

Not doing the reverse gamma correction to textures and material colors and not doing the gamma correction to the renders is just plain wrong. It is working in the wrong color space all along.

 

Here is another page with further explanation as to why not gamma correcting is wrong.

Share this post


Link to post
Share on other sites

A:M will correctly adjust for imported gamma-corrected images (used as decals) if the gamma is embedded in the file - like with Targas.

Share this post


Link to post
Share on other sites
A:M will correctly adjust for imported gamma-corrected images (used as decals) if the gamma is embedded in the file - like with Targas.

And PNG too.

Share this post


Link to post
Share on other sites
Some pictures might help...

Just a precision. Textures files, when used as color decals, should always be restricted to low dynamic range because they must represent surface reflectance. Since a surface cannot reflect more light than it receive, the texture data should always be restricted to between 0 and 1. So compressing a HDR texture image with an S curve would be wrong. A HDR image file that is to be used for color texturing should be scaled down to bring the white to about 0.9. Also, by definition, a HDR file is necessarily linear. It is not gamma corrected or tone corrected. This said, some people don`t understand that and apply a tone correction before storing the image in a HDR file.

Share this post


Link to post
Share on other sites

I for one have a boatload of learning yet to do on this stuff. (Think "Titanic" when reading the word "boatload".) I think it would be great to have a new special topic on lighting/gamma/tone correction/color correction/HDR etc. (What category might tie these "image fidelity" related topics together? Rendering?) A good start might be pointers (in one easy to find place like a special topic) to some of the best tutorials we already have, including Yves' excellent collection of tutorials on these topics.

 

Although my background is digital signal processing and video/audio compression, I'm a babe in the woods still when it comes to tone correction, color correction, CG rendering, lighting, image file formats, etc., that are the bread and butter of creating CG material.

 

It might be handy to have an overview of what processes/data should be kept linear (eg., scaled instead of compressed) and what processes/data benefit from non-linear processing (eg., to compensate for non-linearities in display device characteristics) and the proper processing order for the best results. A wall chart might be a good format for such an overview. A trivial project--NOT!

 

The Hash Forums in general have been a fabulous resource for learning a lot of this stuff and the generosity of many of the more experienced and knowledgeable members is something to be proud of, folks! Thanks a million! ;)

Share this post


Link to post
Share on other sites

The more I have to explain this gamma / tone correction stuff to different people and the more I narrow that to a simplified set of rules:

 

1) Renderers are radiometric calculating applications so the data that we feed them in should be linear and the data that they will produce will be linear.

 

2) The data we, humans are used to work with, are not linear. They are always adjusted for our human vision. And so this data should always be linearized before the renderer uses them.

 

3) The data that is produced by the renderer (read the rendered image) is linear and so it should always be adjusted for our human vision.

 

--------------------------------------------------------------

 

This set of rules is very simple. Yet, the counter argument that comes every time, in a gamma discussion is the "device" argument. The fact that different devices have different gamma and that we cannot control the gamma of the end-viewer equipment. It is not the artist's responsibility to try to solve such a technical issue and an unsolvable problem. It is the engineers' and industry's responsibility. Indeed, the industry took its responsibility and adopted the sRGB standard to solve those devices issues. There is a lot of complexities behing the sRGB standard so that an image can be used on any different device types each with their specific color gammut. But yet, the beauty of this standard is that it can be boiled down to this extremely simple rule:

 

- Gamma correction is 2.2.

 

And the gamma correction is the standard transformation that allows us to transform linear radiometric data to human vision comfort and vice versa.

 

So forget all of what you may have read concerning device gamma and devices color gammut. This is good to know stuff for engineers. But for anyone else, trying to figure what is what in that is just trowing more confusions on the issue. You just need to remember that the devices, any devices you are using are designed so the colors and tones that a human sees on them are comfortable to the human vision but they are not linear. Color coming from any devices that are adjusted for human vision comfort should be linearized before being fed to the renderer. That includes not only photos used as textures but also any color coming from picking a color in a photo, or picking or seting a color from a color selection widget. Since picking a color is done on a human comfortable device, those should be linearized as well.

 

Concerning pointers to other tutorials on this, you just need to type "linear workflow" in google and you will get most of the discussions and tutorials on the subject. A word of caution, though, a lot of those discussions are from people who have discovered the issue and figured workflows so there is a lot of confusions in there.

Share this post


Link to post
Share on other sites
A:M will correctly adjust for imported gamma-corrected images (used as decals) if the gamma is embedded in the file - like with Targas.

And PNG too.

 

I suppose since video cameras apply gamma correction, video file input gets a similar treatment? (Knowing how sharp you guys are it's a pretty safe bet the answer is yes, without even having to ask.)

Share this post


Link to post
Share on other sites

I got a shock with my image contest entry when I viewed it on my Mac at home. In creating it on my office PC I got the lighting kind of "in shadow" while keeping it lit enough to see details. On the Mac it was lit like daylight and the moodiness was completely gone. I immediately delved into Yves' tutorial on the subject and realized I was in over my head.

 

It becomes more of an issue though, because I've been commissioned to create a music video that, while it's strictly a vanity project and may well never see the light of day, I want to use it as a learning process to better understand gamma, color gamut, creating for the HD format, and in addition, if it is ever shown, it will be in Asia. I'm trying to learn about HD requirements for the tech aspects of that part of the world but I freely admit I don't know where to start.

Share this post


Link to post
Share on other sites

Here's what we did for TWO...

 

Burn a test DVD of each sequence in question and look at it on the TV - adjust up/down accordingly. (Flat screen, tube type - it doesn't seem to make any difference.)

Share this post


Link to post
Share on other sites
There is a lot of complexities behing the sRGB standard so that an image can be used on any different device types each with their specific color gammut. But yet, the beauty of this standard is that it can be boiled down to this extremely simple rule:

 

- Gamma correction is 2.2.

 

And the gamma correction is the standard transformation that allows us to transform linear radiometric data to human vision comfort and vice versa.

 

So forget all of what you may have read concerning device gamma and devices color gammut.

 

I'm still confused... am i supposed to set A:M to 2.2? If everything is supposed to be 2.2 why is A:M defaulted to 1.0?

 

If I do a render with the gamma set to 1.0 things look normal.

 

If I do a render with the gamma set to 2.2 they are absurdly washed out and bright.

 

Maybe my display isn't set right? Maybe I need to set it to 2.2 also? If I do things get even brighter. Any image I try to make look "right" with these 2.2 settings will end up impossibly dark on other people's monitors.

 

 

So there has to be more to it than settting everything to 2.2

Share this post


Link to post
Share on other sites

Almost all videocards ALREADY display at 2.2 (or 1.8 or whatever the default display device is) - if you put a 2.2 adjustment on A:M images too, it will be doubled! ALMOST ALWAYS when we burn a DVD right from A:M - it looks fine on the TV.

 

What happens is that people light their scene with bad gamma on their monitor (not 2.2, not 1.8 or whatever). When someone else looks at the same image on another monitor (that has correct 2.2 or 1.8 or whatever), it looks dark or bright - so the problem starts on the original artist's monitor.

 

If you (the artist) burn your image to DVD then look at it on your TV, and it looks like you expect, then the gamma on your monitor is probably okay.

Share this post


Link to post
Share on other sites

One more thing:

 

A monitor's "brightness" and "contrast" are the culprit much more often than the gamma. If you light a scene on a monitor with incorrect brightness/contrast, it will look bad on a correctly calibrated monitor.

Share this post


Link to post
Share on other sites
Almost all videocards ALREADY display at 2.2 (or 1.8 or whatever the default display device is) - if you put a 2.2 adjustment on A:M images too, it will be doubled! ALMOST ALWAYS when we burn a DVD right from A:M - it looks fine on the TV.

 

If you (the artist) burn your image to DVD then look at it on your TV, and it looks like you expect, then the gamma on your monitor is probably okay.

 

I believe you, this is basically what works for me.

 

But how do we explain this gamma calibration chart that is always presented as the way to calibrate a monitor?

 

The idea is that you adjust your gamma until the 50% grey bars seem to match the bars that simulate 50% with alternating black and white lines.

 

If i do that I do indeed move the gamma setting to "2.2". Since gamma doesn't affect pure black or pure white this should be a correct setting for the gray inbetween. That's the theory anyway.

 

But our experience is that 2.2 is way off.

Share this post


Link to post
Share on other sites
But our experience is that 2.2 is way off.

Here's my experience...

 

I can't trust the video output on my computer because that is controlled by the videocard and that's one of the things I'm checking!

 

If I want trust, I use a home DVD player, burn a DVD from my computer, play the image from the DVD player on a flat screen TV (or tube), put the image right next to my computer monitor. Are they the same? Yay! Calibrated! Are they different? Hmmm? Is it my videocard that needs adjustment or my monitor. Because "brightness" and "contrast" on my monitor are so easy to adjust - I try those things first. Hmmm? Not fixing it - then that whole gamma curve thing comes into play. I'm quite technical and I could figure it out if I had to but it's actually easier to buy a new monitor or videocard than it is to screw with touchy technical settings.

Share this post


Link to post
Share on other sites

That's what I was going to suggest. Possibly the easiest way would be to take a still picture of something familiar and display it on your monitor. Then change the monitor settings till it looks like the real thing.

Share this post


Link to post
Share on other sites
I'm still confused... am i supposed to set A:M to 2.2?

Yes.

 

If everything is supposed to be 2.2 why is A:M defaulted to 1.0?

Because that is the old default non-gamma corrected setting and users have been using this settings for all their projects. This can't be changed without the user explicit setting.

 

If I do a render with the gamma set to 1.0 things look normal.

 

If I do a render with the gamma set to 2.2 they are absurdly washed out and bright.

The "linear workflow" is a "workflow" because it does not only involve changing the render gamma. You also have to texture and light in a linear setting. It involves the whole workflow. It is almost guaranteed that if you did all your texturing and lighting in a gamma compensated setting, then gamma correcting the render will not look good.

 

Maybe my display isn't set right? Maybe I need to set it to 2.2 also?

Yes. A gamma 2.2 monitor is a quite dark monitor BTW.

 

If I do things get even brighter. Any image I try to make look "right" with these 2.2 settings will end up impossibly dark on other people's monitors.

That is very unlikely. If your workflow is setup right, then your image will look right on any monitor. At least it will look just as right as any digital photos on the same monitor.

Share this post


Link to post
Share on other sites
I'm still confused... am i supposed to set A:M to 2.2?

Yes.

 

Yves, take a look at my gamma poll. which image looks right on your monitor?

 

 

 

 

 

If I do things get even brighter. Any image I try to make look "right" with these 2.2 settings will end up impossibly dark on other people's monitors.

That is very unlikely. If your workflow is setup right, then your image will look right on any monitor. At least it will look just as right as any digital photos on the same monitor.

 

It can't be all that unlikely since everyone who answered the poll chose the gamma 1.0 version

Share this post


Link to post
Share on other sites
Yves, take a look at my gamma poll. which image looks right on your monitor?

Of course, the right image looks way too washed out.

 

 

It can't be all that unlikely since everyone who answered the poll chose the gamma 1.0 version

What else did you expect Robert? You have a scene designed to look good in non-linear light. Of course, once you apply a gamma 2.2 on it, it will look bad. This scene does not look realistic at all. There are shadows on the floor but not inside the boxed cube. So I guess you used z-buffered shadows with shadows set to 80% which means that once gamma 2.2 is applied will results in shadows of only 60%. This poll just proves that with hacks and tweaks, you can get an image to look good under any specifically selected circumstances.

 

I don't want to look like I have a mission of evangelizing that gamma and linear woorkflow stuff here and annoy people with that. I learned something important for CG artists and I just wanted to share that. There is no right and wrong ways about that. Just a different way of working. If your own workflow is right for you, then no need to change. If you are not looking for realism or photorealism, then certainly no need to care about that. If, however, you are reaching for more realistic lightings, even if not photorealistic scenes, and you are getting difficulties and you are starting to add more and more lights or negative lights, then, maybe, that linear workflow stuff is worth looking into.

Share this post


Link to post
Share on other sites
Maybe my display isn't set right? Maybe I need to set it to 2.2 also?

Yes. A gamma 2.2 monitor is a quite dark monitor BTW.

I'm not quite sure Yves is answering the same thing Robert asked, or even if Robert asked the right thing, so I will state the obvious for clarification.

 

A:M works in 1.0 gamma (none). The signal goes out of the videocard into the monitor - there are several possibilities where gamma (assume 2.2) is applied:

1) A:M puts on the gamma (normally this is not what people do)

2) The videocard puts on the gamma (an option)

3) The monitor puts on the gamma (quite common)

 

You only want the gamma applied ONCE.

 

I assume my new flatscreen TV with DVD player has correct gamma so that's why burning a DVD is a good way to check your computer monitor BUT there is still the possibility that your TV/DVD is not adjusted correctly, so that's why you would do that gamma adjustment scheme Robert doesn't trust.

 

Yves may also be talking about the ultimate in gamma diligence - the "gamma curve." flatscreen TVs & computer monitors are made as cheaply as possible, which sometimes means that the gamma response suffers (plus, it's just difficult to match how your eye perceives gamma). Film projectors have a GREAT gamma curve because they use filtered light - so what you see on your monitor may not match how film would be projected even if you do the gamma adjustment scheme.

 

My last statement on the issue: if the image on your monitor looks like the image on your TV, consider that good enough, (unless you work as a tech at a TV station.)

Share this post


Link to post
Share on other sites
Yves, take a look at my gamma poll. which image looks right on your monitor?

Of course, the right image looks way too washed out.

 

 

It can't be all that unlikely since everyone who answered the poll chose the gamma 1.0 version

What else did you expect Robert? You have a scene designed to look good in non-linear light. Of course, once you apply a gamma 2.2 on it, it will look bad. This scene does not look realistic at all. There are shadows on the floor but not inside the boxed cube. So I guess you used z-buffered shadows with shadows set to 80% which means that once gamma 2.2 is applied will results in shadows of only 60%. This poll just proves that with hacks and tweaks, you can get an image to look good under any specifically selected circumstances.

 

Yeah, absolutely. I took cleverly took stock objects off the CD and sneakily put them in A:M's default lighting setup all for the purpose of making you look silly. It's all I have to do with my time. I'm sure that's the only reason I've used A:M at all for the last 12 years

 

 

I'm not trying to fool anyone. I'm not trying pass off a hoax. I tried to make an honest test case.

 

I'm trying to figure out why what the authorities say must be doesn't work in practice.

Share this post


Link to post
Share on other sites
Yeah, absolutely. I took cleverly took stock objects off the CD and sneakily put them in A:M's default lighting setup all for the purpose of making you look silly. It's all I have to do with my time. I'm sure that's the only reason I've used A:M at all for the last 12 years

????

 

Robert. You, indeed took stock objects from the CD and placed them in a default lighting scene. And that is why it looks OK without gamma correction but not with. The default A:M lighting scheme is specifically designed to make renders to look good without gamma correction precisely because until very recently, almost nobody knew much about the intricacies of linear workflow and even today. almost nobody understands it even though a lot more people are aware of the issue. Furtheremore, most users just want to get a render that looks good when they hit the render button and are not even aware of color space issues.

 

It is not your fault, Robert, nor A:M's fault. Every other 3D applications work that way too because that is the way it developped throughout the years and hacks, tweaks and tricks were designed by artists to compensate for that misunderstanding but that is changing. Even large production studios have their production pipeline organized to compensate for a lot of those issues that pop up in renders because of their use on non-linear workflow. That is changing too thanks to more and more use of global illumination techniques which cannot be hacked that way and raised the awareness about those issues.

 

I'm trying to figure out why what the authorities say must be doesn't work in practice.

It is the "workflow", Robert. Every step of the production must be "linear" throughout the whole production pipeline. If every step is "linear" then you will get much more realistic renders at the end. But if you mix non-linear steps, such as lighting setups designed specifically for nonlinear workflow and gamma corrected photos as textures, with a linearization step, such as applying gamma correction to the final render, then this will not work because the final result will look like applying gamma correction twice.

Share this post


Link to post
Share on other sites
Every step of the production must be "linear" throughout the whole production pipeline. If every step is "linear" then you will get much more realistic renders at the end. But if you mix non-linear steps, such as lighting setups designed specifically for nonlinear workflow and gamma corrected photos as textures, with a linearization step, such as applying gamma correction to the final render, then this will not work because the final result will look like applying gamma correction twice.

Yves, you might want to draw a "workflow" diagram that shows where the nonlinearities come in.

 

My experience is that most raw images are stored with "0" gamma, (linear) - digital pictures included - and gamma isn't applied until display time using the display device's gamma. Years ago, I can remember importing images from digital cameras, screen capture devices, etc., that had not been de-gammaed but I have not witnessed one of those images recently?

 

When Macs used 2.2 gamma & PCs used 1.8 gamma, that always caused consternation because people saw the same image differently. I've heard Macs don't do that anymore.

 

In the end, it all depends on the intended final distribution method: film (different gamma needed), YouTube (yikes! we've experienced how difficult it is to get our animations to display "correctly" on YouTube), TV (my recommended method of burning a DVD is easy).

Share this post


Link to post
Share on other sites
A:M works in 1.0 gamma (none). The signal goes out of the videocard into the monitor - there are several possibilities where gamma (assume 2.2) is applied:

1) A:M puts on the gamma (normally this is not what people do)

Yes. Gamma should be put on by A:M on the final render. If post processing is to be done, such as NLA and compositing, then the gamma should be put on after the final compositing.

 

2) The videocard puts on the gamma (an option)

 

3) The monitor puts on the gamma (quite common)

The sRGB standard states that the videocard and the monitor should be both set so the monitor gamma is 2.2. This is where the gamma chart is usefull.

 

But!, and this is a very important but, Setting the monitor's gamma to 2.2 does not mean the same thing as gamma correcting an image at 2.2. They are exactly the reverse from one another. If the monitor is set to gamma 2.2 and the image is corrected for gamma 2.2, they cancel each other. They don't add each other. So it is not applying gamma twice.

 

Now, I just realized that some of the confusions may come from some of my inapropriate words usage. I used to say that the render should be corrected with a gamma 2.2. What I should say is that a render should be corrected for a gamma 2.2. What really happens, when we select a gamma 2.2 correction (NTSC), is that the actual gamma curve applied is 0.45. Not 2.2. 0.45 is the reciprocal of 2.2. 1/0.45 = 2.2. So the net result is that the 0.45 gamma corrected image displayed on a gamma 2.2 monitor results in a gamma 1.0 image.

 

You only want the gamma applied ONCE.

Yes. Absolutely.

 

I assume my new flatscreen TV with DVD player has correct gamma so that's why burning a DVD is a good way to check your computer monitor BUT there is still the possibility that your TV/DVD is not adjusted correctly, so that's why you would do that gamma adjustment scheme Robert doesn't trust.

I agree with that.

 

Yves may also be talking about the ultimate in gamma diligence - the "gamma curve." flatscreen TVs & computer monitors are made as cheaply as possible, which sometimes means that the gamma response suffers (plus, it's just difficult to match how your eye perceives gamma). Film projectors have a GREAT gamma curve because they use filtered light - so what you see on your monitor may not match how film would be projected even if you do the gamma adjustment scheme.

Correct. There is no guarantees of any sort that a projected render will look exactly the same as on a monitor even if calibrated. But starting with a properly set monitor and a linear workflow is putting as much chances as possible on the your side.

 

My last statement on the issue: if the image on your monitor looks like the image on your TV, consider that good enough, (unless you work as a tech at a TV station.)

That is a good rule of thumb.

Share this post


Link to post
Share on other sites
Yves, you might want to draw a "workflow" diagram that shows where the nonlinearities come in.

I don't have much time to draw a diagram and I'm not installed for that. But I will try to come up with a post that resembles a diagram later.

 

My experience is that most raw images are stored with "0" gamma, (linear) - digital pictures included - and gamma isn't applied until display time using the display device's gamma. Years ago, I can remember importing images from digital cameras, screen capture devices, etc., that had not been de-gammaed but I have not witnessed one of those images recently?

I don't know how the images were stored in those days. But I know that several digital cameras do have a RAW mode where the image data is stored in linear form and is not gamma corrected. Jpeg files coming out of those cameras are always gamma corrected though.

 

When Macs used 2.2 gamma & PCs used 1.8 gamma, that always caused consternation because people saw the same image differently. I've heard Macs don't do that anymore.

Correct. Nowadays, color space handling is way much more sophisticated than simply maintaining a certain gamma curve. Every OS have its own color management system which uses device specific color profiles to match colors as precisely as possible from device to device. In this context, image files are also considered as devices and each image file should ideally contain its own color profile section. Without specific color profile section in the image file, any image file is considered to comply with the sRGB standard profile which specifies a gamma corrected for 2.2.

Share this post


Link to post
Share on other sites
But!, and this is a very important but, Setting the monitor's gamma to 2.2 does not mean the same thing as gamma correcting an image at 2.2. They are exactly the reverse from one another. If the monitor is set to gamma 2.2 and the image is corrected for gamma 2.2, they cancel each other. They don't add each other. So it is not applying gamma twice.

Please expand on this statement...

 

When would the reciprocal gamma (.45) be applied to an image unless it had a gamma (2.2) listed in its file format (Targa, PNG)?

 

Applying "twice" would be if the "Gamma" Post Effect were applied to a final A:M image which ALSO had the regular 2.2 gamma applied by the display device. It MAY BE (only a guess - I'd need to look in the code) that when you hooked up the gamma adjustment in A:M, that you were assuming what the viewer was seeing on their monitor was a gamma of "1.0." It seems to me (once again I'm speculating until I look in the code), that your gamma type-in value should default to whatever the display device's gamma is because that's what the viewer is seeing, and if the user typed "1.0" into that gamma adjustment value, the reciprocal of the display device's gamma should be applied (1.0/2.2). Just guessing as to what's happening?

Share this post


Link to post
Share on other sites
Please expand on this statement...

 

When would the reciprocal gamma (.45) be applied to an image unless it had a gamma (2.2) listed in its file format (Targa, PNG)?

In principles, you should be able to put a gamma correction factor as a Gamma value in the image file and store the image data uncorrected and the display device would correct it on the fly. It practice, this is not the case. For targa files, even though there is a gamma tag, there is no standard way to interpret it. If you put a value of 2.2 in this tag, does it mean that the data is already corrected or that it needs to be corrected? Same for PNG files. So in practice, the gamma tags are not interpreted in those file format. The only clearly semantically defined standard is the sRGB standard. In this standard, the color profile embedded in the file must match the actual correction on the image data. If there is no explicit color profile in the image file, then it is assumed the sRGB gamma curve is already applied to the image data.

 

Applying "twice" would be if the "Gamma" Post Effect were applied to a final A:M image which ALSO had the regular 2.2 gamma applied by the display device.

The display does not apply a gamma 2.2. The display just have a gamma 2.2. That is a given in the equation. Now, because the display does have a gamma 2.2, the images that are to be displayed on this display must be gamma compensated. You can do that with the gamma post effect.

 

It MAY BE (only a guess - I'd need to look in the code) that when you hooked up the gamma adjustment in A:M, that you were assuming what the viewer was seeing on their monitor was a gamma of "1.0."

We must assume, unless otherwise specified, that the display gamma is 2.2. I know of absolutely nobody who sets its monitor for gama 1.0. Try that with a graduating gamma chart such as the ones found on Norman Koren site and you will see that this is totally unusable gamma setting for a monitor.

 

It seems to me (once again I'm speculating until I look in the code), that your gamma type-in value should default to whatever the display device's gamma is because that's what the viewer is seeing, and if the user typed "1.0" into that gamma adjustment value, the reciprocal of the display device's gamma should be applied (1.0/2.2). Just guessing as to what's happening?

That is, indeed, what is happening. Except that we don't actually know the display actual gamma and the user don't know either. So I added this little gamma chart to help determine the actual monitor gamma. I'm not sure we are discussing the same thing here however. I added two gamma related settings in the "Render" options pannel. Those settings do not affect gamma on rendered files but only in preview renders so lights and textures can be properly tweaked so they look right once gamma corrected. This is the first step for a linear workflow and A:M have a step in advance on other 3D applications on the market because of that. The next step that needs to be done for total linear workflow in A:M is to systematically ungamma correct every RGB material colors and color maps before using them in the renderer. This option could be another checkbox in the render options panel.

Share this post


Link to post
Share on other sites

My understanding of your understanding is that images imported into A:M are NOT gamma of 1.0. (When you mention "materials," you must be talking about image-based materials). Hmmm... I need to research that assertion some before I comment further.

Share this post


Link to post
Share on other sites
My understanding of your understanding is that images imported into A:M are NOT gamma of 1.0.

That is correct. Images imported into A:M are gamma corrected so they look right on a gamma 2.2 display. Their image data is not linear anymore and they must be linearized.

 

(When you mention "materials," you must be talking about image-based materials).

No. I'm talking about any RGB color that are entered in the color properties. Those colors were selected in a gamma 2.2 display device so they must be considered as having been intrinsically gamma corrected and must be uncorrected. One very obvious case is picking a color from a photo. But picking a color from a color dialog is also the case. Think that the color dialog lives in a display color space that is made so gamma corrected photos look good. Thus any color that looks good on this device must be considered as gamma corrected when the user sees them and selects them.

 

I must add that in my tutorial, I give steps for setting a gamma corrected space when painting textures in Photoshop and The Gimp. If the application does the ungamma correction on the fly, then this special painting color space setup is not required anymore.

Share this post


Link to post
Share on other sites
My understanding of your understanding is that images imported into A:M are NOT gamma of 1.0.
That is correct. Images imported into A:M are gamma corrected so they look right on a gamma 2.2 display. Their image data is not linear anymore and they must be linearized.

This I do not agree. If the image data had a 2.2 gamma already on the pixels, the 2nd time the image was displayed in an A:M window would get an additional 2.2 gamma (from the monitor) and would not appear the same image as it originally was in the Photoshop window.

 

(When you mention "materials," you must be talking about image-based materials).
No. I'm talking about any RGB color that are entered in the color properties. Those colors were selected in a gamma 2.2 display device so they must be considered as having been intrinsically gamma corrected and must be uncorrected. One very obvious case is picking a color from a photo. But picking a color from a color dialog is also the case. Think that the color dialog lives in a display color space that is made so gamma corrected photos look good. Thus any color that looks good on this device must be considered as gamma corrected when the user sees them and selects them.

This I follow and agree.

Share this post


Link to post
Share on other sites
This I do not agree. If the image data had a 2.2 gamma already on the pixels,...

Actually a gamma 0.45 is applied on each pixel. When we say that an image was corrected for gamma 2.2, we actually mean that a gamma 0.45 was applied to its data.

 

the 2nd time the image was displayed in an A:M window would get an additional 2.2 gamma (from the monitor)

I do not understand this. The monitor does not add gamma correction. The monitor just have a gamma curve of 2.2 and any image or color that is displayed on the monitor must be gamma compensated because of that.

 

and would not appear the same image as it originally was in the Photoshop window.

First, Photoshop do have its own color management system so this must be taken care of when dealing with Photoshop.

 

Take a photo that had a gamma 0.45 applied to it so it displays linearly on a standard gamma 2.2 monitor.

 

Now take that photo again and linearize it by applying a gamma 2.2 on it so it can be used as a linear reflectance (or albedo) texture on a patch. You took a photo that had a gamma 0.45 on its texels and apply a gamma of 2.2 so the textels now have linear data. Render that patch. The result is still linear since the renderer just do linear calculations. And now apply a gamma 0.45 on that render so it displays right on a standard gamma 2.2 monitor. THe resulting image will look just like the original.

 

The above step may seem like splitting hairs in 4 because we only focus the texture colors. But the point of the linear workflow is to get realistic lighting. That is realistic light distance attenuation, realistic light cosine falloff and terminators and realistic light additions and thus realistic shadows.

Share this post


Link to post
Share on other sites
Now take that photo again and linearize it by applying a gamma 2.2 on it so it can be used as a linear reflectance (or albedo) texture on a patch. You took a photo that had a gamma 0.45 on its texels and apply a gamma of 2.2 so the textels now have linear data. Render that patch. The result is still linear since the renderer just do linear calculations. And now apply a gamma 0.45 on that render so it displays right on a standard gamma 2.2 monitor. THe resulting image will look just like the original.

If this is right (and I follow you so it could be right), all images that are imported into A:M need gamma correction (.45 usually).

 

Is that "Current gamma" value on the Render dialog the same one I write in the Targa header? (I can't find the one I used to maintain for the Targa files.)

 

Additionally, this brings up an interesting quandry...

If A:M applies a 2.2 gamma every time it saves (under your scenario), and gamma correction does not occur when the image is reimported again, it will get progressively more gamma applied if the cycle is repeated.

Share this post


Link to post
Share on other sites
If this is right (and I follow you so it could be right), all images that are imported into A:M need gamma correction (.45 usually).

Yes. That is correct.

 

Is that "Current gamma" value on the Render dialog the same one I write in the Targa header? (I can't find the one I used to maintain for the Targa files.)

The "Current Gamma" is the actual monitor's gamma. That is why you set it using the gamma chart as a guide. On a properly set monitor, this should read 2.2 when both half of the chart look the same gray.

 

The "Desired Gamma" is the target display device gamma. This one should be set to 2.2 for linear workflow. And that is the one that would appear in the targa header file. But it is not directly related to any post processing gamma. This gamma is only used for preview. It is not used for altering rendered to file images.

 

Additionally, this brings up an interesting quandry...

If A:M applies a 2.2 gamma every time it saves (under your scenario), and gamma correction does not occur when the image is reimported again, it will get progressively more gamma applied if the cycle is repeated.

Yes. You would want to avoid that. If you render with the intention of importing that in A:M, then you should not apply any gamma correction to the final render. Also, you would not want to apply any gamma correction to images that are desigend to be composited. You are better (and it is more correct) to do the compositing in linear space and then gamma corected after all compositing have been done. Also, of course, if you import any gamma corrected image into A:M, you have to linearize it first. That holds for A:M renders that have been gamma corrected too.

 

I have to say that, "under my own scenario", I would not apply any gamma correction to the rendered images. I would prefer to keep all images as linear as possible and apply a gamma correction only when they are ready to commit to movie sequence. Also, I would save my images in OpenEXR or at least in a 16bits format so that when I apply a gamma correction (or a tone mapping operator for that mater), I would loose as less as possible.

Share this post


Link to post
Share on other sites
Yves, you might want to draw a "workflow" diagram that shows where the nonlinearities come in.

 

The diagrams I posted earlier are a start. If I can squeeze in some time I'll expand on these and Yves can then critique these and suggest any corrections, improvements. I work for AT&T at their Atlanta, Georgia labs, and video technology is my main specialty. I think diagrams like these can help clarify what happens where without having to get too technical. I won't make any promises for time frames, though, since AT&T's IPTV has me spread pretty thin these days. This will be a good exercise for me to learn more of the CG world, since most of my experience is in television technology.

 

What Yves has done a marvelous job of already is showing how all this translates into the art of creating the image you are after.

 

The last diagram I did I would certainly change to emphasize that the display industry has currently taken the approach of standardizing display response to the 2.2 gamma curve, whether or not the underlying display technology's native characteristic follows such a response curve. Look-up tables (LUT's) essentially make the display's natural response appear to fit the 2.2 gamma curve so that any gamma corrected image data matched to 2.2 will display correctly. In the future with digital interfaces and build-in display "intelligence" it would be more appropriate to move the gamma compensation into the display itself, opening up a completely linear work flow right up to the display input. Today, however, we conform the image signal to match the display instead of the other way 'round.

Share this post


Link to post
Share on other sites

rendering out to .45 looks like this on one of my cho. files.

before... the gamma was set at 1.

the main difference is the dark shadows....

would the dark shadows show up lighter on a tv screen?

HIPSTE4.jpg

Share this post


Link to post
Share on other sites
rendering out to .45 looks like this on one of my cho. files.

before... the gamma was set at 1.

the main difference is the dark shadows....

would the dark shadows show up lighter on a tv screen?

I'm at home and I don`t have a gamma correct monitor here so I can't comment on the render quality since I can't rely on what I see although the render seems to be reverse gamma corrected. You mention you rendered out to 0.45. What does that mean? How did you do that? Normally you would render out to gamma 2.2 and that would apply a gamma correction of 0.45 but if you explicitly specified a gamma 0.45, then it (both A:M and Photoshop) would actually apply a gamma 2.2 which would be the reverse of what you would want.

Share this post


Link to post
Share on other sites

Yves,

I set .45 in the A:M render window for the gamma settings.

My head is spinning after trying to keep track of what to set where???

 

So, keep the A:M gamma at 2.2.... and then just go on with life?

Share this post


Link to post
Share on other sites
I set .45 in the A:M render window for the gamma settings.

Entering 0.45 anywhere in the render option panel gamma values would be wrong if that is what you are refering to. You would enter 2.2 in the desired gamma and set the current gamma so both side of the little gamma chart looks the same gray. If you are refering to the gamma setting in the render to file settings, then this one too should be set to 2.2 (or select the NTSC setting).

 

So, keep the A:M gamma at 2.2.... and then just go on with life?

I'm not quite sure which gamma seeting we are talking about here so we have yet another potential for more confusion. To be safe, I'd say just keep the settings to their defaults and go on with life.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...