<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't check it all in details, so can'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"><<a href="mailto:pascal_schoen@gmx.net" target="_blank">pascal_schoen@gmx.net</a>></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'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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" target="_blank">http://www.smithmicro.com</a><br>
> <<a href="http://www.smithmicro.com/" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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_" rel="noreferrer" target="_blank">https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_</a><br>
</div></div>>>> brdf_notes_v2.pdf) as a new node in Cycles. By now there have only<br>
<div class="HOEnZb"><div class="h5">>>> 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" 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>
<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>