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