You’re using Draft for the Multi-Region tile assembly right? That means no RenderElements in EXRs will survive the stitching process correct?
Render elements work fine as long as they are separate files, for the Multi channel EXR’s Draft currently doesn’t support them. I have talked to the draft team, and they hope to be able to work on this within the next couple of weeks however I cannot give an exact timing.
Grant
This is very important. Draft must support multi-layer/channel exrs, as well as supporting as many other multi-layer formats as possible.
- 1 Please.
Thanks,
Tim.
Yes, it will definitely happen. Either with 6.1 release or a patch shortly afterwards.
cb
- 1 very important for the feature to be used with Vray.
Does draft maintain other exr settings? Data window, metadata, channel data (32bit float vs half float etc)
Not currently, but I’ll make sure all those are on the wishlist if they aren’t already.
- 1 for multi-layer and channel exr processing in Draft. And 16 half float output please.
Like tomorrow
Cheers
Bonsak
HI
Thats great! Just tried it with Draft 1.1 but i can’t figure out how to just pass all the incoming channels through to the output. Like you do in Nuke with “all channels” in the write node. Do i have to map the incoming channel myself?
Cheers
Bonsak
Ooops. Sorry
-b
The Draft folks have been told about this thread… Paul’s working up a reply to you now. But new Draft threads should definitely be added to the Draft forum… if you want Draft folks to find them faster.
First, I should mention that currently we only support multiple layers in EXR files. We do not currently support multiple layers in TIFF files, for example.
Draft.Image.WriteToFile() will automatically write all available channels to an EXR file. For example:[code]>>> import Draft
Draft 1.1.0.54257
img = Draft.Image.CreateImage( 640, 480, channels=[‘R’,‘G’,‘B’,‘A’,‘Z’])
img.GetChannelNames()
[‘A’, ‘B’, ‘G’, ‘R’, ‘Z’]img.WriteToFile( ‘rgbaz.exr’ )
img2 = Draft.Image.ReadFromFile( ‘rgbaz.exr’ )
img2.GetChannelNames()
[‘A’, ‘B’, ‘G’, ‘R’, ‘Z’][/code]
What are you trying to accomplish in your script? The operations required by our Tile Assembler all support multiple layers (CreateImage(), ReadFromFile(), WriteToFile(), Copy(), and Crop()). However, a number of Draft.Image operations do not yet support multiple layers. The unsupported operations include Image.Resize() and compositing. I suspect that you’re using one of these operations, and it’s removing the extra layers. If you need to use one of these unsupported operations, please let us know, and we can add it to our wishlist. As a workaround, if you need to use an unsupported operation, you could copy the extra channels into the RGBA channels of a temporary image, perform the operation on the temporary image, and then copy it back. I can write an example demonstrating this if you’d like.
You can use Draft.Image.HasChannel() to check if your extra layer is present in the image. This might be helpful to check while you’re writing your script. For example, here we see that Image.Resize() has removed the ‘Z’ channel:[code]>>> img = Draft.Image.CreateImage( 640, 480, channels=[‘R’,‘G’,‘B’,‘A’,‘Z’])
img.HasChannel( ‘Z’ )
Trueimg.Resize( 320, 240 )
img.HasChannel( ‘Z’ )
False[/code]
Hi
Thanks. I’m trying to set up a proxy workflow from 3d. Exr HD -> Exr halfHD. So i was using Image.Resize(). I see now that it’s not supported yet.
Cheers
Bonsak
Hi Bonsak, I just wanted to check to see if you figured out the workaround from Paul’s reply, or if you’d like some assistance with that?
Hi
Yes i figured it out with a bit of channel name shuffling But as were doing most of our 3d renders in 16b half, the proxy exrs from Draft ends up bigger in file size than the full rez frames So i’ll wait with implementing this in our workflow til Draft supports 16b half.
Cheers
Bonsak
Makes sense!