Updated 27/10/11.
Right time to update this! With using this at Squint Opera for the past 2 years on multiple stills and films we have a good, reliable and high quality solution. Also some really useful comments below which have changed our thinking on this, so bear in mind when reading through these that many of these changes have been included now below.
I have collected the settings below without much explanation as there are plenty of explanations on the web and it’ll take me days to explain it all. The purpose of this is to get you up to speed quickly with settings we’ve found work well.
Bear in mind your renders may appear less contrasty than usual due to the more efficient spread of light within the scene. Don’t worry about this as it will give you increased flexibility in post-production (Photoshop, Fusion, Shake, After Effects etc) with adjustment with S curves or contrast adjustment.
We’ve all done a variety of hacks to get around this non-linear workflow over the years including changing exposure curves to reduce contrast, change lights to inverse falloffs instead of inverse square, adjust attenuations, you name it we’ve done it. Just trust me, in the end you’ll love it!
You’ll also find you have to tweak a lot of your materials as these will also be previously “hacked” to get them to work. You’ll find your materials will be bright at first and super pumped in terms of specular and reflection in order to boost the light bounce you didn’t have. This is just a gradual process of adjusting this into more “realistic” realms.
SETUP OF LINEAR WORK FLOW
Firstly calibrate your screen with Gamma 2.2 and 6500K.
In 3DSmax click on Customize> Preferences and click on the Gamma and LUT tab. Change the following to 2.2:

Remember the input is for bitmaps you bring in, and these are generally taken on a digi camera with sRGB, which the same as 2.2. People have mentioned treating black and white height maps differently, but most of the time you edit them in Photoshop in a 2.2 gamma space, so these can be brought in exactly the same.
Then under render scene dialog under the vray tab>colour mapping change the following:

This combo of 2.2 gamma and ticking “don’t affect colors” means the calculations happen in linear space, and are the same as what is outputted. Affect background is optional depending on how you use it. You will NOT be able to change the multiplier and burn value now; this will only affect calculations, NOT the final image. So leave them at 1.0 always and use post processing either through VRay or post to adjust the contrast.
Note: If you are having problems with anti-aliasing on blown out pixels (shows as white squares on render) try ticking “sub-pixel mapping”. If this doesn’t fix it “clamp output” will but you will lose the range of your 32bit EXR file above pure white and will not have any information to pull it back.
This problem is usually due to materials being over-reflective, i.e. set to white, with highlight glossiness set too close to 1. This causes a massive amount of light to be directed through those pixels and VRay can’t handle anti-aliasing it, therefore it shows as a white square.
LINEAR PREVIEW AND EXR OUTPUT
You must then use the built in vray frame buffer rather than the standard render window to view the results otherwise you will not see the product of using linear work flow. You MUST also tick the little sRGB button at the bottom of the buffer window.

Again go to the render scenes dialog box and open the frame buffer tab. Tick save separate render channels and save RGB, then change the file type to EXR. (You can select a full float EXR (32 bit) or half float (16 bit). Bear in mind Photoshop only allows use of half it’s tools in 32 bit, so 16 bit is sometimes better. Other programs, like Nuke and Magic Bullet, can read 32 bit just fine). This will output separate channels as per your render elements so you can use them in Nuke, Photoshop or whatever comp program you’re using.

So from now on you do not need to use the standard “save as” under the common tab, just work through the vray frame buffer tab to save files.
VIEWING EXR FORMAT
Open the format straight into Photoshop. You will have access to an exposure slider shown at the bottom of the window and various levels and colour adjustments.
Photoshop now half supports 32 bit (you won’t have access to a lot of tools) and almost fully supports 16 bit. Let’s just hope full support for 32 bit will come some day Adobe! Otherwise every other compositing program generally supports 32 bit, and you can push and pull levels and adjustments in the image to your hearts content.
Hello James . nice tutorial. thanks for sharing.
personally i was looking for an answer about how to avoid image clamping when i output EXR using standard scanline renderer. If you have a solution that you can share i will really appreciate it.
thanks!
Why would you want to clamp to 1.0? Doesn’t that defeat the purpose of using a float format like EXR?
Yes if you use clamp output, you will break your linear workflow. You could save in tga and it would do the same. If you want to be linear you need to uncheck clamping. You should also put gamma to 1.0 and in place of it use srgb in the vray frame buffer. That way the image would be linear, only the display of the image would be adjusted temporarily in the frame buffer in order to better view it for adjustment.
Yeah I think you’re right on this Strob. The VRay buffer can automatically adjust for that gamma output of 1 and adjust it so it’s like you’re using 2.2 if set to sRGB at the bottom of the window.
The method I went over “bakes” the gamma at 2.2 so when you open it in Photoshop or Fusion/ Shake etc it will look right. If you want truly linear though, the gamma of 1 should be carried through to the post stage and corrected there… if I understand that correctly. But you need time to comp it properly if you do that, and we found it was just being forgotten in the madness at the end of a project, so just baked it in in the end. ;-)
I checked the VRay manual in respect to clamping the output, and it just refers to ranges that exceed pure white, or (255, 255, 255). So if you don’t check this you might find you get un-antialiased highlights and pure white boxes of pixels. Not desirable on any render. This is why it’s best to check this; or so I understand.
Hi bill.
The purpose of using 32bit EXR or 16bit tiff type format is to provide more range within the render from pure black to pure white, or 0, 0, 0 to 255, 255, 255. Within an 8 bit render you have around 16.7 million colours, or 255 x 255 x 255. Which is usually more than enough.
But say you have a gradient of a sky as a reflection which is quite bright and subtle, and has a range from blue-almost white to just white. Within this gradient you have limited colours from the 16.7 million, so if you start pushing it with curves in post (Photoshop/ Fusion etc) then it will start to band, or you’ll see the colours segment quite clearly (try it in Photoshop with a normal 8 bit jpeg on a sunset).
A 16 or 32bit image gives even more colours than the 16.7million in an 8 bit, and means you can push those subtle gradients a lot further in post without destroying the image and getting banding. Hence why compositors love these EXR’s… apparent from their size of course which slows down work flow.
Clamping output just stops values extending beyond full white (255, 255, 255), so doesn’t really affect the range as above. If VRay is extended beyond this it tends to display as square pure white pixels as it can’t anti-alias this range beyond white. The VRay manual has a good explanation of this which I should put here actually; when work stops consuming all my time! ;-)
I hope that helps and clarifies.
Hello James
Ive stumbled across your blog many many times while trying to learn 3d techniques; thanks for being such a valuable resource.
I have been trying to migrate over to the EXR format and am getting it pretty ok except when using the Vray render element VrayBackground– problem is it doesnt show anything in the exr file. It is there, but there is no sky. am I doing something wrong or misunderstanding what the VrayBackground element is supposed to be used? I shows up when the image is saved as tiff, etc., If i could get some help figuring this out i would be in heaven.
Ha ha nevermind. i figured it out. you need to press Alt upon opening of the file to trigger the option to break out the alpha.
Thanks for sharing this nice info, you say it’s a MUST to use physical camera, how is this? the lwf doesn’t work with normal 3ds max cameras?
The settings of camera are missed? i read ” physical camera (settings below)”…
Regards,
Hi Pep,
Actually you don’t really have to use a VRay physical camera. We have found though that the light bounce is slightly more reliable when running your sun at 1.0 multiplier. Apart from that lwf should run independent of that.
I will edit that particular section out above as not to confuse.
For more info on VRay camera settings look here… http://www.jamesshaw.co.nz/blog/?p=156
Cheers.
Interesting, thank you very much for the reply. I’ll check the other post.
Best regards.
Thanks for this. very informative. My question comes in how you then do post work with these layered exr inside your post app. I try to work with as high a depth image as possible yet the company work for we restrict our depth to 8bit so currently render out multiple tifs through the G Buffer. How do you then work with these 32bit or 16bit half float exrs inside photoshop, when so many filters and adjustment layers are disabled. Or do you simply always work within composting software that allows complete manipulation?
Hi Myles,
CS5 is supposed to come out with better support for 16 and 32 bit images. In the meantime 32 bit image support is very poor with a simple exposure control and that’s it, and 16 bit does do away with a number of controls within Photoshop. However 16 bit is still usable with this functionality, and allows you to push images much much more, essentially equivalent of working with a RAW image our of a camera (although this is actually 14 bit).
True 32 bit support is in the league of composting software such as Nuke and Fusion etc. But this truly floating bit range isn’t entirely necessary especially in our line of work. You would have to be pretty high end to need this range and afford the resources to run these huge files efficiently.
So in short use 16 bit instead, and outputting to different tga or tiff channel files is probably a better option than lumping them into an EXR file. EXR files are only really useful with hundreds of frames, where pulling in one node in Nuke is more convenient than multiple individual passes. Because of the lack of linking passes in Photoshop, the time saving is limited.
Thanks James,
Great info. We’re getting cs5 shorltly so we’ll see how that plays out. Your right for our line 16bit is definately enough. Keep the tuts coming along.
hi i ve been working with gamma 2.2 settings and openexr format, in color mapping i put gamma = 1.0 so i get a gamma 2.2 in the openexr output file, BUT the problem is that when gamma is NOT added from the beginning in the colormapping rollout i get alot of noise. the problem is that adjusting gamma to a value of 2.2 outside the colormaping rollout will cause issues. is there a way to add a gamma2.2 in color mapping and get the same output in openexr, btw i tried changing the gamma value back to 1 in photoshop by adding a value of 0.45 in exposure control, but for a strange reason my composting technique ended up looking very strange…. i think the solution would be for exr format to use the gamma 2.2 added in color mapping and not add a gamma 2.2 to a gamma 1.0 rendered image. anyone has a solution? plz it would be a great help if u do
Hi Visual3D,
Yeah we had the same problem in the office, but have solved it now with the following.
You must put 2.2 gamma under colour mapping, and this will bake 2.2 into the render in preparation for Photoshop. And in Nuke etc make sure you work in a “none” environment rather than “sRGB” or “Linear” etc. Otherwise you’ll double gamma your images.
This affects the way Max actually thinks about lights etc while compiling the output. Rather than a long winded explanation I’ll just say it doesn’t work so well carrying 1.0 gamma into PShop etc; it will give you a lot of noise. Best to do this step out of the render window.
The other thing are you using the VRay buffer window? You must use this. And MAKE SURE that the little sRBG button isn’t checked at the bottom. This puts a correction of 2.2 gamma on the render, which you’ve essentially already done in the colour mapping.
Let me know if this works for you and let me know if it doesn’t! We’ve tested it on a multitude of jobs and only work in linear now with EXR’s and it works sweet with the above setup.
ok i dont know how to work in a “none” environment in photoshop. ok i ll explain my workflow: i use linear color mapping in vray and put gamma value of 2.2. i render elements like diffuse, gi, reflection..etc etc, i use vray frame buffer and check render to vray raw image file, and change extension to .exr, since i use gamma 2.2 i dont need to put srgb on frame buffer. that way i ll have an exr image with all the render elements as layers ready for compositing. so i assume it s photoshop that s adding another gamma correction to my exr image? so if u can explain to me how to work in a “none” environment in photoshop?…
Hi visual3D,
Sorry the “none” refers to Nuke, if you were to do comping in there. Photoshop doesn’t give you a choice, it just works in a fixed gamma space of 2.2 or sRGB. Let me check some more things…
Where are you saving out of? Are you saving out the exr through the frame buffer tab? Like “save RGB”? If you save out of the normal “save as” dialog, it’ll double gamma it.
The other thing I can think off is are you saving all these passes in one exr file? If so PShop doesn’t like that. It’s best to go through the 2nd save as in the VRay frame buffer tab (where “save RGB” and “save alpha” is) and render out separate exr files for each pass.
And the last thing I can think of is are you outputting 32bit exr’s (full-float)? If you are PShop doesn’t support this and will use it’s completely useless exr 32 bit importer, which will wash it all over the place (I have heard rumours CS5 now supports, but am dubious). When compressing (under options when saving the exr) chose 16bit (half-float), which PShop can handle just fine.
I hope that helps, let me know if any of these options solve the problem and we’ll go from there!
hello,
i do exactly that way, but when i open EXR in PhotoshopCS5 – all the channels are overbrighted and i need to correct exposure 0.45 to each of them, which is not very comfortable each time. actually in Adobe Bridge EXR thumbnail displays in correct gamma – so is there PhotoshopCS5 problem?
thanks for ur help James, well first about CS5 it has no special control over exr files, i m still using proexr in CS3, yes i save all the passes in one exr file, actually vray does but of course not from the vray frame buffer, anyway i got tired of trying stuff in photoshop, i found the fastest way is to disable color mapping correction in render elements, so whn i open the exr file in CS3 the RGB image layer looks gamma corrected twice but thats ok cz i dont need it, i simply need to composite my elements layers, and they look fine. gamma is correct. the good part is that after blending they look ok, lets say 98% like the original image which is very fair and a good start for comping…and most importantly no noise in reflections layer which i find strange lol “since they r gamma corrected in ps” but who cares as long as they dont have noise and they do the job. It s frustrating how adobe still have issues with exr files, i m giving up on photoshop, me getting fusion or nuke soon they r way more compatible…
As far as i know, with these steps, saving in HDRI (.exr..) we are applying twice the gamma correction so we would fix this in PS with Exposure > gamma correction > 0.4545 (inverse gamma).
Another option would be to check “Don’t affect colors” so that the correction would be applied once (always supposing we are with HDRI)
Correct me if i am wrong please
Regards,
Another issue that is not easy to read about is the one talking about the correction of simple Vray materials, this is, flat colors, as i read here_ http://www.scriptspot.com/3ds-max/plugins/autogamma those materials are not affected by our settings above, so is we use them have to apply individually the gamma 2.2, using for example de color c. plugin…
p.d.: sorry for the second post
Hi, a quick question, if I may. You mention half-float a few times but I’m buggered if I can work out how to tell V-Ray to render half-float from it’s frame buffer. It renders full-float and I can’t see any settings to change it. To be clear, what I want is to render multi-channel EXR files at half-float from V-Ray, for comping in Nuke or Toxik. Anyone know how to do this?
If you save as an EXR, go into “settings” of the EXR save dialog box and you’ll see it offers a 16 bit version that you can use, with a whole variety of compressions (i.e. 16 scanline blocks etc). We use this at work as it’s smaller than the 32 bit (full-float) version and still offers a good range.
I am talking about from the V-Ray Buffer, which AFAIK is the only way to get multi-channel EXRs out fo V-Ray. Are you saying that it is tied to file settings in the “Common” panel of the Render Dialog? I’ll give it a go but it seems highly unlikely to me, as I currently don’t have that set up at all and it renders EXRs OK [just not the way I need them]. I found another site yesterday that suggests it can’t be done but ti seems like a major limitation if that is the case.
To really render 32 bit full float in vray, you need a pre render script. see this thread
http://www.chaosgroup.com/forums/vbulletin/attachment.php?attachmentid=3777&d=1270646125
But half float is default and enough (maybe except for some specific situation’s vector pass and depth pass).
If you choose 32 bits exr, to output from vray without the pre script, it will give only a bigger image without the real full float information in it.
also if you comp in Nuke, you need to get scanline EXR when vray renders tiled exr. You need to render to vrimg and then use the utility (vrimg2exr included with vray) to convert to scanline exr.
Hi Strob. Yeah we don’t really bother with 32 bit, but render 16 bit instead. This should give you enough range really, unless you’ve badly lit your 3D. Zdepth can be corrected usually using correct min/ max vales, and pushed as a fair way in comp.
You don’t have to use the vrimag2extr converter any more really. If you render through the vray frame buffer, you’ll see an option to “split render channels”. Tick “save separate render channels” and “save rgb”, browse and save a file, changing the file type to exr. Once you click save it’ll take you through to the exr settings (or click “setup”). Select Zip (16 scanline blocks), and “half float” for the format.
This will now save out a 16 bit format exr of all your passes. Bingo! Maybe I’ll edit above to make this a bit clearer.
Correction 1#:
“You must then use the built in vray frame buffer rather than the standard render window to view the results otherwise you will not see the product of using linear work flow.”
I think not, you have to input “2.2″ to color mapping of vray to view the corrected gamma in VFB only, you can leave it as 1.0 aslong as you use max’s own frame buffer.
and what else, you dont have to input “2.2″ in color mapping at all as you can use the “SRGB” button of “VFB” to ge the same effect.
Hi crystal3D.
Yeah you can use the normal max window, but you have to be careful with what gamma you “bake” into the image. The VRay frame buffer allows you to view gamma 1.0 or 2.2 by pressing (or not pressing) the SRGB button at the bottom. It’s good like that that, so maybe I should just recommend people use it. It has some other great functionality outside the normal max window as well.
And yes you do need to bake in 2.2 gamma in the colour mapping as when you view that image in Photoshop or programs that don’t support 1.0 gamma spaces it will double gamma correct and show washed out. Yes you can use the SRGB button which will gamma correct it, but when you save out that image it will still be 1.0 gamma. Not a problem with programs such as Nuke though that can work in either gamma space.
[...] James Shaw [...]
[...] This scene uses linear workflow. You might to visit the link here to set up so it looks like mine (ignore the EXR stuff in that [...]
Hi James,
Bare with my stupidity as I am a new vray user and you seem to be the only other Kiwi using it. So if I am using LWF and set my colour mapping to 1,1,2.2 and burn the gamma into the image (32 bit .exr), the only way I will be able to view this correctly is by using a post production program (not photoshop) that can work in linear space? It seems as if everyone has the same problem as most use photoshop.
So colour mapping 1,1,1 would require addition of 2.2 gamma in post and to view roughly what the finished product would look like (once 2.2 is added in post) I would use the sRGB button in the VFB?
And colour mapping 1,1,2.2 would require no additional gamma added in post as it already has the 2.2 gamma burnt into the image. As I am adding 2.2 through the colour mapping, I would not use the sRGB button as this would be adding an additional 2.2 onto the already added 2.2? which will make it look washed out.
So only nuke, after effects will be able to open the image correctly (as viewed with the sRGB button off as this is only a “preview” button when saving to an .exr file) Photoshop generally will require a “reverse gamma” of .4545 applied to the image to look correct?
You’ve just about got it yeah. The secret is all through the colour mapping. If the gamma is set to 2.2 here then you can view this image in Photoshop AND all comp programs like Nuke. Photoshop already works in 2.2 gamma, or sRGB, so that’s why we change this to 2.2. We just change Nuke to work in an sRGB or 2.2 gamma workspace, which is in the standard preferences.
If you set the gamma in the colour mapping to 1 Nuke and co will be able to work in a 1 gamma space (just like max can do), but will look wrong in Photoshop, as it cannot. You are correct in if you are using 1 for the gamma, you will have to press the sRBG button on the VRay frame buffer so that it “corrects” the image as if you were viewing sRGB. All it is doing essentially is changing the VRay frame buffer to work in a 1 gamma colour space.
If you are finding Photoshop is doing weird things with your gamma, even though the colour space is 2.2, it will have to do with opening a 32bit EXR file. Photoshop, in theory, can read these but I find it more reliable to output a 16bit TIFF file instead. This still gives you the range of a RAW photo in Photoshop, but is smaller, easier to work with and Photoshop doesn’t get confused with the file. Remember Adobe hates OpenEXR formats.
I hope that makes sense! Post some specific problems you’re having if you’re still having issues. ;-)
Sweet as. I will take the 16 bit TIFF route instead until photoshop releases an OpenEXR friendly version. Thanks so much for taking the time to clear this up as I was losing sleep over it :)
[...] been using this linear workflow for 2 years and standardised our settings. They can be found here: http://www.jamesshaw.co.nz/blog/?p=155 at the top of the post. You can use 1.0 gamma for the colour mapping gamma only if the program you [...]