<div dir="ltr">Hi,<div><br></div><div>It might either be decoupled BRDF created by the compiler and merged with a mix closure, or it might also be a glass-like closure where we create reflection and refraction closures in svm_node_closure_bsdf().</div><div><br></div><div>Didn&#39;t check it all in details, so can&#39;t really tell what would be the ultimate way to go here.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 23, 2016 at 8:28 AM, Pascal Schön <span dir="ltr">&lt;<a href="mailto:pascal_schoen@gmx.net" target="_blank">pascal_schoen@gmx.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hey Brecht,<br>
<br>
Thanks for your reply. You have a point there. That was also one of my thoughts.<br>
<br>
For me it is not 100% clear how to call multiple SVM closures. This is my current understanding of it:<br>
In the nodes.cpp and nodes.h, the node with its parameters is initiated. There I have to compile my node with the SVMCompiler in a way that the existing BsdfNode does? I have to add the parameters via compiler.add_node(...) so that I can access them in the svm_node_closure_bsdf(...) function in svm_closure.h. In the svm_node_closure_bsdf(...) I then call the three closures that I have created. Am I right with this?<br>
<br>
Regards,<br>
Pascal<br>
<div><div class="h5"><br>
-----Original Message-----<br>
From: <a href="mailto:bf-cycles-bounces@blender.org">bf-cycles-bounces@blender.org</a> [mailto:<a href="mailto:bf-cycles-bounces@blender.org">bf-cycles-bounces@blender.org</a>] On Behalf Of Brecht Van Lommel<br>
Sent: Samstag, 21. Mai 2016 17:03<br>
To: Discussion list to assist Cycles render engine developers<br>
Subject: Re: [Bf-cycles] Disney BRDF Implementation in Cycles<br>
<br>
Hi Pascal,<br>
<br>
I think it should be exposed as a single node to users, it should not be necessary to create node groups, we should make this as easy to use as possible. Having a single node will also make it easier to import/export materials, by having a single standard. With node groups users can combine things in different ways and how it then maps to materials in external game engines or renderers is not always clear.<br>
<br>
Once that is done, we can consider exposing some of the building blocks, either by extending existing BSDF nodes with more options or adding new nodes, but that&#39;s secondary.<br>
<br>
Internally in Cycles however, a single ShaderNode can generate multiple SVM / OSL nodes, or one SVM / OSL node that generates multiple closures. You can do that in whatever way gives the cleanest implementation, it doesn&#39;t need to correspond to what is presented in the user interface.<br>
<br>
I&#39;m very excited about this project by the way, I think a lack of this kind of node is the #1 usability issue in Cycles, great to see it being addressed.<br>
<br>
Regards,<br>
Brecht.<br>
<br>
<br>
On Wed, May 18, 2016 at 9:36 AM, Pascal Schön &lt;<a href="mailto:pascal_schoen@gmx.net">pascal_schoen@gmx.net</a>&gt; wrote:<br>
&gt; Hey,<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Now that the Disney BRDF is committed into a new branch of the Blender<br>
&gt; git, I’m working on refining it. Currently it is a single node that<br>
&gt; only OSL can process. But I want it to be like all the other shaders.<br>
&gt;<br>
&gt; Here I’m getting the problem to process it via SVM which seems to be tricky.<br>
&gt; I think, for this a split version of the BRDF/BSDF would be the best<br>
&gt; in the following way:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Burley Diffuse: This can be included in the Diffuse BSDF node by<br>
&gt; adding a new selection to the drop down menu.<br>
&gt;<br>
&gt; Sheen: I would separate this from the default diffuse part into a new<br>
&gt; node OR also include it in the Diffuse BSDF node as a new selection.<br>
&gt; Which one would be better?<br>
&gt;<br>
&gt; Subsurface Scattering: Here the default Subsurface Scattering node can<br>
&gt; be used because it already implements the updated version from Burley.<br>
&gt;<br>
&gt; Disney Specular: This would be a new node because it has the metal and<br>
&gt; dielectric part which would be hard to get into the Glossy BSDF node<br>
&gt; (primarily because of the parameter names).<br>
&gt;<br>
&gt; Disney Clearcoat: This would also be a new node.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; What do you think? Would this be a better solution. One problem of<br>
&gt; this is that artists have to create a node group that implements the<br>
&gt; correct behavior. Is there a way of providing a node group that artists can use?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; I hope you have some suggestions on this topic.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Pascal<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; From: <a href="mailto:bf-cycles-bounces@blender.org">bf-cycles-bounces@blender.org</a><br>
&gt; [mailto:<a href="mailto:bf-cycles-bounces@blender.org">bf-cycles-bounces@blender.org</a>]<br>
&gt; On Behalf Of Sergey Sharybin<br>
&gt; Sent: Dienstag, 17. Mai 2016 09:29<br>
&gt; To: Discussion list to assist Cycles render engine developers<br>
&gt; Subject: Re: [Bf-cycles] Disney BRDF Implementation in Cycles<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Hi,<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Thanks for sharing the work!<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; As for getting commit access to our git, think it&#39;s all reasonable to<br>
&gt; move development of such feature under <a href="http://blender.org" rel="noreferrer" target="_blank">blender.org</a> infrastructure (in<br>
&gt; a branch initially, so we don&#39;t ruing master branch immediately). For<br>
&gt; that you&#39;ll need to be registered at <a href="http://developer.blender.org" rel="noreferrer" target="_blank">developer.blender.org</a> first.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Also, if you can drop by to IRC #blendercouders ar <a href="http://irc.freenode.net" rel="noreferrer" target="_blank">irc.freenode.net</a> it<br>
&gt; will speed up some communication. You can poke me in there (nick<br>
&gt; hackerman), or just ask the guys around there if you&#39;ll have some difficulties or such.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Tue, May 17, 2016 at 9:09 AM, &quot;Pascal Schön&quot;<br>
&gt; &lt;<a href="mailto:pascal_schoen@gmx.net">pascal_schoen@gmx.net</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt; I have pushed my implementation in a bitbucket repository with the<br>
&gt; branch name cycles_disney_brdf. You can clone (or add it as a new<br>
&gt; remote) and test it, if you want:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; <a href="https://bitbucket.org/VanCantus/blender" rel="noreferrer" target="_blank">https://bitbucket.org/VanCantus/blender</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; But now I have another question for committing to the original Blender repo.<br>
&gt; I need commit rights but don&#39;t know how to get it. I&#39;ve read that I<br>
&gt; have to get in contact with one of the admins, but on the wiki I&#39;m<br>
&gt; always refered to the mailing lists. Thus I just wanted to ask, if I<br>
&gt; only have to write to the bf-committers list or what do I have to do?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; You can answer directly to my mail address if is refered to my<br>
&gt; committing question, because it doesn&#39;t have to be discussed here I<br>
&gt; think. ;-)<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Pascal<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Gesendet: Donnerstag, 12. Mai 2016 um 13:54 Uhr<br>
&gt; Von: &quot;Pascal Schön&quot; &lt;<a href="mailto:pascal_schoen@gmx.net">pascal_schoen@gmx.net</a>&gt;<br>
&gt; An: &quot;Discussion list to assist Cycles render engine developers&quot;<br>
&gt; &lt;<a href="mailto:bf-cycles@blender.org">bf-cycles@blender.org</a>&gt;<br>
&gt; Betreff: Re: [Bf-cycles] Disney BRDF Implementation in Cycles<br>
&gt;<br>
&gt; Yes, that&#39;s excacly what it is. It&#39;s an approximation of the<br>
&gt; glossiness of a clear varnish. It&#39;s described in the paper that Disney<br>
&gt; published and I refered to in my first mail.<br>
&gt;<br>
&gt; Pascal<br>
&gt;<br>
&gt; On 5/11/16, 19:39 Zauber Paracelsus &lt;<a href="mailto:zauber@gridmail.org">zauber@gridmail.org</a>&gt; wrote:<br>
&gt;<br>
&gt; Pardon my asking, but what is clearcloat?  Is that a simulation of<br>
&gt; having a thin layer of glossy/transmissive material on top of another?  (eg:<br>
&gt; simulating things like varnish)<br>
&gt;<br>
&gt; On 05/11/2016 01:36 PM, &quot;Pascal Schön&quot; wrote:<br>
&gt;<br>
&gt; Thanks for your quick replies.<br>
&gt;<br>
&gt; Some words to the implementation:<br>
&gt;<br>
&gt; I&#39;ve already splitted the BRDF into three closures after trying to get<br>
&gt; a single closure implementation to work correctly. But it came to my<br>
&gt; mind that this would be against the cycles architecture of splitting<br>
&gt; stuff into diffuse and glossy. And it made it also much more complex.<br>
&gt;<br>
&gt; The three closures are:<br>
&gt; - disney_diffuse(...): Calculates the Burley diffuse term, subsurface<br>
&gt; scattering and the sheen<br>
&gt; - disney_specular(...): Calculates the &quot;normal&quot; specular highlight and<br>
&gt; the metalness (also anisotropy is included here)<br>
&gt; - disney_clearcoar(...): By this the clearcoat specular highlight is<br>
&gt; calculated (less bright and no anisotropy)<br>
&gt;<br>
&gt; In an OSL script, which is also the script for the node, these three<br>
&gt; closures are called correctly and added together.<br>
&gt;<br>
&gt; I&#39;ve already seen the updated version of the Disney BRDF but I wanted<br>
&gt; to focus on the more simple one that was proposed in 2012. The<br>
&gt; additionals (like getting from a BRDF to a BSDF) would be one of the next steps.<br>
&gt;<br>
&gt; I&#39;m going to commit my implementation to a new branch next week,<br>
&gt; because this week is a bit stressful and as it is my first commit, I<br>
&gt; wanted to take some time for it.<br>
&gt;<br>
&gt; Pascal<br>
&gt;<br>
&gt; On 11.05.16, 19:06 Stefan Werner &lt;<a href="mailto:swerner@smithmicro.com">swerner@smithmicro.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Eventually, it might be interesting to split it into separate<br>
&gt; closures, so that one can still use separate ray counts for<br>
&gt; specular/diffuse/transmission and get them to render into separate<br>
&gt; passes. This will probably require to put fresnel back into the<br>
&gt; closures (going back in history, it looks like Cycles initially had that).<br>
&gt;<br>
&gt; Stefan Werner | Senior Software Engineer; Productivity &amp; Graphics<br>
&gt; Smith Micro Software, Inc. | <a href="http://www.smithmicro.com" rel="noreferrer" target="_blank">http://www.smithmicro.com</a><br>
&gt; &lt;<a href="http://www.smithmicro.com/" rel="noreferrer" target="_blank">http://www.smithmicro.com/</a>&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On 5/11/16, 4:18 PM, &quot;<a href="mailto:bf-cycles-bounces@blender.org">bf-cycles-bounces@blender.org</a> on behalf of Lukas<br>
&gt; Stockner&quot; &lt;<a href="mailto:bf-cycles-bounces@blender.org">bf-cycles-bounces@blender.org</a> on behalf of<br>
&gt; <a href="mailto:lukas.stockner@freenet.de">lukas.stockner@freenet.de</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt;Hi!<br>
&gt;&gt;<br>
&gt;&gt;The Disney BRDF shader is actually pretty interesting for Cycles!<br>
&gt;&gt;I&#39;ve played around with it for a while as well, but my code isn&#39;t<br>
&gt;&gt;fully working yet, so it&#39;d be awesome to have your code around.<br>
&gt;&gt;<br>
&gt;&gt;Some notes:<br>
&gt;&gt;- There&#39;s actually a later revision of the paper you linked with a few<br>
&gt;&gt;more details, might be handy:<br>
&gt;&gt;<a href="https://disney-animation.s3.amazonaws.com/uploads/production/publicati" rel="noreferrer" target="_blank">https://disney-animation.s3.amazonaws.com/uploads/production/publicati</a><br>
&gt;&gt;on_asset/48/asset/s2012_pbs_disney_brdf_notes_v3.pdf<br>
&gt;&gt;- There&#39;s also a completely revised BSDF that includes actual<br>
&gt;&gt;subsurface scattering and transmission, and they note that it solves a<br>
&gt;&gt;few issues with energy conservation and path tracing in general that<br>
&gt;&gt;the original<br>
&gt;&gt;2012 BRDF has:<br>
&gt;&gt;<a href="http://blog.selfshadow.com/publications/s2015-shading-course/burley/s2" rel="noreferrer" target="_blank">http://blog.selfshadow.com/publications/s2015-shading-course/burley/s2</a><br>
&gt;&gt;015_pbs_disney_bsdf_notes.pdf<br>
&gt;&gt;- I&#39;m currently working on energy-conserving microfacet closures,<br>
&gt;&gt;which would pretty much solve the issue that caused them to include<br>
&gt;&gt;the sheen stuff - at the cost of not being 100% compatible to other implementations.<br>
&gt;&gt;<br>
&gt;&gt;But that can all be handled later - in general, it would be awesome to<br>
&gt;&gt;have the Disney BRDF/BSDF in Cycles, and your code would certainly be<br>
&gt;&gt;welcome! Even if we go with the revised BSDF, it is pretty similar to<br>
&gt;&gt;the original BRDF, so it could be upgraded easily.<br>
&gt;&gt;<br>
&gt;&gt;Lukas<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;Am 11.05.2016 um 15:57 schrieb &quot;Pascal Schön&quot;:<br>
&gt;&gt;&gt; Hey guys,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; For a few months now I’m implementing (on a private repository) the<br>
&gt;&gt;&gt; Disney BRDF shader<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; (<a href="https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_" rel="noreferrer" target="_blank">https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_</a><br>
</div></div>&gt;&gt;&gt; brdf_notes_v2.pdf) as a new node in Cycles. By now there have only<br>
<div class="HOEnZb"><div class="h5">&gt;&gt;&gt; been a few external approaches, where a render server (like in<br>
&gt;&gt;&gt; Appleseed or Renderman) is accessed by a Blender plugin. But it<br>
&gt;&gt;&gt; would be nice to get access to this without any additional software<br>
&gt;&gt;&gt; to install.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The current state of my implementation is, that the OSL closure is<br>
&gt;&gt;&gt; finished and has also been tested against Renderman. Both acted the<br>
&gt;&gt;&gt; same in my testcases (except for the rendering approches by the two<br>
&gt;&gt;&gt; renderers, which cause some minor differences in indirect lighting).<br>
&gt;&gt;&gt; Another step that I’ve taken was to implement the node to easily<br>
&gt;&gt;&gt; access the Disney BRDF.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Currently OSL has to be activated, because I haven’t done all steps<br>
&gt;&gt;&gt; to include the Disney BRDF completely in Cycles. But I think that’s<br>
&gt;&gt;&gt; only one small step to take. There I hope to get some help by the<br>
&gt;&gt;&gt; community because it&#39;s a bit confusing where to add which code fragment.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; You can see some screenshots here:<br>
&gt;&gt;&gt; <a href="https://www.dropbox.com/sh/j7w4v0bu9a5jhvz/AADSF3nm3LZCZnHgyPMwhrT6a" rel="noreferrer" target="_blank">https://www.dropbox.com/sh/j7w4v0bu9a5jhvz/AADSF3nm3LZCZnHgyPMwhrT6a</a><br>
&gt;&gt;&gt; ?dl=0<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I would be pleased if you tell me if this would be nice to have or<br>
&gt;&gt;&gt; if it is too special for Blender.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Pascal<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Bf-cycles mailing list<br>
&gt;&gt;&gt; <a href="mailto:Bf-cycles@blender.org">Bf-cycles@blender.org</a><br>
&gt;&gt;&gt; <a href="https://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt; _______________________________________________<br>
&gt; Bf-cycles mailing list<br>
&gt; <a href="mailto:Bf-cycles@blender.org">Bf-cycles@blender.org</a><br>
&gt; <a href="https://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt;<br>
&gt; Bf-cycles mailing<br>
&gt; listBf-cycles@blender.orghttps://<a href="http://lists.blender.org/mailman/listinfo/bf" rel="noreferrer" target="_blank">lists.blender.org/mailman/listinfo/bf</a><br>
&gt; -cycles<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________ Bf-cycles mailing list<br>
&gt; <a href="mailto:Bf-cycles@blender.org">Bf-cycles@blender.org</a><br>
&gt; <a href="https://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
&gt;<br>
&gt; _______________________________________________ Bf-cycles mailing list<br>
&gt; <a href="mailto:Bf-cycles@blender.org">Bf-cycles@blender.org</a><br>
&gt; <a href="https://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Bf-cycles mailing list<br>
&gt; <a href="mailto:Bf-cycles@blender.org">Bf-cycles@blender.org</a><br>
&gt; <a href="https://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; With best regards, Sergey Sharybin<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Bf-cycles mailing list<br>
&gt; <a href="mailto:Bf-cycles@blender.org">Bf-cycles@blender.org</a><br>
&gt; <a href="https://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
&gt;<br>
_______________________________________________<br>
Bf-cycles mailing list<br>
<a href="mailto:Bf-cycles@blender.org">Bf-cycles@blender.org</a><br>
<a href="https://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
<br>
_______________________________________________<br>
Bf-cycles mailing list<br>
<a href="mailto:Bf-cycles@blender.org">Bf-cycles@blender.org</a><br>
<a href="https://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div><span style="color:rgb(102,102,102)">With best regards, Sergey Sharybin</span></div></div>
</div>