[Bf-cycles] Optimization project
Brecht Van Lommel
brechtvanlommel at pandora.be
Thu Feb 6 15:35:50 CET 2014
On Wed, Feb 5, 2014 at 10:12 PM, David Fenner <d4vidfenner at gmail.com> wrote:
> The thing about transparency counted on material override is that, for
> example, you wan't to make a custom light moving around the scene but only
> to be composed later. You could make all a grey shader for the render layer
> to render fast, but if you use leaves or any transparent surface (or in the
> future displacement) you get wrong results and the little planes would start
> to appear in the render, instead of leaves. If displacement is implemented,
> the surfaces would also have wrong shape. So render layer override taking
> into account original shader displacement and transparency (only if its
> full, no need for partial transparency) would be ideal for custom render
> passes, rim lights, animated lights, gunfire lights, you name it. I know
> this maybe isn't about technical/code optimizations, but the ability to do
> this could make render custom passes way faster, so it does optimize the
> lighting workflow.
> Currently, lighting or texturing in any compositor is also impossible
> because normal and uv pass don't take transparency into account, therefore
> in the same leave example you end up lighting planes instead of leaves. So
> it isn't possible with a custom render layer in 3D and it's also impossible
> with fake compositor lights based on normal / z / uv pass.
Ok, I see what you're getting at, I was thinking too much of partial
transparency, with binary transparency it's easier to do things in
compositing. Making it possible to do lighting and texturing in the
compositor is not something I've tried to optimize. We can do a lot
better here, it's not really a workflow I've considered a priority.
Making override materials more flexible in what they affect would be
useful. There's also some other possibilities like giving access to
the current render layer in shader nodes, so you could do this kind of
thing in nodes setups, although that's not as convenient always. I'll
think about this more, but don't really consider it as something to
tackle as part of this performance project, just general features that
can be added at some point.
I did now add an alpha threshold per render layer which should make
render passes work a bit better with fully transparent surfaces. Not
quite what you asked for, but this had been on my To Do for a while.
More information about the Bf-cycles