32 bit float exr's from COPs

   2901   8   2
User Avatar
Member
57 posts
Joined: Jan. 2015
Offline
How does one save out a 32bit float exr from COPs, currently it does 16bit float, but for precision reasons I need full 32bit float.

thanks
Chris
User Avatar
Member
57 posts
Joined: Jan. 2015
Offline
or maybe it just saves out whatever it is given? which if that's the case, how does one process a COP VOP in 32bit float?

I have a height field that I pass it to COPs then use a VOP to put the height data into RGB which at that point it becomes 16bit float. Then when I save that out as a exr, and bring it back into SOPs as a heightfield file, it doesn't match, which means I lost precision at some point. interestingly enough if I just do a heightfile and connect to that VOP and grab the Red channel, it looks fine. so there is something about the exr saver that loses precision. don't know if it's a 16bit thing or what.
User Avatar
Member
57 posts
Joined: Jan. 2015
Offline
so here is a simple scene, doing what was explained above.

I also brought back the exr and blured it in 16 bit and 32 bit to compare and it's clearly the 16bit causing issues.

I just don't understand how I can connect directly to a 16bit red channel after the VOP and have it look fine,

so for clarity, how can I VOP in 32bit, and if I did would that force the exr saver to write a 32bit exr?

Thanks

Attachments:
bitDepthbug.hip (131.9 KB)

User Avatar
Member
7737 posts
Joined: Sept. 2011
Offline
The bit depth is set by whichever node is creating the image planes. If you are using the ‘SOP Import’ node, it has a parameter on the image tab “Raster Depth,” which is “Default Depth” by default. This uses the depth of the project, which is 16 bit by default. You can change the project depth (for your scene file) in the Composite project settings. (Edit menu > compositing preferences. or Alt-Shift-I. Or change it just for this node by selecting an alternate depth from the drop down.

It is possible to change depth after an image plane is created, but by this time information will have already been lost.
User Avatar
Member
57 posts
Joined: Jan. 2015
Offline
thanks for the quick response jsmack, I checked and the SOP import node was already bringing it in at float 32, is there a way to tell a specific node, aka the VOPCOP2filter to process at 32? I can't find anyway to do it and that seems to be the spot where we go from 32 to 16 float.

Thanks
User Avatar
Member
7737 posts
Joined: Sept. 2011
Offline
If you use a vopcop2generater you can control the bit depth of generated channels. Otherwise, with the vopcop2filter, new channels assume the project default, which can be changed in the compositing preferences. It would seem one would want new channels to have the same depth as the input ones, but here we are.
User Avatar
Member
57 posts
Joined: Jan. 2015
Offline
thanks so much, being able to vopcop at 32 fixed the issue.
User Avatar
Member
385 posts
Joined: July 2018
Offline
old thread but i've been having some issues exporting an exr at the wanted depth.
my project compositing settings are set to 16 bit float as well as my vopcop2generator, but when i export and check the exr using ffmpeg command ffprobe i see it is 32 bit float

Attachments:
Capture.JPG (140.3 KB)
Capture1.JPG (84.4 KB)
Capture2.JPG (67.2 KB)
Capture3.JPG (67.8 KB)
test16f.exr (1014.3 KB)

User Avatar
Member
7737 posts
Joined: Sept. 2011
Offline
exrinfo says the file is 16bit
ffmpeg probably doesn't acknowledge half float format.
  • Quick Links