Date
1 - 10 of 10
Grayscale EXR
Larry Gritz
It would be a great addition for the project documentation itself to give more prescriptive/opinionated advice on interpretation of channel names.
|
|
Eskil Steenberg
Hi
When I implemented OpenEXR, this was one of my pain points. There are specifications for how to find the different channels like R G and B in a property or a pixel, but no specification of what the properties should be named, other then left/right eye. I would like to see Depth, diffuse, spectacular, transparency, normals, roughness and other usual suspects. Adding guidelines for this would make it much easier to write applications that does the right thing without user input. Cheers E |
|
Brendan Bolles
From the Technical Introduction to OpenEXR:
Converting RGB data to luminance/chroma format also allows space-efficient storage of gray-scale images. Only the Y channel needs to be stored in the file.The RgbaInputFile class works this way. So I think it's safe to say Y for grayscale is the standard. There's a sample file in openexr-images on Github. After Effects and Nuke both read it properly. On Thu, Apr 15, 2021 at 07:33 PM, Larry Gritz wrote: It's common practice to write grayscale as a single channel image. |
|
Larry Gritz
I agree, if the data represents a coverage mask, "A" is the more appropriate name. "Y" implies that it's intensity or something.
Hopefully, any reader should be smart enough that if you're looking for one channel and it sees a file with one channel, it's flexible enough to use it even if it's not the expected channel name.
|
|
Michael Wolf
Hallo Rhys,
On Friday, April 16, 2021, 4:06:15 AM, you wrote: None of these solutions seem ideal. Is there some other method I have My end goal is to create masks and textures for use in a wide variety of 3DAfaik Nuke assumes masks to be stored as 'A' - which stumped me as well since I initially used 'Y' as well. Cheers, Mike -- db&w Bornemann und Wolf GbR Seyfferstr. 34 70197 Stuttgart Deutschland michael.wolf@... http://www.db-w.com tel: +49 (711) 664 525-3 fax: +49 (711) 664 525-1 mob: +49 (173) 66 37 652 skype: lupus_lux Support us on Patreon: https://www.patreon.com/dbw |
|
Rhys D
Seems like I have my answer then. Thanks. On Fri, 16 Apr 2021 at 14:51, Larry Gritz <lg@...> wrote:
|
|
Larry Gritz
I have no idea.
I would like to think that any sane application would notice a single channel and know what to do? But applications can do anything, it doesn't have to make sense. There is nothing you can do that will guarantee the behavior you are hoping for across all apps that you didn't write. I really only access OpenEXR files via the OpenImageIO APIs, and they will definitely do the right thing. I would like to think that if OIIO was writing OpenEXR files in ways that other non-OIIO-based apps were misinterpreting, I would have heard complaints a long time ago. -- lg
|
|
Rhys D
Thanks Larry. If I have a single Y channel, can I count on most applications to open that channel if there is no RGB? On Fri, 16 Apr 2021 at 14:33, Larry Gritz <lg@...> wrote:
|
|
Larry Gritz
It's common practice to write grayscale as a single channel image.
I tend to like "Y" as the channel name when there is only one channel and it represents gray scale. I think this is better than "R" because it isn't red.
|
|
Rhys D
Hi, I am a new list member, so I hope I am asking my question appropriately. What I am wondering is if there is any standard practice when it comes to writing grayscale EXR files. The reason I want to write grayscale files is to save memory when my images are just single channel. As far as I know there are 4 options that I can see. 1: Write full RGB with the same in each channel. Problems: Uses 3X memory when loaded into another application. Larger files. 2: Write just R channel. Problems: Loads as a black and red image in a lot of programs. 3: Write just the Y channel of a YUV image. Problems: When it loads into another application, it expands out to RGB. 4: Write a custom single channel. Problems: Other applications won't know to read that channel. None of these solutions seem ideal. Is there some other method I have missed? My end goal is to create masks and textures for use in a wide variety of 3D applications that use less memory due to the fact that they are single channel. Thanks, Rhys. |
|