[Bf-committers] From Farsthary another anouncement

Matt Ebb matt at mke3.net
Thu Feb 5 00:25:01 CET 2009

On Thu, Feb 5, 2009 at 1:22 AM, Brecht Van Lommel <brecht at blender.org> wrote:
> I understand not all BRDF's can be split into these things. If such
> BRDF's get implemented then you do indeed get into trouble (you could
> categorize such a BRDF as being purely specular for example but then not
> all algorithms will deal well with them). However it is possible to add
> these "unphysical" parts together. That doesn't give you a physically
> correct BRDF but that's not the point, you can treat it as if it was
> one.

> Yes, it's not as clean as if you would not split things but in my
> opinion limiting Blender's rendering engine to physically based BRDF's
> also throws a lot of efficiency out of the window with it.

What I've been thinking about for a little while, is that the solution
may be in just having different material types, with separate shading
pipelines. This is already how I've implemented the volume rendering -
it's a different material type, and is pretty much completely separate
from shade_material_loop(). It seems to be working pretty well.

Barring any other issues that I'm not aware of, I'd think this is a
good way to go. If you want physical accuracy/plausibility, use a
'physical material' (or whatever it could be called), which would have
more limited options. Otherwise you can use a scanline material and do
whatever you like - GI methods will make as good a guess as possible
as to its scattering properties etc, but physical plausibility can't
be guaranteed.

For example, this is a bit similar to how Vray works within Max. Max
standard scanline materials are converted with a best guess and work
reasonably well, but to access the grunt of the GI features, you need
to use a material that's designed for it.

Having more specific material types can be very helpful for other
things too. Originally in Blender all you could render were solid
materials anyway, so it didn't really matter, but right now Blender's
material is a real mess, jumbled up with hacks and additions that have
aggregated over the years. It's always a lot of clicking and messing
around to do even the most basic things, since you have to set the
entire material up from scratch every time. It makes it quite
difficult for people who aren't experienced with the system to get
good results since they haven't accumulated the knowledge of which are
the magic buttons to press and magic settings to use if it's even
possible to achieve at all in the one-size-fits-all system (trivia Q:
who here knows the right combination of sliders to get a basic,
correct looking glass in Blender atm? is it even possible?). Not only
is it cumbersome in terms of manual labour required, but it also makes
it much more confusing to use, especially when depending on what
you're doing, all the other settings (that aren't necessarily relevant
or work at all in that context) still hang around.

I could see a big improvement by having additional optimised materials
for eg. physically based dielectrics, skin, strands, etc. The old
all-in-one system could still work the same, but using specific
materials would be much easier. For example, a strand material would
have all the relevant settings available at hand (and not hidden in
that crazy menu that doesn't even look like a menu). It could present
simple colour/alpha swatches for root colour/tip colour, that can
easily be textured. This would be much faster than the tedious process
now where you have to add a blend texture, click on the end points and
change the colours, come back and map it to strands (which for most
people is completely un-obvious, too). And that gets even worse when
you have to use stencil tricks to blend between different textures for
root and tip colour. The same goes for other types of shading,
workflow (and actual render quality) could be very much improved by
having different tools for specialised tasks.

My 2c anyway, I may end up experimenting with a dielectric material to
see how it would go.



More information about the Bf-committers mailing list