Re: Working in Linear Space in XSI

Date : Fri, 16 Feb 2007 09:53:15 -0500
To : XSI(at)Softimage.COM
From : Christian Rittener <christian_list(at)b-cosmos.com>
Subject : Re: Working in Linear Space in XSI
Very clear and pragmatic, thanks a lot. One basic (embarrassing) question: does this apply to image-based lighting only (FG), or should we linearize textures for standard lighting using standard XSI lights ? in that case what's the advantage over the good old method of judging by eye, using color corrections in the rendertrees, playing with light falloff etc... ?

Also, when opening a new file for painting in Photoshop, does choosing "Don't color manage this document" result in a linear image?

Christian Rittener


Guy Rabiller wrote:
Hi Bradley,


../.. So it's clear with regards to treating
source textures that you need to remove any
gamma bias from the camera or say, from
something painted in photoshop.

One way to, perhaps, clearly understand this is that we cheat ourselve to produce an image that looks "correct" on a monitor wich has a non linear response. An Artist creating an image in photoshop ( with standard color scheme ) will set the colors according to what *he sees* on screen. So the Artist is implicitly creating a non-linear image, meant to be displayed on a non-linear response monitor.


Same is true for rendering. If you don't apply a rendering gamma, you will set lights in your scene so the rendered image looks "good" to your eyes, viewed on a non-linear response monitor. What this means is that you'll "boost" your light to see "something", especialy in the low key areas.

For the sake of simplicity, let's say that this non-linear response is called "gamma 2.2", and forget about inverse gamma ( image versus display response ). Simply accept that we work in "gamma 2.2".

Ok so the display is "gamma 2.2". A video camera will produce "gamma 2.2" images ( forget about the inverse gamma! ).
In this case, no problem. Both match.


A Photoshop Artist will create "gamma 2.2" picture implicitly, because he "sees" a gamma 2.2 image on screen.

A Lighting Artist will, actualy, create a "gamma 2.2" image, despite the fact that he might use or not a rendering gamma of 2.2 ( without knowing it that said )! Because he "sees" a gamma 2.2 rendered image to his eyes.

Ok so, everything is ok, everybody produce "gamma 2.2" images !?

*YES*, and don't worry about it, the flame artist will not change the gamma of your rendered image because it is implicitly "gamma 2.2".

Now, what's the deal with "linear lighting" ? The trick is in *what* the artist *has to do* to produce this "gamma 2.2" image:

He cheats!

To achieve a what seems to him be "half light power", he wont set the light power to 0.5 but perhaps 0.75. So even the settings he use are non-linear. And that's the problem. Because mathematicaly, a renderer works in linear space.

To correct this, you have to enter the *settings* in linear space, and for this, you have to compensate the rendered image or the viewing of the rendered image to be "gamma 2.2". This way, when your eyes will tell you it's "half light power", you will have entered a setting of 0.5, this time.

With this, you will still generate "gamma 2.2" images, except that this time, you wont cheat, you will use linear *settings*.

To resume:

Whatever you do, you will allways produce "gamma 2.2" images because you are creating it on a "gamma 2.2" display.
( as long as you think the image "looks good" to you ).


The problem is not in the gamma of the created image, but in "what you did" to create this "gamma 2.2" image.

The degree of "cheating" if you want.

And when you start cheating a linear renderer with your non-linear settings, this where you'll have non accurate lighting response, and something will be "wrong" in your image. The image somehow looks good but there is still something wrong.


Monitor set to gamma 1 ../..

This means NO gamma correction. It doesn't mean your monitor has a gamma of 1.0.
CRT and LCD ( setted on sRGB ) allways have a gamma ~2.2/2.5.


So setting your monitor to gamma 1.0 means you have a gamma of 2.2/2.5!

So don't touch your display, it's gamma 2.2/2.5 anyway, don't try to "correct it".
( Choose the sRGB profil if you have the choice in your monitor OSD settings, NOT in the display/card settings on your computer OS, here allways set gamma 1.0 ).


Render your image with a gamma of 2.2 and light according to what you see at the end.

As your texture images have a gamma 2.2 ( created implicitly this way by artists on their gamma 2.2 monitors ), you have to convert them to linear gamma prior using those to satisfy your "linear gamma" renderer.

After all, I'm not sure it's clearer than other explanation :-)

Tell me.

--
guy rabiller | 3d technical director (at) LaMaison

---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe xsi


Search the XSI List archives here or use the advanced search form to search across mailing lists. Searching help is available.
This site supposedly brought to you by Benjamin Grosser and the Imaging Technology Group.