<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Yeah, currently I’m working on a glass-like implementation. ;-)<o:p></o:p></span></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> bf-cycles-bounces@blender.org [mailto:bf-cycles-bounces@blender.org] <b>On Behalf Of </b>Sergey Sharybin<br><b>Sent:</b> Montag, 23. Mai 2016 09:50<br><b>To:</b> Discussion list to assist Cycles render engine developers<br><b>Subject:</b> Re: [Bf-cycles] Disney BRDF Implementation in Cycles<o:p></o:p></span></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal>Hi,<o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>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().<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Didn't check it all in details, so can't really tell what would be the ultimate way to go here.<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal>On Mon, May 23, 2016 at 8:28 AM, Pascal Schön &lt;<a href="mailto:pascal_schoen@gmx.net" target="_blank">pascal_schoen@gmx.net</a>&gt; wrote:<o:p></o:p></p><p class=MsoNormal>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<o:p></o:p></p><div><div><p class=MsoNormal><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'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't need to correspond to what is presented in the user interface.<br><br>I'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's all reasonable to<br>&gt; move development of such feature under <a href="http://blender.org" target="_blank">blender.org</a> infrastructure (in<br>&gt; a branch initially, so we don't ruing master branch immediately). For<br>&gt; that you'll need to be registered at <a href="http://developer.blender.org" 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" 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'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" 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't know how to get it. I've read that I<br>&gt; have to get in contact with one of the admins, but on the wiki I'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'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's excacly what it is. It's an approximation of the<br>&gt; glossiness of a clear varnish. It'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?&nbsp; Is that a simulation of<br>&gt; having a thin layer of glossy/transmissive material on top of another?&nbsp; (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'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'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'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" target="_blank">http://www.smithmicro.com</a><br>&gt; &lt;<a href="http://www.smithmicro.com/" 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've played around with it for a while as well, but my code isn't<br>&gt;&gt;fully working yet, so it'd be awesome to have your code around.<br>&gt;&gt;<br>&gt;&gt;Some notes:<br>&gt;&gt;- There'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" 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'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" 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'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_" target="_blank">https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_</a><o:p></o:p></p></div></div><p class=MsoNormal>&gt;&gt;&gt; brdf_notes_v2.pdf) as a new node in Cycles. By now there have only<o:p></o:p></p><div><div><p class=MsoNormal>&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'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" 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" 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" 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" 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" 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" 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" 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" 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" 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" target="_blank">https://lists.blender.org/mailman/listinfo/bf-cycles</a><o:p></o:p></p></div></div></div><p class=MsoNormal><br><br clear=all><o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><p class=MsoNormal>-- <o:p></o:p></p><div><div><p class=MsoNormal><span style='color:#666666'>With best regards, Sergey Sharybin</span><o:p></o:p></p></div></div></div></div></body></html>