OpenEXR layers from View Layers with names containing a period can't be read by Nuke #71574
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#71574
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Operating system: Windows
Graphics card: GeForce RTX 2080 Ti
Blender Version
Broken: 2.82
Short description of error
OpenEXR file reading generally assumes a layer naming convention of
layer.channel
. If Blender's View Layer names contain periods, these names lead to problems within certain software. It's arguably said software's problem rather than Blender's (RV reports and displays everything just fine, Nuke doesn't) but given that Blender is not working per the convention, I think this might be fixed more easily on Blender's side than on other software's.Exact steps for others to reproduce the error
The Sets.Combined channel will load just fine (as Sets_Combined), but Sets.Glass.Combined will show up as Sets_Glass.Combined_R, _G, _B and _A. These names are not present in the file so no data is accessible.
This looks like some weird . and _ replacing on Nuke's part, which I agree seems very unnecessary, but could be avoided altogether if Blender would stick to the naming convention.
#71574.blend
Added subscriber: @frameshift
Added subscriber: @dfelinto
I don't get it. Why don't you simply NOT use . in your view layer names?
But I suppose we "could" replace . by _ when saving them. But to help moving this further, please:
There is no 2.82 release yet. Can you see if it happens with the official 2.80 and also 2.79 (we changed somethings after 2.7x)?
Also, as per our instructions lease attach a simple sample file reproducing the issue. And in this case a EXR would help too.
That's obviously my workaround now. I'm simply pointing out that Blender isn't following a common convention, and its own convention is to use periods in all datablock naming, including view layers. Which I happen to prefer over anything else for a number of reasons.
I call this a bug because of both the convention and the fact that it confuses the hell out of people when a) they want to stick to Blender's datablock naming convention, but b) also want to read Blender EXRs in industry standard software. At first, I honestly thought I had reached some EXR layer count limit.
I used a master build from a few days ago... maybe it still says 2.81, I didn't check. I can check 2.80 and 2.79 after the weekend, but I don't really see how that has more value than a recent build.
The instructions say sample file or default startup file, in this case the steps to reproduce are obviously based on the latter as I didn't see the point of uploading a blend file with one more view layer than by default. I can provide an EXR after the weekend, but honestly, it takes 10 seconds to make one.
Added subscriber: @lichtwerk
Just putting out the relating information from OpenEXR itself:
https://www.openexr.com/documentation/ReadingAndWritingImageFiles.pdf
Under
Layers
we find:Without having a deeper look (I havent checked how the names are actually ending up when blender writes them), I am reading this as
Sets.Glass.Combined
would be a valid name for layer/sub-layer?(Unless a deeper nesting is not allowed? Maybe there is no
layer.sublayer.sublayer.channel
allowed?)note: looks like we are not using the above
ChannelList.layers()
+channelsInLayer()
(OpenEXR documented) method, but cooking our own as well, seeimb_exr_split_channel_name
/imb_exr_split_token
but this seems to come down to the same...Adding an example file to the report description.
Output of
exrheader
of that file giving the channels as we write them [but that was also expected]:Added subscribers: @Sergey, @dr.sybren, @brecht
CC @dr.sybren , @Sergey, @brecht
It's not about how much time is spent making them. It's about being 100% sure we're looking at the same thing as you are.
I haven't really found anything about sublayer.sublayer - this might very well be Nuke making an undocumented judgement call, making this bug perhaps better reported to them instead.
To me it looks like Blender adheres to the OpenEXR documentation, so from what I can see it's not a bug.
Changed status from 'Open' to: 'Archived'
Blender was an early adopter of OpenEXR, and followed the specification. Other applications did not and now there is this incompatibility.
This is a known issue that we in the past we have not considered a bug.
It may be addressed as part of #68924 (OpenEXR pipeline improvements).