openexr icon indicating copy to clipboard operation
openexr copied to clipboard

DeepTiledOutputFile won't open in Nuke

Open anderslanglands opened this issue 3 years ago • 6 comments

Originally posted this on Slack but figured it probably belongs here.

I'm having trouble using DeepTiledOutputFile. I have a working test using DeepScanLineOutputFile that I've modified to the Tiled interface and afaict everything is correct. I don't get any errors when writing, but trying to read the resulting file in Nuke the DeepRead node fails with "no deep data found in file". There's definitely data there as it's the same size as the scanline version.

I've got a gist here if anyone could take a look and tell me what I've done wrong: https://gist.github.com/anderslanglands/48998f275e01f594a57be0c2bacaa65d

I'm using OpenEXR 3.0.1 and Nuke 11.3v4

anderslanglands avatar Jul 01 '21 19:07 anderslanglands

Nuke has never support tiled deep EXR files.

dekekincaid avatar Jul 01 '21 19:07 dekekincaid

The regular scanline InputFile interface can read tiled files, using an internal cache to store a row of tiles. I believe that is the mechanism Nuke uses to read regular tiled files. OpenEXR has no API for reading DeepTiled images as any other format. There is long standing request (#70) to support reading deep tiles in the regular scanline API, but that wouldn't work for the DeepRead Nuke node, as it would provide a "flattened" image. If OpenEXR were to support reading deep tiles using the deep scanline API, it would require a potentially very large deep cache, as a full row of deep tiles can be very large. Perhaps it would be better if Nuke supported DeepTiled images directly, since it could then manage its own caching better, and would not need to load the entire scanline of tiles if it only required a small area of the image. Alternatively, a separate utility (exrunmaketiled?) could be made to convert tiled images back to scanline so they can be loaded . #70 and #71 have been sitting around for a while, largely because it seems deep tiled images are not heavily used and there doesn't seem to be much demand for better support for them.

peterhillman avatar Jul 01 '21 20:07 peterhillman

Aha! Thanks Peter... guess I shouldn't be using Nuke as the arbiter of whether a file can be opened correctly...

Reading #71, since only ONE_LEVEL is supported and We don't have a way of converting back and forth between DeepTiled and DeepScanLine, it seems like DeepTiled is a dusty corner of the API that's there for the sake of symmetry more than anything?

On Fri, 2 Jul 2021 at 08:11, peterhillman @.***> wrote:

The regular scanline InputFile interface can read tiled files, using an internal cache to store a row of tiles. I believe that is the mechanism Nuke uses to read regular tiled files. OpenEXR has no API for reading DeepTiled images as any other format. There is long standing request (#70 https://github.com/AcademySoftwareFoundation/openexr/issues/70) to support reading deep tiles in the regular scanline API, but that wouldn't work for the DeepRead Nuke node, as it would provide a "flattened" image. If OpenEXR were to support reading deep tiles using the deep scanline API, it would require a potentially very large deep cache, as a full row of deep tiles can be very large. Perhaps it would be better if Nuke supported DeepTiled images directly, since it could then manage its own caching better, and would not need to load the entire scanline of tiles if it only required a small area of the image. Alternatively, a separate utility (exrunmaketiled?) could be made to convert tiled images back to scanline so they can be loaded . #70 https://github.com/AcademySoftwareFoundation/openexr/issues/70 and #71 https://github.com/AcademySoftwareFoundation/openexr/issues/71 have been sitting around for a while, largely because it seems deep tiled images are not heavily used and there doesn't seem to be much demand for better support for them.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/AcademySoftwareFoundation/openexr/issues/1080#issuecomment-872519440, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOYQXIOWNKUDVR2MYMUOI3TVTDVNANCNFSM47VJNG7A .

anderslanglands avatar Jul 01 '21 20:07 anderslanglands

oiiotool deep_tiled.exr --scanline -o deep_scanline.exr oiiotool deep_scanline.exr --tile 64 64 -o deep_tile.exr

lgritz avatar Jul 01 '21 20:07 lgritz

Heh of course oiiotool does it. Thanks Larry! And Nuke opens the result just fine as expected.

On Fri, 2 Jul 2021 at 08:34, Larry Gritz @.***> wrote:

oiiotool deep_tiled.exr --scanline -o deep_scanline.exr oiiotool deep_scanline.exr --tile 64 64 -o deep_tile.exr

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/AcademySoftwareFoundation/openexr/issues/1080#issuecomment-872533229, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOYQXJTGPES6AEESYSJGXDTVTGMPANCNFSM47VJNG7A .

anderslanglands avatar Jul 01 '21 20:07 anderslanglands

We use / have used tiled deep very extensively over the years, just because it was a better fit when outputting from our tile-based renderer. But, yeah, we had to convert before it gets to Nuke.

lgritz avatar Jul 01 '21 20:07 lgritz