[Soc-2018-dev] Weekly report #02 - Implementing a Hair Shader for Cycles

Brecht Van Lommel brechtvanlommel at gmail.com
Sun May 27 01:50:19 CEST 2018


I committed a couple cleanups and fixes now. The biggest change is not
using curve_core_distance at all, which as far as I can tell is not really
needed.

This fixes the asserts that I found in a couple simple tests here, but
maybe you found other cases.

On Sat, May 26, 2018 at 2:57 PM, Brecht Van Lommel <
brechtvanlommel at gmail.com> wrote:

> I suggest to carefully check each part of the shader is working correctly.
> For that you can create a simple scene with a single hair with a big
> radius. Then you can light that with just a white background or a single
> point light, without any indirect light bounces. If that's correct, add
> more samples, more bounces, more hair, etc.
>
> That way you can see if the results looks correct, compare with existing
> BSDFs, and see where exactly it is more noisy or wrong. Getting some tests
> builds for users is good, but I suggest to mainly focus on verifying the
> correctness in an organised way at this point.
>
> I'll have a look at the NaNs and assertions this weekend.
>
>
> On Fri, May 25, 2018 at 9:46 PM, Leonardo E. Segovia <
> leonardo.segovia at cs.uns.edu.ar> wrote:
>
>> WEEK 2
>>
>>
>> Hi everyone! The second week is gone, and this is my report.
>>
>>
>> Objectives
>>
>> With the shader in place, I could move on to the following (Weeks 4-5):
>>
>> -   Test shader functionality. If working, release test build.
>> -   Evaluate received feedback. Start bug fixes.
>>
>>
>> What's been done
>>
>> Admittedly, not much 😢
>>
>> -   Lukas added a Diffuse override for using the shader with non-hair
>>     geometry, in bsdf_principled_hair_setup. When using it with hair,
>>     however, Blender didn't render anything _at all_. This was because
>>     the ID of the shader was outside the range of CLOSURE_IS_BSDF. Our
>>     shader is now treated as BSDF and transmissive
>>     {{GitCommit|rBc4174a44dc311d2fd65ca74c4387bbc6f529df95}}
>>
>> -   With the BSDF in place, I tried to get reference renders. The main
>>     problem is that Blender's hair primitive is returning NaNs in any or
>>     all of the following:
>>
>>     -   the ray distance t
>>     -   the intersection calculation, somewhere deep within
>>         cardinal_curve_intersect or curve_intersect
>>     -   the curve distance h (this one usually comes from the above)
>>
>>     Which results in one or more of the following:
>>
>>     -   crash when integrating indirect radiance
>>         ("Non-finite sum in path_radiance_clamp_and_sum!")
>>     -   crash when obtaining azimuthal_scattering (I have a scene to
>>         obtain this exact crash)
>>     -   assert(fabsf(dot(sd->dPdu, dPdCD)) < 1e-5f);. I do not know
>>         (yet) what this one means.
>>
>>     I ring-fenced the shader from most of those
>>     {{GitCommit|rB92030f83362fe567f78e519e0acca0700287a933}}}. Brecht
>>     agreed to have a look at those weird NaNs, since they come from
>>     outside our shader.
>>
>> -   In Phabricator's task for this project, Ronan Ducluzeau could get a
>>     reference render without crashing. The shader returns a lot of noise
>>     and fireflies.
>>
>>
>> Next up
>>
>> Once we figure out why we receive bogus data from the ray intersection
>> (and fix it), I'll be able to continue revising the shader.
>>
>> If possible, I'd like to get a dev build out in BlenderArtists for
>> people to test. I don't expect to get great results yet, but it'd be
>> great if we can ensure the hair primitive works properly. I don't have
>> good enough bandwidth (3Mb) to upload a 200MB+ build unless I go to the
>> uni, so I may ask either Lukas or bzztploink in IRC if they can upload
>> them.
>>
>>
>> Questions
>>
>> -   In re assertion above - what does it mean?
>> -   What could be possible sources of noise in our shader? Compared with
>>     a Diffuse shader (which doesn't use the hair primitive data), it's
>>     obviously not working properly. I wonder if this and the other
>>     issues are related.
>>
>> --
>> Lic. Leonardo E. Segovia
>> Departamento de Ciencias e Ingeniería de la Computación
>> Universidad Nacional del Sur
>> San Andrés 800 - Campus Palihue, B8000 Bahía Blanca, Argentina
>> --
>> Soc-2018-dev mailing list
>> Soc-2018-dev at blender.org
>> https://lists.blender.org/mailman/listinfo/soc-2018-dev
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/soc-2018-dev/attachments/20180527/e3c0853f/attachment-0001.html>


More information about the Soc-2018-dev mailing list