Well there's your problem, you said 'is' instead of 'should be'...! ;)
The trip up is in DDImageAdapter.cpp line 274 where deep samples are copied into the Dcx::DeepPixel - any samples with Zf==inf are skipped:
// Skip samples with negative, infinite or nan Zfront:
if (Zf < 0.0f || isinf(Zf) || isnan(Zf))
continue;
I can't remember the particular reason for the isinf() test except that I was probably trying to filter out spurious Z values.
I think it's safe to remove that test and leave in the isnan() as I've definitely seen problems with nan Z's:
// Skip samples with negative, infinite or nan Zfront:
if (Zf < 0.0f || isnan(Zf))
continue;
However there's also an isinf() test in DcxDeepPixel.cpp line 1262 that will likely trip up the overlap flattener into skipping Zf==Zb==inf samples:
if (!isinf(segment.Zf) || !isinf(segment.Zb))
{
That will likely need to be turned off entirely if Zf==Zb==inf is considered legal:
{
There's also two more isinf() tests in DcxDeepTransform.cpp line 341 and 450 that may need to be removed if you're using the DeepTransform Nuke node. They may mess up the filtering by skipping samples.
And there's a final one in DcxDeepImageTile.cpp line 236 that's the same as the DDImageAdapter.cpp test - remove just the isinf(Zf) and leave the isnan(Zf).
Hopefully that does the trick, I can't think of anything specific that's relying on Zf being < inf.
-jonathan