IMPORTANT: spmask channel names must be changed for release 2.2.2

74 views
Skip to first unread message

Jonathan Egstad

unread,
Feb 14, 2017, 7:38:53 PM2/14/17
to opendc...@googlegroups.com
Unfortunately due to Nuke10 not allowing channel names which start with a number the 'spmask.1' and 'spmask.2' channel names will not translate potentially causing problems with the OpenDCX nuke plugins. We also discovered that channel reordering within the 'spmask' layer was also a possibility depending on the load order of the Nuke plugins - i.e. whether an exr is read before a DCX deep plugin is loaded, or vice-versa.

The original Deep Subpixel Mask paper from DigiPro2015 proposed these channel names:
  spmask.1, 32­-bit float (A-buffer bottom bits 0-31)
  spmask.2, 32­-bit float (A-buffer top bits 32-63)
  spmask.3, 16­-bit float (flag bits)

OpenDCX release 2.2.1 changed spmask.3 to better differentiate the A-buffer bits from the flag bits:
  spmask.1,     32-­bit float (A-buffer bottom bits 0-31)
  spmask.2,     32­-bit float (A-buffer top bits 32-63)
  spmask.flags, 16­-bit float (flag bits)

OpenDCX release 2.2.2 (March 1st, 2017) will have spmask.1 & spmask.2 changed to accommodate Nuke10's channel name restrictions, and the flags channel changed to 32bit float storing a bit pattern rather than a integer float value:
  deepabuf.sp1,   32­-bit float (A-buffer bottom bits 0-31)
  deepabuf.sp2,   32­-bit float (A-buffer top bits 32-63)
  deepmeta.flags  32-­bit float (flag bits & partial-spcoverage bits)

These names and pixel types are now defined in DcxChannelDefs.h.

* OpenDCX's standard-channel handler will automatically translate the older names into the new names (check out g_standard_channel_table[] in DcxChannelSet.cpp) so older exrs will still read in properly. When using DcxDeepImageOutputTile to write out an exr the new names get used by default.

* Any renderers currently outputting dcx data will need to be updated to the new names. Afaik only Houdini is currently capable of outputting dcx deep data.

* The best long-term solution for anyone wanting to use Nuke8/9 with OpenDCX 2.2.2 and a mix of old and new exrs is to modify the exrReaderDeep plugin to translate the older channel names into the new ones.

Mark Elendt

unread,
Feb 15, 2017, 3:04:36 PM2/15/17
to OpenDCX Forum
The first daily build of Houdini 16.0 will have these changes.

Jonathan Egstad

unread,
Feb 15, 2017, 3:57:17 PM2/15/17
to OpenDCX Forum
Cheers Mark!

Jonathan Egstad

unread,
Feb 22, 2017, 4:22:37 PM2/22/17
to OpenDCX Forum
Mark, you guys are too darn fast...!  :)

I forgot that the flags channel definition in 2.2.2 has changed from 16-bit half float to 32-bit float, and now stores the full bit pattern (like the spmask channels) rather than an integer float value due to the addition of the 8-bit partial subpixel-coverage weight. Adding 8 additional bits requires 11-bits total which won't fit inside the mantissa of a half.

It seemed prudent at this point to just go ahead and switch to a full 32-bit float so that there's plenty of room for additional bits in the future rather than having to change the channel definition again later on... It shouldn't affect compression of the channel.

Sorry for the late notice!

Jonathan Egstad

unread,
Feb 22, 2017, 9:09:31 PM2/22/17
to OpenDCX Forum
Mark,
There are still issues with Nuke and the updated sp1/sp2 channel names, so please stand by until we can verify a good working set of new names.

We will likely need to change the layer name from 'spmask' to something else to avoid layer/channel ordering errors that can cause Nuke to silently fail.

Thanks for your patience.

Jonathan Egstad

unread,
Mar 1, 2017, 5:59:44 PM3/1/17
to OpenDCX Forum
Hi Mark,
The new channel names and pixel types are listed below and in the first post on this thread. The layer names had to change as well as the channel names to avoid channel ordering conflicts.
  deepabuf.sp1,   32­-bit float (A-buffer bottom bits 0-31)
  deepabuf.sp2,   32­-bit float (A-buffer top bits 32-63)
  deepmeta.flags  32-­bit float (flag bits & partial-spcoverage bits)

Thanks for your patience,
-j

Mark Elendt

unread,
Mar 2, 2017, 9:38:53 AM3/2/17
to OpenDCX Forum
This should be in tomorrow's daily build of Houdini.  Please let me know if there are any issues.
Reply all
Reply to author
Forward
0 new messages