[Bf-viewport] Viewport and shader system patches

Alexander Romanov a.romanov at blend4web.com
Tue Dec 29 16:39:15 CET 2015


On 28.12.2015 19:34, Brecht Van Lommel wrote:
> Neither Blender nor Cycles materials are ideal for realtime rendering
> now. The Blender system is based on emulating the Blender renderer
> exactly, which is very complex and not efficient. The Blender renderer
> is also not being actively developed. But its GLSL material system is
> the most functional one we have right now, with support for lights,
> shadows, etc, and Blend4Web is using it successfully.

I agree that BI material system is outdated, but at the moment we 
(Blend4Web Team) are quite satisfied with BI state except some not so 
deep imperfections. So we are going to correct that imperfections. For 
example here is some refactoring proposal 
http://wiki.blender.org/index.php/Blender_Internal_Nodes_Refactoring
> There are a number of incremental changes that can be done, like
> making Cycles nodes available for both renderers as done in these
> patches. GLSL code can be shared here so code duplication is not a
> major problem, but it does further complexify the Blender material
> nodes by adding multiple ways to do the same thing. Maybe that's
> acceptable if we know that it's temporary and things will be cleaned
> up in the future.
I agree that it's hardly worth to port all nodes of cycles, but some of 
them can be very useful because there are no alternative.
For example Vector Transform node is a general node for vector 
conversion. I think it should appear in BI anyway. And another useful 
node is Normal Map.
> So what do we do there, try to match the Blender renderer anyway,
> improve the Blender renderer and break compatibility, or use different
> settings or methods for realtime and offline? These questions come up
> when reviewing these kinds of patches, and so it would be good to have
> some sort of policy or plan here.
For current moment we would go with matching Viewport and Bl and improve 
both of them.
> Personally I think the right solution is to build a new realtime
> lighting system using the Cycles shader nodes (which hopefully in the
> future will include a PBR / Disney principled BSDF node). This can
> then be gradually improved without breaking compatibility with the old
> Blender material system, which then can be dropped entirely when the
> replacement is good enough. But how high we can actually aim also
> depends on the resources we have.
BI and Viewport already have a lot of self-sufficient functionality. 
Could refactoring of the current shader system be an alternative to 
writing the whole system from scratch? I mean, we could incrementally 
prepare the current architecture for further PBR implementation. At the 
beginning, It could be just a PBR mode for node and simple materials 
which will replace non-physical inputs(diffuse , specular etc) with 
physical ones(metalness, roughness etc).

But in any case removing deprecated OpenGL API is a good beginning.

-- 
Alexander Romanov (Blend4Web Team)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/bf-viewport/attachments/20151229/2a0948dc/attachment.htm 


More information about the Bf-viewport mailing list