<div dir="ltr"><div><font color="#000000" size="3" face="Times New Roman">

</font><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000">Antony,</font></span></p><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000"></font></span> </p><font color="#000000" size="3" face="Times New Roman">

</font><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000">Thanks for your reply, I really appreciate this. Currently we are at a
crossroad of options which I will state below. Because of this I cannot answer
your question easily but that does not mean we can not state what we want in
your current viewport project. And to be precise I find your work yummie atm
and very needed by many. If you look at our paper I understand your feeling,
you are more whishing for something like a technical design which we do not
have at this moment. Still there are some simple factors that govern our
choices to be made, they are:</font></span></p><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000"><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><br>
- speed / flexible=&gt; refering to rendering and its way of adressing seperate
components (diffuse/ao/specular)<br>
- expandable =&gt; how easy is it to create a new shader<br>
- workflow =&gt; ui / wysiwig</p></font><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"></p></span><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"></p><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000">There is currently a regard of internal or external but a lot can be
achieved within Blender itself. A list of possibilities current under review.</font></span></p><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000"></font></span> </p><font color="#000000" size="3" face="Times New Roman">

</font><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000">A) BI gets new shaders regarding to Beer concept but we leave the
flexibility and workflow out. Expandability should be included, so creating new
shaders would be no problem. This actually means programming in C. We have no
documentation on how to do this and do not know if we get into problems later
on. Regarding to Ton&#39;s email I got the feeling that Ton does not have the time for
this which I understand.</font></span></p><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000"></font></span> </p><font color="#000000" size="3" face="Times New Roman">

</font><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000">B) BI gets a GLSL shader/node which can be programmable. Thats was also
referred to by Roberto. Is more difficult to achieve (refering to the Brecht
documents) but this will adress the flexibilty and expandibilty. Speed is a question
at this stage but you can get the best of both worlds and have freestyle
already integrated. Afcourse ui maybe far off from what we want but wysiwyg
should be no problem at all.</font></span></p><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000"></font></span> </p><font color="#000000" size="3" face="Times New Roman">

</font><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000">C) Make OpenGL render a full render. Its already in Blender only not in the
standard menu and you can not use nodes etc. Still a very viabel option and in
regard what you are writing a smart way to go as well. Going PBR should not be
the biggest problem, it counts for the usage of the combine pass. The more we
can switch on/off stuff at GLSL level (and ui) the more it suits our needs.If
specularity or reflection can be a programmable &#39;option&#39; I strongly believe
that the people from the gaming community do not mind and our goals coincide.<br>
<br>
D) Using python and optional an external library for opengl to create an
external renderer. We either use what is already in Blender (bgl) or we use an
external library (which may not crash Blender) for exporting scene output to
it. The ui is gonna be programmed in native Blender Python. If we could use an
external Python module within Blender to send output to an opengl library we
could create the shaders we need. Opengl versions are not a problem, viewport
still is. Maybe thats is more what you and Ton are referring too, to do it like
Luxrender. The render and the wysiwig viewport is outside Blender as an
external programm and data is parsed through files. Is possible but not our
current intention.</font></span></p><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000"></font></span> </p><font color="#000000" size="3" face="Times New Roman">

</font><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000">E) Make a fork for Blender. This can be done in seperate ways, most project
members are in favor for this option. There is already a fork which
incorporates the PyQt module. This addresses a lot of our needs on all aspects
regarding the usage of opengl. Qt is an ui library which gives a lot of freedom
and as I am not mistake is used in Maya (not that it matters for this
discussion). Another option could still be to create a glsl render of our own
as a third renderer by programming into c. In fact more or less the same as
option C from above. We are fully aware that a fork is not that easy to maintain
but that depends on how difficult it is to incorporate our code.<br>
<br>
I hope this will be less vague. Problem is we are at the investigating stage
but a lot of it all depends on the direction Blender is going with the viewport
project. Its not only the viewport alone but getting enough access at shader
level too do the stuff we want (aka combine pass should be flexible). In that
way PBR and NPR have no problems to be incorporated into Blender natively.</font></span></p><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt" lang="EN-US"><font color="#000000"></font></span> </p><font color="#000000" size="3" face="Times New Roman">

</font><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt"><font color="#000000">Kind
regards,</font></span></p><p style="margin:0cm 0cm 0pt;line-height:normal" class="MsoNormal"><span style="font-family:&quot;Arial&quot;,sans-serif;font-size:12pt"><font color="#000000"></font></span> </p><font color="#000000" size="3" face="Times New Roman">

</font><p style="margin:0cm 0cm 8pt" class="MsoNormal"><font color="#000000"><span style="line-height:107%;font-family:&quot;Arial&quot;,sans-serif;font-size:12pt">Wasili</span></font></p><font color="#000000" size="3" face="Times New Roman">

</font></div><div><br><br> </div></div><div class="gmail_extra"><br><div class="gmail_quote">2014-11-03 23:53 GMT+01:00 Khalifa Lame <span dir="ltr">&lt;<a href="mailto:khalibloo@gmail.com" target="_blank">khalibloo@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>If the new GLSL system will allow for blending of custom shaders and textures as well as a UI for parameters (uniform variables) like in Unity 3D for example, then that should go a very long way. That&#39;s essentially what BEER materials are in a nutshell --blended shaders.<br></div><div><br></div><div>Also, if the opengl renderer was made to be more flexible and more powerful, then I suppose BEER wouldn&#39;t need to be a separate project after all. Currently, the opengl renderer is tied blindly to the viewport and that would need to change in order for it to be able to take full advantage of opengl&#39;s capabilities and for other renderers such as BEER to be able to build on top of it.</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Mon, Nov 3, 2014 at 1:24 PM, Antony Riakiotakis <span dir="ltr">&lt;<a href="mailto:kalast@gmail.com" target="_blank">kalast@gmail.com</a>&gt;</span> wrote:<br></div></div><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote"><div><div class="h5"><div dir="ltr"><div><div>Hi, <br><br></div>A few things about the current state of the viewport project and how it might relate to the beer project.<br><br></div><div>Basically, the GSOC projects tackled real time drawing centralization under a single module,<br></div><div>so it has to do with viewport performance and architecture mostly.<br></div><div>The part I have been doing the past few weeks is basically real time compositing on top of the viewport.<br><br></div><div>The use of the viewport project in rendering is a target I am considering - basically it is already quasi-possible with the OpenGL render functionality, but of course the current system tries to duplicate what blender internal does during rendering.<br><br></div><div>What you want to do is basically a new renderer. Your node system is completely different than blender internal&#39;s. At that point you have to know if you want this to be a GPU renderer, which will interact closely with what OpenGL can do, or make a CPU renderer with a node interface.<br></div><div>GPUs basically don&#39;t allow everything the CPU does (such as ray traced shadows and refractions for instance) and you will have to code it.<br><br></div><div>I could help by making the viewport flexible enough to facilitate easy real time drawing by other engines - if possible. We already have a target to make a separate node tree for GLSL materials which should allow custom GLSL code. I am not sure if the shader system we will use will coincide with what you have in mind. Personally I was inclined towards something more PBR based, which is oriented to game asset creation mostly, while your own system looks more geared towards npr rendering. Also it looks like a mixture of compositing and real time preview, which requires a tight integration with the viewport - tighter than we will be able to provide probably.<br><br></div><div></div><div>Like Ton, I don&#39;t think having a separate project is a bad idea. I am open to help in designing the viewport to be more flexible to help with what you want to do if possible but I need to see a design or system requirements document from a developer - what data is needed where, what the system is expected to do, what the GPU is expected to handle. What I have seen so far looks more like a limited use case document. If you are serious about this you should provide more details. What is it expected to render, how it will work with compositing, what is expected to be real time, what will be nodified. Unfortunately I can&#39;t make those decisions for you, so you really, really need a coder who understands these things, and preferably blender&#39;s code base as well. And if your vision and what blender can do can&#39;t match easily maybe you could consider a separate project, or even a fork? I don&#39;t say that to be negative at all, but the project sounds different enough that you might want to explore that possibility.<br></div></div>
<br></div></div>_______________________________________________<br>
Bf-blender-npr mailing list<br>
<a href="mailto:Bf-blender-npr@blender.org" target="_blank">Bf-blender-npr@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-blender-npr" target="_blank">http://lists.blender.org/mailman/listinfo/bf-blender-npr</a><br>
<br></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>khalibloo®<br><br></div>
</font></span></div>
<br>_______________________________________________<br>
Bf-blender-npr mailing list<br>
<a href="mailto:Bf-blender-npr@blender.org">Bf-blender-npr@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-blender-npr" target="_blank">http://lists.blender.org/mailman/listinfo/bf-blender-npr</a><br>
<br></blockquote></div><br></div>