<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <div class="moz-cite-prefix">On 28.12.2015 19:34, Brecht Van Lommel
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAKFUgC1q4akBOzZ=a+LokdU=RB5hd=a794YXWJA5Dh5eMRC2RA@mail.gmail.com"
      type="cite">
      <pre wrap="">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.</pre>
    </blockquote>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <br>
    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 <a
      class="moz-txt-link-freetext"
href="http://wiki.blender.org/index.php/Blender_Internal_Nodes_Refactoring"><a class="moz-txt-link-freetext" href="http://wiki.blender.org/index.php/Blender_Internal_Nodes_Refactoring">http://wiki.blender.org/index.php/Blender_Internal_Nodes_Refactoring</a></a><br>
    <blockquote
cite="mid:CAKFUgC1q4akBOzZ=a+LokdU=RB5hd=a794YXWJA5Dh5eMRC2RA@mail.gmail.com"
      type="cite"> </blockquote>
    <blockquote
cite="mid:CAKFUgC1q4akBOzZ=a+LokdU=RB5hd=a794YXWJA5Dh5eMRC2RA@mail.gmail.com"
      type="cite">
      <pre wrap="">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.</pre>
    </blockquote>
    I agree that it's hardly worth to port all nodes of cycles, but some
    of them can be very useful because
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    there are no alternative.<br>
    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.<br>
    <blockquote
cite="mid:CAKFUgC1q4akBOzZ=a+LokdU=RB5hd=a794YXWJA5Dh5eMRC2RA@mail.gmail.com"
      type="cite">
      <pre wrap="">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.
</pre>
    </blockquote>
    For current moment we would go with matching Viewport and Bl and
    improve both of them.<br>
    <blockquote
cite="mid:CAKFUgC1q4akBOzZ=a+LokdU=RB5hd=a794YXWJA5Dh5eMRC2RA@mail.gmail.com"
      type="cite">
      <pre wrap="">
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.</pre>
    </blockquote>
    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).<br>
    <br>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    But in any case removing deprecated OpenGL API is a good beginning.<br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Alexander Romanov (Blend4Web Team)</pre>
  </body>
</html>