A few amendments to the video. Thanks commenters for pointing this out. 1. The PNG/EXR difference comparison does not show only compression. It shows every difference between the two. 2. Often, TIFF is the preferred deliverable for print. 3. Cryptomattes ought not be lossy. Use ZIP 32-bit. 4. Bit-depth doesn't only double the amount of data; it does so for each channel. So an RGB image with double bit depth increases six-fold in precision, while only doubling in data. Good trade-off. 5. DWAA doesn't store 32-bit information, which is why the sizes are the same in the chart. (Unless the passes are named in a specific way.) 6. EXR doesn't bake in the tone-mapping. If you need that, TIFF is a good alternative to PNG.
When you say EXR doesn't bake the tone-mapping are you referring to the color transform? I don't have an AGX color transform option in Krita, so baking that in to png is the only way
@graphikeye You can use TIFF too, as it bakes transforms and its 32bit. If You still wanna use EXR, You can use build-in Krita's OpenColorIO library and set path for Blender LUTs configs, it will let You use the same configs, but only for View transform(AgX/Filmic), not Look. For more info check out Krita docs -- Color Managed Workflow part, they mention Blender interaction here.
@@stephen-boddy Shit, you're right. What I meant is that it increases the precision six-fold. Thanks for pointing it out. There's a lot of places to stumble on this topic.
My only problem with EXR is that there's no accurate color configuration for it in Premiere Pro, especially for Agx. Unless there's one that i don't know of. Would love if you could share your knowledge on this.
I think the comparison at 5:00 is a bit misleading. PNG is lossless format so it should show the exact same pixel values if you're encoding the same data. The difference there is that EXR can store floating point values where PNG only stores integer values regardless of the bit depth hence the massive difference in the sky and highlights. This makes sense in the context of rendering but there are scenarios where you don't need the data to be HDR (when creating textures typically) it would be interesting to compare how EXR and PNG compare in that scenario
Honestly, you're right on the money. It was a bit of an unfair comparison in a few ways, and I wish in hindsight that I'd shown a bit more nuance. As you say, the argument doesn't necessarily hold regarding textures. Thanks for the thoughtful comment.
@@kzone272 that's a common display error with PNG when shown in things like a browser but I find it you open it with photopea it displays correctly, as it does when loaded into a project as an asset
@@kzone272I believe that's simply due to the display transform, like how rec709 is gamma 2.2 and srgb is gamma 2.4, the EXR is also a "HDR" image, so most applications will choose to display it in HDR if your monitor supports it, I may be wrong though
0:55 is misleading. Bit depth refers to the precision with which the SAME image/video is stored. Storing values beyond "white" has nothing to do with the number of bits. You can do that in 8 bits or any number of bits. Also, saying that 8, 16 and 32 bits "double" the amount of data is strange since we are talking about precision. A 16bit PNG has 256 times more possible values per channel than 8bit. It's not just 2x as precise. This explains much better why 16bit is fine in almost all cases - and why some industries work with 10 or 12 bits - because 16 or 32 bit is unnecessarily precise. 3:20 He confuses HDR with lossless. PNG is lossless meaning an encoded image can be decoded into the exact same data. He actually means HDR again (storing values beyond white). But PNGs are also often used for that. 5:00 For whatever reason he is comparing a HDR file with a non-HDR file. Even if he thinks these files store the same data, the comparison doesn't make sense since two lossless files with the same precision obviously should contain identical pixel values - assuming you encode and decode the data correctly. Strange "proofs".
Learning about DWAA EXRs a few years ago blew my mind. Why this didn't become the gold standard for decently compressed high quality outputs IMMEDIATELY is just mind boggling to me. We've had this format for so long and it's been practically ignored for like half its existence.
Great explanation! But, regarding deliverables, one should always talk to the client, or in my case, check with the printer first. The printer told me that he prefers 16 bit TIFFs for best quality. The test prints for my upcoming exhibition are looking gorgeous, btw. 😎
Your comparison between the EXR and PNG isn't showing the difference in compression quality. PNG exports with SDR tonemapping, whereas EXR export are linear unclipped HDR data. This means you will see a big difference in the brighter areas, which are squashed down when doing SDR tonemapping. You should have exported the PNG with linear tonemapping and clipped the EXR to a max of 1.0 to get a perfect comparison.
You're absolutely right. That would've been a more fair comparison. But the HDR/SDR difference is one that I feel is relevant and that I wanted to show. But you're right; it definitely doesn't show compression alone. I wouldn't say that breaks the core argument though.
DUDE! i have 10 years of blender experience so i didn't learn anything new (except that win+ctrl+shift+B which blew my mind lol), but i still watched every video in this series because the explanation quality was SO high and enjoyable. i'll pass the link to this playlist to all of my students! thanks for you hard work, the community is getting so filled by literally noobs teaching everybody how to do stuff that people like you are a much needed breath of fresh hair!
The reason jpeg is smaller is because you loose a lot of information about the Hue even if your setting is acceptable for your eyes that are better at detecting contrasts. If you do professional work please use png as it correctly stores the result of your render, jpeg does not and it would show as soon as you start doing color corections. For your delivery still use png as it's the most accurate output you can give too. If you don't know if you need lossless, you do. Always. As for the test shown with the difference layer on a png, what it was is the color space change. If someone needs a smaller size he can always convert the images. If the goal is to convert the images to video at some point you would have double compression on jpg. Stick to 16bit png for work and delivering with 8bit png is fine.
JPEG can't do very slow gradients because there is quantization in YCbCr domain, which is only removed with the new JpegLi codec which no software has. You can see a similar effect in the video encoding on the chart scenes here. They show a grey ellipse with blocky borders instead of a smooth blob. Lossless EXR compression is better/faster than PNG. But it's a very complex format and only pro tools support it fully.
Hey, thanks for the In-Depth Video. Love to see more professional knowledge getting to the Blender Community. You could have added that there is a difference between 16 bit EXR and 16 Bit png. 16bit exr is "half" float meaning that you get 32bit float values where negative colors (lower that 0) or overbrights (brighter that 255 or 1) while having half the precision. 16 bit png and tiffs only have integers values so you dont have negatives or overbrights. In regards to png vs jpg, png gets smaller file sizes whith the amount of color represent. so a 10k image with only black and white and no greys should be much smaller than the corresponding jpg. Kepp up the good work :)
One issue I've experienced with using exr is that when it's saved in blender, it usually doesn't look like the png file when loaded into a photo manipulation program like krita. This is usually cos of the color management (AGX or Filmic)
For compositing or color grading, always go for EXR no brainer. For printing, TIFF is preferable. If you do none of those? PNG or even JPEG is fine. EXR is basically digital render equivalent of camera RAW format. If you want the best color grading workflow you have to use RAW.
My problem with EXR is that the export is in completely different contrast and colors than what the vieweport shows me. I understand that EXR carries a greater depth of color but honestly, I don't have the time and I'm tired of having to adjust contrast and complexly recolor every export.
Size these days doesn't matter in most cases. PNG is still the most compatable and reliable format. MOST reglar programs don't support DWA or EXR etc. PNG of JPG or svg are the primary formats I use.
9 หลายเดือนก่อน
Fantastic vid. Ive always used png, now i know better. Greetings from Ecuador, you've earned a sub!
In the comparison i think we compared 32 bit EXR file with 16 bit PNG file. This can be a reason for the difference in quality. Btw great video, learned something new.
non-HDR formats typically use a color space that applies a gamma function to squeeze more important color data along the bit depth. Thats why you see the colors change doing a diff check on the EXR vs PNG (lossless). DDWA and JPG compressions are very destructive even if you don't think you can see anything change. Also PNG uses zip compression per scan line, so at a point it doesn't matter how high you crank the quality slider, the compression will have a diminishing return on size and will impact load times. I personally don't see why anyone in this day in age would not use lossless, even if your image was horribly compressed blender still unpacks that image in full in memory. maybe you save a bit of time on loading time? but use a NMVe and you'll get 7GB/s transfer speeds and be laughing when your 5GB blend file loads in one second
You're wrong about browsers only supporting 8-bit. You can use AVIF to display 10-bit HDR images, it's supported by most browsers. Also Safari supports HEIC.
Actually JPEG2000 is a better storage format than PNG. It's a more advanced jpeg format that allows for 16-bit integer precision, transparency, and either lossless or lossy compression. The problem with EXR files is that they are not color managed whereas PNG, JPEG, and JPEG2000 can embed that information, you have to know what color space they are intended for which is weird to me, but it is what it is. Also, regarding the 16-bit section, 16-bit can be both integer and floating point, that's an important distinction to make when saving. JPEG is only 8-bit integer, but PNG and JPEG2000 can save 16-bit integer. EXR is floating point in either 16-bit or 32-bit.
Thanks for adding that! I've been curious about JPEG2000, but always considered it too fringe to really use. And you're 100% right about the float and integer point.
Thank you! It was informative and of course fun. That comparison between PNG and DXR was a bit unfair since you know that gamma curve is probably different or something.. but again, thanks!
Exr rules them all. If you increase the dwaa compression up to 500 you can have a smaller version almost the same size as a jpg. Very good to render precomps without noise.
Most the time i want a file that is easy to share and can be edited later. Storage is cheap so 16 bit png is usually fine. If i need hdr then i look at exr.
As a photographer I have found first hand that there are images and situations that can’t be properly displayed using a 100% quality jpeg. It is simply not possible in extreme situations to have smooth gradients. So if you are working in a colorful project I recommend you to test it in some situations. Also, a lot of screens nowadays are 10 bit. All HDR screens are 10 bit, they have to be. But if your image is not in HDR (does blender even support that?) it might not matter. 10 bit would probably solve the Joe’s banding problem, but jpegs don’t support 10 bit. EDIT: As others pointed out in other comments, EXR seems to support HDR andin this video HDR seems to be confused with lossless.
Thanks for sharing! I didn't know about the difference between JPG and PNG regarding (with/without) transparency. I did learn about DWAA codec, but probably didn't need 32 bit for my short 😅 good visual charts too.
thank you. I have been saying this for years, but because png is significantly slower to write than other formats due to the compression. So much so that I have had cases where it took longer to write the frame to disk, than to render it in the first place.
Honestly, when I was working with 3ds max and vray I always exported exr 32bpc but now I'm using blender an I'm more than happy with the default filmic blender tone mapping 😄 it saves me a lot of time. Now I just save it as a PNG 16bpc, do slight color adjustments and it's done for my use case ✨
Thanks for the video! It’s really hard to find storage for png renders but I can’t figure out how to make EXR look the same with AGX color Blender viewport render. I send it to AE and use opencolorIO but it’s not the same with png renders no matter what I do. Can you make a video about this topic?
The more often you use and open a jpg the more the jpg deletes what it considers "junk information". If you're consistently loading a project that opens a jpg and then close the jpg, you're losing image data. Doing this a handful of times won't have a visual difference, but you will eventually start to get banding in similar colors.
That's not quite right. If that were the case, you would see the file size shrink each time you open it. What you're describing happens every time you overwrite the jpeg file, which does not happen by loading it into a project.
Support would be the answer. Jpg and png have been around for ages and are supported most anywhere. Web p and jpg xl are new kids on the block, no idea what their support is. Sure they are great at compression and bit depth, but if they won’t even open that is not useful
What color space are you using (agx, standard etc.) on render, and how do you set it up in davinci? There are tons of tuts about color managment but they all cover ACES
For everything photoreal, I work in AgX with a display transform that suits the scene (I typically leave it at the middle contrast level,) and export in AgX log. In Resolve, I've converted the AgX OCIO to LUTs, which I haven't had any accuracy problems with. Sometimes, I use the AgX OCIO directly in Fusion. But the charts in my videos are typically sRGB, standard tonemapping, to retain my brand colors.
even if you need transparency you can render in Jpeg the color channel and then the alpha channel separatly, since you'll usually only need alpha in compositing that's be fine too
I feel the only reason I use png is to see the thumbnail while it renders.. having to open EXRs every time is a huge pain.. Outside that, Ill change my default settings now thanks!
yes but what about the workflow, preview, editing, and so on. EXR boggled my head and i just switched to jpeg instead. Do you have an upcoming video on working with EXR?
This is almost certainly TH-cam's fault, but the compression artifacts in the video make comparisons like 2:27 less accurate even at the highest quality setting.
I've not used PNG for sooo long now. After about a year of blender, I was tidying up my pc and realized I had 25GB OF RENDERED FILES! Definitely worth thinking about if you're serious with blender
there *MIGHT* be a math problem when you subtracted the 32 bit EXR from the 16 BIT PNG. the PNG is stored as an Integer, while the EXR is stored as FLOAT, affinity *MAY NOT* handle the changes properly and might give misleading results. I would not consider your experiment as any sort of proof, in particular since 16 bit PNG's are lossless . I think the two images are just mapped differently. all that being said, i pretty much exclusively use EXR for everything in much the same way you do, except i use pxr24 for depth maps as the 16 bit tends to be too coarse for the things i do also you can use alpha with jpeg2000 format, but who the heck uses that ? amrite
I guess a solid dark background would be just fine in these cases. I like dark gradients but when they are this subtle they are just banded into blobs when compressed.
I hope someone can answer this but if I want to color grade my render in davinci should I go for 32bit exr or is it not worth it? For context I do vfx for some medium sized brands.
I can recommend Affinity Photo for stills and DaVinci Resolve for video. (Actually, I grade still with Resolve too. The tools are just amazing.) But if you're stuck with Adobe, I get it. My heart goes out to you.@@MStrong95
@@robinsquares Unstucking "yourself" is the ultimate solution. Fusion Standalone is not only worth it (as much as Nuke) but severely overlooked. Compositing programs are AE + PS + Resolve all at once and few people realize it.
I saved a 16k normal map from one of my projects in PNG RGBA 0% compress and EXR DWAA 16bit and the DWAA version ended up being 11MB LARGER than the PNG.
what about the other exr compression files? pxr24? dwab? piz? and do they affect the depth?... also nice video , i always render png and dwaa. Edit: i mean by depth as z depth
There are some small differences between them all, but they all get the job done. I didn't want to get into the details in the video, but here's a summary. PIZ is best for grainy images PXR24 changes the bit depth, which can really help with size, but is slightly more confusing to work with B44 isn't adaptive, so you get more predictable image sizes There's little to prefer DWAA over DWAB. They compress differently sized blocks of data. They should all handle Z-depth the same.
The problem with EXR is that you can't apply the view transforms in blender like AgX or Filmic otherwise I would always use it. The standard view transform in blender which it uses is quite ugly
@@robinsquaresplease make a tutorial for agx in affinity/photoshop. My colors are always way off, I've tried creating luts and such, but no success...
What people always fail to mention is that exr doesnt save the color transform. I havent found a way to re apply agx after in photoshop so this is misleading to say the least. Even if you know how tomedit photos is not easy to color correct an exr file
One more thing about Exr -- sadly, it ignores Color managament in render properties. Yes, that fine if you know how its work, but if no -- you will cry cuz image will not be the same as render with its AgX/Flimic/whatever transforms. There is one sad moment about transparent PNG too -- if you are using any post like bloom/glare and others with transparent background, you will loose it cuz PNG doesnt support premultiplied alpha which one Blender uses.
EXR development is not to be mistaken with how (sometimes poorly and non-standardized) implemented EXR is in some software. The same could be said about Alembic or more lately USD 3d file format.
@@SKIENTIA yep, and thats sometimes really stupid, cuz industry standard software cant provide the same implementation of opensource file format with wide capabilities. Wanna sometimes cry about it(
EXR unfornutely is not usable in Photoshop. As you said the color management is ingored. Really bad. Working with multilayer exr's would make my life a lot easier. I switched from Cinema4d , where you can save out multilayer psd files which is a dream for still images.
Which would be best to use as an overlay in video editing? I used to use Tiff image files, but it had its problems with giving me a white edge, so I switched over to PNG (ping) images and the white edge issue was gone!
So if exr can contain multiple images does that mean you could put say, an albedo map, normal map, roughness map, and AO map in the same texture without having to pack them all into a single image? That could be pretty useful for textuees rhough idk how many game engines allow you to use exrs for environment textures as opposed to png which is compatible with almost everything
Yes, you can store different image like diffuse, AO, specular and many more in single multi-channel EXR file. But loading EXR files take much longer than formats like PNG, JPG, TGA, TIF. You can google what channels the multi-channel EXR file can contain. Hint There are more than 10 channels. And one EXR file can be larger than 100MB which is hardly possible for real-time rendering like 3D games can efficiently render without frame bump. Except your computer is super high end speed. Nowadays there is technic to pack gray scale images into different color channels in the same file like Roughness into Red channel, Specular into Blue channel, Metalness into Green channel of PNG or JPG file. Newer version of Blender can also do this.
A few amendments to the video. Thanks commenters for pointing this out.
1. The PNG/EXR difference comparison does not show only compression. It shows every difference between the two.
2. Often, TIFF is the preferred deliverable for print.
3. Cryptomattes ought not be lossy. Use ZIP 32-bit.
4. Bit-depth doesn't only double the amount of data; it does so for each channel. So an RGB image with double bit depth increases six-fold in precision, while only doubling in data. Good trade-off.
5. DWAA doesn't store 32-bit information, which is why the sizes are the same in the chart. (Unless the passes are named in a specific way.)
6. EXR doesn't bake in the tone-mapping. If you need that, TIFF is a good alternative to PNG.
When you say EXR doesn't bake the tone-mapping are you referring to the color transform? I don't have an AGX color transform option in Krita, so baking that in to png is the only way
@graphikeye You can use TIFF too, as it bakes transforms and its 32bit. If You still wanna use EXR, You can use build-in Krita's OpenColorIO library and set path for Blender LUTs configs, it will let You use the same configs, but only for View transform(AgX/Filmic), not Look.
For more info check out Krita docs -- Color Managed Workflow part, they mention Blender interaction here.
#4 is just... wrong!
8 bit depth = 8(r) + 8(g) + 8(b) = 24 bpp (bits per pixel)
16 bit depth = 16(r) + 16(g) + 16(b) = 48 bpp
32 bit depth = 32(r) + 32(g) + 32(b) = 96 bpp
Doubling the bit depth still only doubles the data.
@@stephen-boddy Shit, you're right. What I meant is that it increases the precision six-fold. Thanks for pointing it out. There's a lot of places to stumble on this topic.
My only problem with EXR is that there's no accurate color configuration for it in Premiere Pro, especially for Agx. Unless there's one that i don't know of.
Would love if you could share your knowledge on this.
I think the comparison at 5:00 is a bit misleading. PNG is lossless format so it should show the exact same pixel values if you're encoding the same data. The difference there is that EXR can store floating point values where PNG only stores integer values regardless of the bit depth hence the massive difference in the sky and highlights.
This makes sense in the context of rendering but there are scenarios where you don't need the data to be HDR (when creating textures typically) it would be interesting to compare how EXR and PNG compare in that scenario
Honestly, you're right on the money. It was a bit of an unfair comparison in a few ways, and I wish in hindsight that I'd shown a bit more nuance. As you say, the argument doesn't necessarily hold regarding textures. Thanks for the thoughtful comment.
@@robinsquaresW for hindsight
When you dragged that PNG in it was quite visibly darker. That looked like it was in the wrong color space to me.
@@kzone272 that's a common display error with PNG when shown in things like a browser but I find it you open it with photopea it displays correctly, as it does when loaded into a project as an asset
@@kzone272I believe that's simply due to the display transform, like how rec709 is gamma 2.2 and srgb is gamma 2.4, the EXR is also a "HDR" image, so most applications will choose to display it in HDR if your monitor supports it, I may be wrong though
0:55 is misleading. Bit depth refers to the precision with which the SAME image/video is stored. Storing values beyond "white" has nothing to do with the number of bits. You can do that in 8 bits or any number of bits.
Also, saying that 8, 16 and 32 bits "double" the amount of data is strange since we are talking about precision. A 16bit PNG has 256 times more possible values per channel than 8bit. It's not just 2x as precise. This explains much better why 16bit is fine in almost all cases - and why some industries work with 10 or 12 bits - because 16 or 32 bit is unnecessarily precise.
3:20 He confuses HDR with lossless. PNG is lossless meaning an encoded image can be decoded into the exact same data. He actually means HDR again (storing values beyond white). But PNGs are also often used for that.
5:00 For whatever reason he is comparing a HDR file with a non-HDR file. Even if he thinks these files store the same data, the comparison doesn't make sense since two lossless files with the same precision obviously should contain identical pixel values - assuming you encode and decode the data correctly. Strange "proofs".
you are awesome
So is that what he says completely wrong, or are his arguments still valid?
@@sebastiengorecki4254 im wondering the same
I find this comment more valid than the entire video!
@@sebastiengorecki4254 I would lean towards "wrong".
Learning about DWAA EXRs a few years ago blew my mind. Why this didn't become the gold standard for decently compressed high quality outputs IMMEDIATELY is just mind boggling to me. We've had this format for so long and it's been practically ignored for like half its existence.
Great explanation! But, regarding deliverables, one should always talk to the client, or in my case, check with the printer first. The printer told me that he prefers 16 bit TIFFs for best quality. The test prints for my upcoming exhibition are looking gorgeous, btw. 😎
Oh, absolutely. Honestly, I just forgot to mention print. It's such a small part of my work these days. I'll pin your comment.
Save it as tiff at the end. Rendering tiffs will just fill your drive.
@@jhalanddesign I usually go EXR and export what I need in post.
@@robinsquaresWheres the Pin LUL
I was thinking something similar with TIFFs. I switched over a few months ago and I've noticed a nice quality bump with some of my renders since.
tbh this is one of THE MOST well made video i've ever seen in youtube
i come back to it and watch it from time to time
Your comparison between the EXR and PNG isn't showing the difference in compression quality. PNG exports with SDR tonemapping, whereas EXR export are linear unclipped HDR data. This means you will see a big difference in the brighter areas, which are squashed down when doing SDR tonemapping. You should have exported the PNG with linear tonemapping and clipped the EXR to a max of 1.0 to get a perfect comparison.
You're absolutely right. That would've been a more fair comparison. But the HDR/SDR difference is one that I feel is relevant and that I wanted to show. But you're right; it definitely doesn't show compression alone. I wouldn't say that breaks the core argument though.
Linearly encoded PNG is still integer and "SDR". Unusable regardless of the encoding, not to mention its inapt "alpha" encoding.
PNG is a container format. The video is like saying “never use a square fridge” … has little to do with the food inside.
Wow that was amazing!! Seems like small information but huge for the quality and space!! Thank you man, you saved my life!!
You got some of the most comprehensible videos about exporting and storing art files in YT, thanks
DUDE! i have 10 years of blender experience so i didn't learn anything new (except that win+ctrl+shift+B which blew my mind lol), but i still watched every video in this series because the explanation quality was SO high and enjoyable. i'll pass the link to this playlist to all of my students! thanks for you hard work, the community is getting so filled by literally noobs teaching everybody how to do stuff that people like you are a much needed breath of fresh hair!
Thank you so much. Comments like this make my day.
That was incredibly informative 😮
Short, straight to the point, no beating around the bush. Just what I needed for a video like this to improve my renders, thank you!
Amazingly well laid out, thank you. I have been using .png since my photography days, so this is a game changer for me!
Now that's a well presented and good piece of knowledge!
Very much appriciate your effort. The whole series is a must See and very well done.
The reason jpeg is smaller is because you loose a lot of information about the Hue even if your setting is acceptable for your eyes that are better at detecting contrasts. If you do professional work please use png as it correctly stores the result of your render, jpeg does not and it would show as soon as you start doing color corections. For your delivery still use png as it's the most accurate output you can give too. If you don't know if you need lossless, you do. Always. As for the test shown with the difference layer on a png, what it was is the color space change. If someone needs a smaller size he can always convert the images. If the goal is to convert the images to video at some point you would have double compression on jpg. Stick to 16bit png for work and delivering with 8bit png is fine.
Thank you for the explanation❤
That's basically a entire lesson on rendering. Nice video !
Man you've done it the best
this is what happens when non programmers make a video on a file format 😂
JPEG can't do very slow gradients because there is quantization in YCbCr domain, which is only removed with the new JpegLi codec which no software has. You can see a similar effect in the video encoding on the chart scenes here. They show a grey ellipse with blocky borders instead of a smooth blob. Lossless EXR compression is better/faster than PNG. But it's a very complex format and only pro tools support it fully.
amazing video as always
very interesting, thank you!
Watched your other videos, I really love how you explain things and very easy to understand.
Hey, thanks for the In-Depth Video. Love to see more professional knowledge getting to the Blender Community.
You could have added that there is a difference between 16 bit EXR and 16 Bit png. 16bit exr is "half" float meaning that you get 32bit float values where negative colors (lower that 0) or overbrights (brighter that 255 or 1) while having half the precision. 16 bit png and tiffs only have integers values so you dont have negatives or overbrights.
In regards to png vs jpg, png gets smaller file sizes whith the amount of color represent. so a 10k image with only black and white and no greys should be much smaller than the corresponding jpg.
Kepp up the good work :)
the video that i needed years ago, but i'm glad it's here now
great work!
One issue I've experienced with using exr is that when it's saved in blender, it usually doesn't look like the png file when loaded into a photo manipulation program like krita. This is usually cos of the color management (AGX or Filmic)
Lucky for you, I release a video about that today!
@@robinsquares thanks. Imma check it out
can't find the video.
For compositing or color grading, always go for EXR no brainer. For printing, TIFF is preferable. If you do none of those? PNG or even JPEG is fine.
EXR is basically digital render equivalent of camera RAW format. If you want the best color grading workflow you have to use RAW.
I used to hate and avoid exr files because of the ridiculously large file size. Thanks so much for this tip!
Watching this series now gave me extreme anxiety and makes me don't wanna touch blender ever again cuz it just feels like a lot of work to do.
My problem with EXR is that the export is in completely different contrast and colors than what the vieweport shows me. I understand that EXR carries a greater depth of color but honestly, I don't have the time and I'm tired of having to adjust contrast and complexly recolor every export.
Size these days doesn't matter in most cases. PNG is still the most compatable and reliable format. MOST reglar programs don't support DWA or EXR etc. PNG of JPG or svg are the primary formats I use.
Fantastic vid. Ive always used png, now i know better. Greetings from Ecuador, you've earned a sub!
Thank you! I'll use this as a guide from now on.
All this time my only rule is that: There's no point using .PNG if it's not indexed.
In the comparison i think we compared 32 bit EXR file with 16 bit PNG file. This can be a reason for the difference in quality.
Btw great video, learned something new.
non-HDR formats typically use a color space that applies a gamma function to squeeze more important color data along the bit depth. Thats why you see the colors change doing a diff check on the EXR vs PNG (lossless). DDWA and JPG compressions are very destructive even if you don't think you can see anything change. Also PNG uses zip compression per scan line, so at a point it doesn't matter how high you crank the quality slider, the compression will have a diminishing return on size and will impact load times. I personally don't see why anyone in this day in age would not use lossless, even if your image was horribly compressed blender still unpacks that image in full in memory. maybe you save a bit of time on loading time? but use a NMVe and you'll get 7GB/s transfer speeds and be laughing when your 5GB blend file loads in one second
Absolutely amazing video, great source for the video, and just a great explanation!
great video and thank you for justifying my love for jpg
Do you also render video's with JPG?
What a great video. Literally, i've been using png for the last 8 years without knowing the real difference. Thanks.
You're wrong about browsers only supporting 8-bit. You can use AVIF to display 10-bit HDR images, it's supported by most browsers. Also Safari supports HEIC.
Pleeease, tell me what is that music playing on the background ?
bro i'm looking for
Actually JPEG2000 is a better storage format than PNG. It's a more advanced jpeg format that allows for 16-bit integer precision, transparency, and either lossless or lossy compression. The problem with EXR files is that they are not color managed whereas PNG, JPEG, and JPEG2000 can embed that information, you have to know what color space they are intended for which is weird to me, but it is what it is. Also, regarding the 16-bit section, 16-bit can be both integer and floating point, that's an important distinction to make when saving. JPEG is only 8-bit integer, but PNG and JPEG2000 can save 16-bit integer. EXR is floating point in either 16-bit or 32-bit.
Thanks for adding that! I've been curious about JPEG2000, but always considered it too fringe to really use. And you're 100% right about the float and integer point.
How can I solve the linear problem? When I import the EXR into PHOTOSHOP, several colors are modified and it becomes more saturated and bright
In about three hours, you'll get a half-hour answer to that question on my channel.
Thank you! It was informative and of course fun. That comparison between PNG and DXR was a bit unfair since you know that gamma curve is probably different or something.. but again, thanks!
Exr rules them all.
If you increase the dwaa compression up to 500 you can have a smaller version almost the same size as a jpg. Very good to render precomps without noise.
Most the time i want a file that is easy to share and can be edited later. Storage is cheap so 16 bit png is usually fine. If i need hdr then i look at exr.
As a photographer I have found first hand that there are images and situations that can’t be properly displayed using a 100% quality jpeg. It is simply not possible in extreme situations to have smooth gradients.
So if you are working in a colorful project I recommend you to test it in some situations.
Also, a lot of screens nowadays are 10 bit. All HDR screens are 10 bit, they have to be. But if your image is not in HDR (does blender even support that?) it might not matter.
10 bit would probably solve the Joe’s banding problem, but jpegs don’t support 10 bit.
EDIT: As others pointed out in other comments, EXR seems to support HDR andin this video HDR seems to be confused with lossless.
Thanks for sharing! I didn't know about the difference between JPG and PNG regarding (with/without) transparency. I did learn about DWAA codec, but probably didn't need 32 bit for my short 😅 good visual charts too.
thank you. I have been saying this for years, but because png is significantly slower to write than other formats due to the compression. So much so that I have had cases where it took longer to write the frame to disk, than to render it in the first place.
Honestly, when I was working with 3ds max and vray I always exported exr 32bpc but now I'm using blender an I'm more than happy with the default filmic blender tone mapping 😄 it saves me a lot of time. Now I just save it as a PNG 16bpc, do slight color adjustments and it's done for my use case ✨
Amazing video exactly what i needed for an upcoming project :)))
Fantastic work ❤
I find it very amusing that the slide about bit-depth had the gradient all stepped to bits both literal and figurative 😂
Thanks for the video! It’s really hard to find storage for png renders but I can’t figure out how to make EXR look the same with AGX color Blender viewport render. I send it to AE and use opencolorIO but it’s not the same with png renders no matter what I do. Can you make a video about this topic?
This video is incredible and is going to save me so much space it isn't even funny. 🙏🙏🙏
The more often you use and open a jpg the more the jpg deletes what it considers "junk information". If you're consistently loading a project that opens a jpg and then close the jpg, you're losing image data. Doing this a handful of times won't have a visual difference, but you will eventually start to get banding in similar colors.
That's not quite right. If that were the case, you would see the file size shrink each time you open it. What you're describing happens every time you overwrite the jpeg file, which does not happen by loading it into a project.
What about JPG XL or WEBP? AVIF is cool but it used a different colour space I think.
Support would be the answer. Jpg and png have been around for ages and are supported most anywhere. Web p and jpg xl are new kids on the block, no idea what their support is. Sure they are great at compression and bit depth, but if they won’t even open that is not useful
@@ThurstanHethornMost modern systems would I'm sure.
Lol I soooo needed this series for my potato PC! 🤣👍
Can you please drop a 15 minute long tutorial on texture projection? In blender 4.0
How insightful and informative! Thank you for making this video! Will look at the whole series!
Cool to see we don't need TIFF files anymore.
What color space are you using (agx, standard etc.) on render, and how do you set it up in davinci? There are tons of tuts about color managment but they all cover ACES
For everything photoreal, I work in AgX with a display transform that suits the scene (I typically leave it at the middle contrast level,) and export in AgX log. In Resolve, I've converted the AgX OCIO to LUTs, which I haven't had any accuracy problems with. Sometimes, I use the AgX OCIO directly in Fusion.
But the charts in my videos are typically sRGB, standard tonemapping, to retain my brand colors.
@@robinsquares Thanks for reply. You may consider making tutorial on that topic, that would be great.
even if you need transparency you can render in Jpeg the color channel and then the alpha channel separatly, since you'll usually only need alpha in compositing that's be fine too
I feel the only reason I use png is to see the thumbnail while it renders.. having to open EXRs every time is a huge pain..
Outside that, Ill change my default settings now thanks!
Thanks, I had no idea that EXR existed but my file size is way smaller now!
what do you use as a viewer for EXR files. Then main reason I was using PNG was for the alpha and that I could see it in windows.
yes but what about the workflow, preview, editing, and so on. EXR boggled my head and i just switched to jpeg instead.
Do you have an upcoming video on working with EXR?
Hey! but importing that exr File in Photoshop makes it look weird
Keep your eyes peeled! I'm solving that in today's video.
This is almost certainly TH-cam's fault, but the compression artifacts in the video make comparisons like 2:27 less accurate even at the highest quality setting.
Thank you very much!
Came for the knowledge and stayed for the soothing background music. Thanks for sharing this with us!
I've not used PNG for sooo long now. After about a year of blender, I was tidying up my pc and realized I had 25GB OF RENDERED FILES! Definitely worth thinking about if you're serious with blender
there *MIGHT* be a math problem when you subtracted the 32 bit EXR from the 16 BIT PNG. the PNG is stored as an Integer, while the EXR is stored as FLOAT, affinity *MAY NOT* handle the changes properly and might give misleading results. I would not consider your experiment as any sort of proof, in particular since 16 bit PNG's are lossless . I think the two images are just mapped differently.
all that being said, i pretty much exclusively use EXR for everything in much the same way you do, except i use pxr24 for depth maps as the 16 bit tends to be too coarse for the things i do
also you can use alpha with jpeg2000 format, but who the heck uses that ? amrite
I like dark gradient backgrounds but you must know the atrocity TH-cam compression does to it, it very distracting. Anyway, great video!
Would it be better if it were white?
I guess a solid dark background would be just fine in these cases. I like dark gradients but when they are this subtle they are just banded into blobs when compressed.
@@lpcamargo I used a solid color for all the backgrounds, so I guess that's still a problem. I've heard that you can get a better bitrate in 4K?
I've learned a few things... Great episode!
Oh if only modern formats like .webp and .jxl were more adopted.
most sophisticated clickbait title ever 👑
👍🏻 Great! Informative! And all in a nutshell.
I want to know usability, plus movie workflow. Because everytime I have used EXR outside of HDRis for Unity, it has been a nightmare to work with.
Thank you for the video. Could you make a video explaining the mechanism of packing various images into one exr file? Please.
If you look real close, the whole process is shown in the video. Compositor file output.
"oh i get it... well i guess EXR is only useful if you actually work professionally as aaaaAAAAAAAA DWAA DOES W H A T ! ?"
My blending is so god damn optimized right now, you have no idea
And yet your mouth is a sewer, so I don't think your 'blending' matters much at all. It is 3D art, and AI will soon destroy many of the jobs.
tell me also
I hope someone can answer this but if I want to color grade my render in davinci should I go for 32bit exr or is it not worth it? For context I do vfx for some medium sized brands.
That is the industry standard, yes. However, you'll find that you don't need 32-bit for grading. Many movie cameras deliver 12-bit.
So when working in Photoshop, how does exr compare to other formats like native psd, tiff, pdf, and basically all the other formats?
It's a disaster
I think it's workable with the EXRIO plugin (free.) But there are better alternatives than Photoshop.
@@robinsquares I use a M1 Mac at home and Mac OS at work so I'm going to need something that isn't Windows exe exclusive
I can recommend Affinity Photo for stills and DaVinci Resolve for video. (Actually, I grade still with Resolve too. The tools are just amazing.) But if you're stuck with Adobe, I get it. My heart goes out to you.@@MStrong95
@@robinsquares Unstucking "yourself" is the ultimate solution.
Fusion Standalone is not only worth it (as much as Nuke) but severely overlooked. Compositing programs are AE + PS + Resolve all at once and few people realize it.
Great series appreciate it learn a lot :)
Good video, but comparing zoomed in JPEG and PNG should have been done without interpolation, as that defeats the purpose of the comparison.
I was Blown away!
excellent! 🧡
I saved a 16k normal map from one of my projects in PNG RGBA 0% compress and EXR DWAA 16bit and the DWAA version ended up being 11MB LARGER than the PNG.
Is it true that exr doesn't have filmic or agx color space like jpeg and png?
what about the other exr compression files? pxr24? dwab? piz? and do they affect the depth?... also nice video , i always render png and dwaa.
Edit: i mean by depth as z depth
There are some small differences between them all, but they all get the job done. I didn't want to get into the details in the video, but here's a summary.
PIZ is best for grainy images
PXR24 changes the bit depth, which can really help with size, but is slightly more confusing to work with
B44 isn't adaptive, so you get more predictable image sizes
There's little to prefer DWAA over DWAB. They compress differently sized blocks of data.
They should all handle Z-depth the same.
@@robinsquaresthanks.. i always wanted to know the difference
For the web, you can use WebP until AVIF become widely supported. Both are much better than PNG & JPG
The problem with EXR is that you can't apply the view transforms in blender like AgX or Filmic otherwise I would always use it. The standard view transform in blender which it uses is quite ugly
If you're bringing it out of Blender and don't have a workflow for getting the same colors, I feel you. TIFF is a good alternative for you
@@robinsquaresplease make a tutorial for agx in affinity/photoshop. My colors are always way off, I've tried creating luts and such, but no success...
Anyone know how to work with EXR DWAA and After Efffects? I gave up with trying to match the colors of exported files to blender color settings.
What people always fail to mention is that exr doesnt save the color transform. I havent found a way to re apply agx after in photoshop so this is misleading to say the least. Even if you know how tomedit photos is not easy to color correct an exr file
Lucky for you, my next video shows you how to do that. Not misleading; just incomplete.
One more thing about Exr -- sadly, it ignores Color managament in render properties. Yes, that fine if you know how its work, but if no -- you will cry cuz image will not be the same as render with its AgX/Flimic/whatever transforms.
There is one sad moment about transparent PNG too -- if you are using any post like bloom/glare and others with transparent background, you will loose it cuz PNG doesnt support premultiplied alpha which one Blender uses.
Both of these are very good points. Thanks for adding that. I'll consider supplementing this video with a tutorial on linear transforms some time.
EXR development is not to be mistaken with how (sometimes poorly and non-standardized) implemented EXR is in some software. The same could be said about Alembic or more lately USD 3d file format.
@@SKIENTIA yep, and thats sometimes really stupid, cuz industry standard software cant provide the same implementation of opensource file format with wide capabilities. Wanna sometimes cry about it(
EXR unfornutely is not usable in Photoshop. As you said the color management is ingored. Really bad. Working with multilayer exr's would make my life a lot easier. I switched from Cinema4d , where you can save out multilayer psd files which is a dream for still images.
Which would be best to use as an overlay in video editing? I used to use Tiff image files, but it had its problems with giving me a white edge, so I switched over to PNG (ping) images and the white edge issue was gone!
seeing the comparisons between PNG and JPEG, I feel like an idiot looking at my folders of PNG sequences that take up multiple gigabytes lol
The bg music is so soothing 😌
So if exr can contain multiple images does that mean you could put say, an albedo map, normal map, roughness map, and AO map in the same texture without having to pack them all into a single image? That could be pretty useful for textuees rhough idk how many game engines allow you to use exrs for environment textures as opposed to png which is compatible with almost everything
Yes, you can store different image like diffuse, AO, specular and many more in single multi-channel EXR file. But loading EXR files take much longer than formats like PNG, JPG, TGA, TIF. You can google what channels the multi-channel EXR file can contain. Hint There are more than 10 channels. And one EXR file can be larger than 100MB which is hardly possible for real-time rendering like 3D games can efficiently render without frame bump. Except your computer is super high end speed.
Nowadays there is technic to pack gray scale images into different color channels in the same file like Roughness into Red channel, Specular into Blue channel, Metalness into Green channel of PNG or JPG file. Newer version of Blender can also do this.