[Bf-committers] Render Layer Proposal

François T. francoistarlier at gmail.com
Mon Jan 16 21:46:06 CET 2012


Hi everyone,

Yet another proposal, so I know nobody have times for proposal and stuff
but since I passed the entire day linking renderlayers passes to fileOut
one by one, my head hurts ! So I have to give it a shot !
Once again, I guess I'm the only one using Blender with other apps because
I really don't understand how people can stand the current workflow.

I'm working on a project where all 3D is done in Blender and composited in
AE. AE does support EXR multilayer extraction, but its via plugin (not
native as in Nuke) so it is slow (especially if you working in 32bpc HD).
So I decided to render each 3D passes (in my case Combined, Z, Diffuse,
Spec, Color, Velocity, UV and AO) to its own file sequences and here are
all the bumps I got.

*Only 1 RenderLayer*
You can't use the power of RenderLayer when saving into file sequence! By
that I mean using more than 1 RenderLayer with each of them having specific
parameters (Layers, mat overall, certain passes).
Only the first RenderLayer get rendered the other one are ignore. This mean
using the power of this feature is only available if you are using B's
compositor otherwise it is useless.

*Only Combined get Saved*
Probably the worst part. If you have checked multiple passes, but didn't
save into a Multi-layer file format (ie exr), then the passes are useless.
To do so you have to (except if I missed something) :
- turn ON the compositor
- plug a pass to a FileOut Node
- setup the FileOut Node
- repeat the step for each passes
- leave a Compositor Node (otherwise it refuse to render the animation)
which will create another file sequence in the output folder you defined in
your Render settings (extra useless GB used on my harddrive)

Yes, I could probably create a quick and dirty python scripts which will do
all that for me in one click! But this is not the point since, correct me
if I'm wrong, I think that going through the compositor only to do that is
slowing down the render time and play with memories and stuff for nothing.
Its like combining passes, to seperate them again to save them into
different files .... o_O

Plus on top of that, even with a python script, this workflow is still a
pain in the ***



*Proposal*

The idea would be to bypass all this nightmare in case you have :
- more than 1 renderLayer turn ON
- AND/OR more than 1 pass checked
- you didn't select a Multi-Layer file format
- the compositor is not turn OFF

Then all we have to do is using RenderLayers name and passes name to
construct the file path as :

render.folderPath + "/" + sceneRenderLayer.name + "/" + render.fileName +
> "_" + PassName + .EXT


*note that in this case seperating the render.folderPath and the
render.fileName would also be a change to the actual render.FilePath*
*
*
Yet I don't know how complicated it would be to save each buffer into a
seperate file, but since it is possible to do it for a Multi-Layer format,
I guess it shouldn't be to different for a file sequence ? :$



You can even push the proposal even more far away where you can have more
than 1 output. one output to openEXR float HD, ... and a second one to a
H264 SD and a third one to JPG, ... So you can easly check what as been
render by playing a lightweight h264, and use proxy for your openEXR with
the JPG. So the buffer is computed once and saved into different file
format at the end without going through the trouble of the slow compositor
(even when it will get faster ;). But this almost another topic



Anyway this is how I'd personaly loved to have it if its possible :)


cheers,

F.

-- 
____________________
François Tarlier
www.francois-tarlier.com
www.linkedin.com/in/francoistarlier


More information about the Bf-committers mailing list