Deep images

Someone can tell me if deep images is planned to be integrated in blender? Where can I check how development is progressing?

I know many blender users are not familiar with deep images since it does not exist in blender so let me quickly explain:

Deep image is an image format which is part of open exr. It’s main point is to make holdout mattes unnecessary. Deep exr save multiple layers of depth and allow us to combine multiple renders with correct depth holdouts.

It is an industry standard. I’m working in the vfx industry and we barely render without deep.

For the vfx workflow rendering without deep means that if one layer changes you have to rerender all other layers since the holdouts are baked in. In a professional environment this is not acceptable.
Some renderengines supproting deep are:
Redshift, Mantra, Renderman, Arnold (only the ones I’ve used and know they have it)

well, you can export the Z depth at the moment, so with a little compositing trickery this is allready in Blender.

that’s what people keep telling me, but it is not the case. Deep means multiple layer of depth information.
With z you don’t have information on what is behind some object. Here you can check this video https://www.youtube.com/watch?v=19w3vkFp5X0 if too lazy to read the wiki.

Well, if people keep telling you, maybe you have to thing about what they are saying?
The depth is stored for every object (apes in the video) and if they are composited, someone can select the z-range (disapering cesar in vid). The multiple layers of depth info aren’t stored in one image but in every single image (as also shown in vid).
Non the less: thanks i’ve learned something (although i always thought this is the reason for z-depth).

well, it’s only the blender people saying that, because unfortunately they don’t know. It’s not depth per object it’s multiple depth per pixel. I work in the fx industry and use deep this every day. Maybe here you see it better. https://www.youtube.com/watch?v=OJY3JKdD2Ho
You can place your 3d object in the grass and just move it everywhere.

I’m currently studying to be a compositor and had some minor issues with Blender like perfect matchmoves, shadow catcher color and alpha values, which I’m quite sure will be better soon. Yet getting deep with rendering I found that devs are not trying to create a production tool like Maya/Arnold and Renderman.

https://wiki.blender.org/wiki/Source/Render/Cycles/DesignGoals

I’ve been using Blender since mid 2019 and can say that most of it users aren’t looking for a studio career. With a small group of high skilled Blender artists, it is possible to produce a feature film quality visual effects (not considering Houdini’s FX), but this software isn’t prepared for a big pipeline with multiple softwares integration. Blender compositor is for small to medium scripts, won’t be 200+ nodes.

You won’t be seeing deep compositing here.

For an almost free solution you should look for Clarisse they have a Personal Learning Edition now, there’s 3Delight free version and Renderman non-commercial. For compositing, Nuke still irreplaceable.

Well at first i thought there are multiple arguments against you, i even wrote them down but then i digged into this…

let me explain, because of this:
…the balls are directly shown in 3D because it’ a deep image BUT some of them have holes because they are not seen from the camera view and there is only one depth information for each pixel, so nothing to see behind that ball from an other angle in one deep image…

I (again) thought the images here are just with a depth/z-channel.

BUT: Biased that way i clearly overread or missinterpreted (from ‘Deep image paper’ link on wikipedia):

1 Deep Image: In contrast to a simple image that stores only the final appearance at
each pixel, a deep image records the 3d renderer’s list of all points in depth that contribute to the pixel. Every surface or volume sample making up the final pixel is stored with its appearance information (colour and opacity) as well as its distance to the camera.

i just read something like:
…each pixels …(colour and opacity) as well as its distance to the camera…

And i even think Wipedia is somewhat misleading, i thought:
deep image + deep composition results in deep data (image)

and now replace deep with z, but its already deep data image in the first place

forgive me my overhastiness :pray: i was captivated by your phrase:

that’s what people keep telling me

to my selfdefense: if had you said people here on BA before and has mentions that about sfx (oh holymoly … RiotPixels … :bulb: now i get it) but that are just excuses.

Thank you again :pray:, i have really learnt something (leastways the last one and a half hours weren’t useless for me).

Best wishes, Okidoki.

Edit: P.S.: And i even didn’t notice someone already answered 1h ago, so you means @RiotPixels of course.

If you have to re render everything because the holdout is not matching anymore, it is hurting a small team at least as much as a large team.

It’s an industry standard by now and part of open exr. I’ve used it with small teams and in big ones.
I’m not here to convince you and praise it so I stop it now. Blender folks don’t want it so I accept it.

Well, maybe we started off at the wrong food. But i stumpled about: Cycles Feature Request on AOVs and DeepEXRs where Brecht Van Lommel (Blender Chief Software Architect) answered:

brecht: DeepEXR: would be nice, but no concrete plans currently. (Nov. '18)

No wonder, because deep image so to say stores every color of any surface behind that pixel too. This are very different requirements for the rendering engine. And of course high prices SW have it:

  • Maya / 3ds Max 2200$ / year
    using Arnold (470€ / year extra?) or Mental Ray (? idk $)
  • OctaneRender (?) 700€ / year (usable with blender?)

(And regarding other things:
Well this is BA and you don’t wanna be a part of it?)

It’s not that they don’t want it :wink: . But somebody needs to make it and that’s not trivial. I’d guess it would need quite extensive changes to the render engines…

Maybe with cycles-X they have a better base to implement it on.

Been getting into nuke and this is exactly what i was wishing for, only now I know it’s called deep compositing.

From what I understand so far, deep image records all the pints in space that make up each pixel. This will be exactly the same as a z-depth channel when we’re talking about opaque objects, but in fur/volumetric/anti aliasing/glass/anytime where we’re dealing with two layers of objects sharing the same pixel, a single Z channel won’t be able to separate the two out. At best it gives the distance to the closest object, at worst it gives the in-between distance.

From what I understood so far, what deep compositing allows us to do, on a very basic level is to: render sth semi-transparent like smoke in front of background A, mask it out, and put it in front of background B and have it work correctly.

This is absolutely game changing and should definitely be implemented if cycles wants to be taken seriously. Previously i was trying to mask things out with cryptomattes and was so frustrated that i kept getting weird edges. Not having deep channel is exactly why! Having this integrated will not only benefit production level artists with better integration with nuke, but also make it more intuitive for beginners to mask out any object with incredible accuracy in the blender compositor. I was unaware of this lack of feature until I started exploring other render engines like Arnold, Redshift, and Mantra. It’s a shame that a fast unbiased path tracer like Cycles is crippled because of its lack of deep compositing support.

Coming from the industry, here’s my two Cents:
While yes, Deep Compositing can have have benefits, it rarely does. Deep Output yields pixel layers that are not directly visible, but stored to some degree. That might sound great, because it let’s you greatly increase the composite “degree of freedom”, like people mentioned, post DoF in 3D quality.

But all that comes with a huge downside. Data size. The amount of data increases by a factor and one might end up with frames that are hundreds of GB in size. That’s barely handleable on normal consumer hardware. At the same time, the benefits might be negligible.

So, in the end, do not use deep output unless you ultimately have to. It’s often just not worth it.

My blender branch can do proper deep render and light material aovs https://github.com/RolandVyens/industrial-cg-platform