PDA

View Full Version : max2008 EXR issue and possible fix?


PsychoSilence
04-02-2008, 10:56 AM
Dear Community,
due to the current job i have to use Max10 and the EXR file format...but i had quite the same issues with max9 and EXR:

When i render a single EXR frame locally (having added all necessary render elements in advance of cause) i get all the desired render elements such as NoreRenderIDs, etc. all good!

When i render a sequence of EXRs (active time segment or range, doesnīt matter) i get only R,G,B and Alpha...

same happens when i render a sequence at the farm with backburner! R,G,B and Alpha...

When i render single frames divided by commata it seems to work though!!!

Any experience with that anyone?

Or is there a script maybe that takes the active time segment, divides it by commata and copies the values to the frames line in the render dialog or script listener...?


thanks in advance and kindest regards,
anselm

Gravey
04-02-2008, 11:49 AM
i dont really use EXRs like that much but here's a quick script that you asked for:
(
renderSceneDialog.close()
local frames = ""
local start = animationRange.start
local end = animationRange.end
for i = start to end do
(
str = i as string
str = substring str 1 (str.count-1)
append frames str
if i != end then append frames ","
)
rendPickupFrames = frames
)

PsychoSilence
04-02-2008, 11:56 AM
hey Gravey,
that was a quick reply :) thank you VERY MUCH for the script :) that will help me alot until there is a solution for the EXR issues.


kindrest regards,
Anselm

Kramsurfer
04-02-2008, 05:05 PM
Are you setting Render Elements in the RE dialog or the openEXR extra Channels?

Via the standard Render Elements Dialog, we've used them extensively without issues.

XP pro 32 and 64 mixed / Max 9-sp2 / Vray 1.50.00 / Backburner 2k7.0.1

PsychoSilence
04-02-2008, 05:38 PM
i set the EXR extra channels within the setup dialog of the exr format. all the elements are set to active just to make sure the compositors have all they need :D

PiXeL_MoNKeY
04-02-2008, 07:24 PM
Yeah this is an issue with the EXR settings and the .INI file that stores them. The settings aren't transfered with the files. Solution: setup EXR how you usually work, copy the file to a shared location, send a per server BB job through backburner with a batch file, done. Here is what I use here at the office:@echo off
COPY "\\<path>\openexr.ini" "C:\Program Files\Autodesk\3ds Max 2008\plugcfg\"
exit@echo off
"C:\Program Files\Autodesk\Backburner\cmdjob.exe" -jobname "Replace EXR" -manager <name> -priority 0 -perserver "\\<path>\copyEXR.bat"
exitHope that helps,
-Eric

PsychoSilence
04-02-2008, 08:12 PM
cant i manipulate the openexr.ini file and copy it to all mashines? like setting all necessary "FALSE" values to "TRUE"?
hope i get this right, so if i cant copy&paste the *.ini to all mashines and set it to "read only" so max canīt modify it at itīs will i have to send a command line render job and have to generate the *.bat files from your code?

Iīm with stupid atm...too many nightshifts :(

my openexr.ini

[ExrDefaultOptions]
UseInternalImportDefaults=FALSE
UseInternalExportDefaults=FALSE
[ExrNetServerParamOverrideOptions]
NetServersUseExportIniFileSettings=FALSE
NetServersUseImportIniFileSettings=FALSE
[ExrImportInternalDefaultParams]
Dflt_StorageType=FLOAT32
Dflt_Exponent=1,000000
Dflt_BlackPoint=0,000000
Dflt_WhitePoint=1,000000
Dflt_RGBLevel=1,000000
Dflt_RGBOffset=0,000000
[ExrExportInternalDefaultParams]
Dflt_RGBABitDepth=FLOAT
Dflt_SaveRedChannel=TRUE
Dflt_SaveGreenChannel=TRUE
Dflt_SaveBlueChannel=TRUE
Dflt_SaveAlphaChannel=TRUE
Dflt_UseRealPixels=FALSE
Dflt_ApplyColorTransform=FALSE
Dflt_Exponent=1,000000
Dflt_PreMultipliedAlpha=TRUE
Dflt_OverrideFrameNumDigits=FALSE
Dflt_FrameNumDigits=4
Dflt_Compression=ZIP16
Dflt_AddAttr_Comment=FALSE
Dflt_AddAttr_ComputerName=FALSE
Dflt_AddAttr_SystemTime=FALSE
Dflt_AddAttr_LocalTime=FALSE
Dflt_AddAttr_VersionEXR=FALSE
Dflt_AddAttr_Version3dsMax=FALSE
Dflt_AddChan_ZBuffer=FALSE
Dflt_AddChan_ObjectID=FALSE
Dflt_AddChan_MaterialID=FALSE
Dflt_AddChan_RenderID=FALSE
Dflt_AddChan_UV=FALSE
Dflt_AddChan_Velocity=FALSE
Dflt_AddChan_Normal=FALSE
Dflt_AddChan_Coverage=FALSE
[ExrImportParams]
StorageType=FLOAT32
ApplyColorTransform=FALSE
Exponent=1,000000
BlackPoint=0,000000
WhitePoint=1,000000
RGBLevel=1,000000
RGBOffset=0,000000
[ExrExportParams]
RGBABitDepth=HALF
SaveRedChannel=TRUE
SaveGreenChannel=TRUE
SaveBlueChannel=TRUE
SaveAlphaChannel=TRUE
UseRealPixels=FALSE
ApplyColorTransform=FALSE
Exponent=1,000000
PreMultipliedAlpha=FALSE
Compression=ZIP16
OverrideFrameNumDigits=FALSE
FrameNumDigits=0


or is it enough maybe to modify these lines?:
NetServersUseExportIniFileSettings=FALSE
NetServersUseImportIniFileSettings=FALSE

thanks in advance and kindest regards,
anselm

PsychoSilence
04-03-2008, 10:29 AM
any info anyone? :cry::banghead::bowdown:

Kameleon
04-03-2008, 10:56 AM
Cant you copy your ini to a shared network path and have a pre-render script that copies it to the current machine rendering? Just a thought...

PiXeL_MoNKeY
04-03-2008, 02:55 PM
The batch file does the copying of the .ini file to all the machines. Saves a lot of time to simply send a BB job that handles the copying for you :). copyEXR.bat is the command sent to every render machine. replaceEXR.bat is the BB batch that submits the job to every BB machine. Basically copyEXR.bat does all the work, while replaceEXR.bat tells all the machines what batch file they should run, and the fact that all machines should run that job.

NOTE: I used the BB job approach because it doesn't launch Max so there is no issue with the file being loaded and then replacing it, and wondering which file will be saved back once Max closes.

Hope that makes a little more sense,
-Eric

HOW TO USE IT:
1) make the changes to your openexr.ini file and place it on a shared network location.
2) Copy the code from copyEXR.bat to a new batch file and save it to a shared network location (Edit the code with the proper path to your openexr.ini file and Max install locations).
3) Copy the code from replaceEXR.bat to a run command prompt (ignore the first and last line, and edit path to the copyEXR.bat), dos command prompt (ignore the first and last line, and edit path to the copyEXR.bat), or to a new batch file on any one machine (edit path to the copyEXR.bat).
4) Run replaceEXR.bat code from one machine to submit the job to backburner and have all machines execute it.

Kramsurfer
04-08-2008, 11:44 PM
I looked into this here at work for myself and found we did have the same issue. Apparently no one on the floor thought uncompressed 128bit files where much of an issue...
Anyway, I solved the issue here with a PostFileOpen callback, which sets properties via MaxOpenEXR interface.
We can now decide what's 16bit or 32bit per channel as well as w/wo Alpha and PreMulti, per submittal.

Or if you wish to NOT save the green channel, try the code below... :-)

postOpenStr = ( "
MaxOpenEXR.SetSaveBitDepth 1
MaxOpenEXR.SetSaveCompressionType 4
MaxOpenEXR.SetSaveUseRealPix false
MaxOpenEXR.SetSaveAlpha true
MaxOpenEXR.SetSaveRed true
MaxOpenEXR.SetSaveBlue true
MaxOpenEXR.SetSaveGreen false
MaxOpenEXR.SetSavePreMultAlpha false
")
callbacks.addScript #filePostOpen postOpenStr id:#SetEXRSettings persistent:true

I found using a bitDepth of 8 bits per channel produces a black frame everytime.. ( plugin issue or Vray? not that there is a point to saving an 8bit .exr )

FDreesen
04-09-2008, 02:16 PM
We actually solved the issue of OpenExr channel settings not being transferred not by copying the openexr.ini to all machines but the openexr_temp.dat which is located in the same directory. Not sure if this had been changed in max 2008 but the openexr.ini alone did not make it work for us (on max2008).

Kind regards,
Friedolin Dreesen

CGTalk Moderation
04-09-2008, 02:16 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.