<div dir="ltr">Regarding the reference render charts, it's best to not include any text in them, so that it can be translated to other languages. Any credits can then also be put at the bottom of the page instead of repeated in each image.<div><br></div><div>It also would be good if the image were not square, it's better if they have dimensions like 1024x256 so that more fits on a page, the entire height of the curl is not really needed.</div><div><br></div><div><br></div><div>It did a deeper review of the principled hair shader code, here are my notes.</div><div><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">We named undercoat incorrectly, it is the primary reflection roughness which is not the same. I got confused because there two different effects described in section 4.3 of the paper, and we only implement the first part. I still don't like the Primary Reflection Roughness though. The purpose of this is to simulate a shiny coat, so perhaps we can name it just "Coat" that is (1 - primary_reflection_roughness) and defaults to 0.0.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">I also would still like to see the Melanin become a slider in the 0..1 range, as we try to do for parameters in shaders whenever possible. I did some tests and found this mapping to work pretty well, basically using a <font face="monospace, monospace">log() </font>to invert the <font face="monospace, monospace">exp()</font><font face="arial, helvetica, sans-serif"> that will be applied to the absorption, and scaling the melanin coefficients. Note this means Melanin becomes a PROP_FACTOR with max 1.0.</font></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="text-decoration-style:initial;text-decoration-color:initial"><div><font face="monospace, monospace">/* Map melanin 0..inf to more perceptually linear 0..1. */</font></div><div><font face="monospace, monospace">melanin_qty = -logf(fmaxf(1.0f - <span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">melanin_qty</span>, 0.0001f));</font></div><div><font face="monospace, monospace">...</font></div><div><font face="monospace, monospace">/* Normalized absorption coefficients to 1.0. */</font></div><div><span style="font-family:monospace,monospace">float3 melanin_sigma = eumelanin*make_float3(0.506f, 0.841f, 1.653f) + pheomelanin*make_float3(0.343f, 0.733f, 1.924f);</span><br></div><div><font face="monospace, monospace"><br></font></div></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">And some smaller notes:</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* Bug: the OSL shader is using the longitudinal roughness instead of the azimuthal roughness for the reflectance to absorption mapping.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* Can this mapping be made into a separate function? Since it's used both for tint and color would be nice not to duplicate code.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* The Random socket should use SOCK_HIDE_VALUE to make it clear the value is ignored if nothing is connected.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* In the OSL shader, use lower_case_names for local variables, only the parameters should use CamelCase.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* Before merging, any debug code like printf's, curve_center(), and other commented out code should be removed.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* No need to store a random value in the PrincipledHairBSDF and have it as a parameter in the OSL closure if we are not going to use it.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* As an optimization, variables needed for only one of the 3 color parameterizations should be computed in the appropriate if/case instead of before. So factor_random_color, pheomelanin, etc. should only be computed for the Melanin parameterization.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* For the Color parametrization, can we set the default to a brown color similar to the melanin one? Doesn't have to be an exact match, just something better than white.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* Suggest to rename "Color Randomization" to "Random Color", sounds a little less technical and to the point. Same for "Roughness Randomization".<br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">* In nodes.h, rename "float melanin_concentration" to "float melanin" and "float melanin_redness_ratio" to "float melanin_redness", these should match the socket names.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 6, 2018 at 10:46 PM Leonardo E. Segovia <<a href="mailto:leonardo.segovia@cs.uns.edu.ar">leonardo.segovia@cs.uns.edu.ar</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><h1><span class="m_-3902145169878840044gmail-mw-headline" id="m_-3902145169878840044gmail-Week_8">Week 8</span></h1>
<p>Hi everyone! This is my report for the present week.
</p>
<h2><span class="m_-3902145169878840044gmail-mw-headline" id="m_-3902145169878840044gmail-Objectives">Objectives</span></h2>
<p>This week, I dealt with the objectives for Weeks 10 and 11:
</p>
<ul>
<li> User documentation revision.</li>
<li> Developer documentation revision.</li></ul>
<p>I got my desktop back from the tech on Wednesday, and yesterday I had a French test, so I could only resume work today.
</p>
<h2><span class="m_-3902145169878840044gmail-mw-headline" id="m_-3902145169878840044gmail-What.27s_been_done">What's been done</span></h2>
<ul><li> The usual merging commits from <code>master</code> (<a rel="nofollow" class="m_-3902145169878840044external m_-3902145169878840044gmail-text" href="http://developer.blender.org/rB7551a0389c5929ddf6feaeac3a203987907e1988" target="_blank">rB7551a0389c5929ddf6feaeac3a203987907e1988</a>, <a rel="nofollow" class="m_-3902145169878840044external m_-3902145169878840044gmail-text" href="http://developer.blender.org/rBaedb148ed4dd47d5a8491e3de0a207cdd3701e30" target="_blank">rBaedb148ed4dd47d5a8491e3de0a207cdd3701e30</a>).</li>
<li> Same as above, but for the Blender manual (<a rel="nofollow" class="m_-3902145169878840044external m_-3902145169878840044gmail-text" href="https://github.com/amyspark/blender-manual/commit/7a6ae1b6d279cfbd58a05a598c36f6730b3c2bac" target="_blank">7a6ae1b6d279cfbd58a05a598c36f6730b3c2bac</a>, <a rel="nofollow" class="m_-3902145169878840044external m_-3902145169878840044gmail-text" href="https://github.com/amyspark/blender-manual/commit/a248590db512159febfa1998fcb36bf0c548a0ae" target="_blank">a248590db512159febfa1998fcb36bf0c548a0ae</a>)</li>
<li> The missing documentation for Python and RNA has been added, along with extra cleanup (<a rel="nofollow" class="m_-3902145169878840044external m_-3902145169878840044gmail-text" href="http://developer.blender.org/rB98357a85c8f024fcfc7dca01f43d60ab0f781d02" target="_blank">rB98357a85c8f024fcfc7dca01f43d60ab0f781d02</a>).</li>
<li> The first chart is now up, Melanin Redness (<a rel="nofollow" class="m_-3902145169878840044external m_-3902145169878840044gmail-text" href="https://github.com/amyspark/blender-manual/commit/b3cfbef5a40ef2beb8aa5043a3a42a072f17206f" target="_blank">b3cfbef5a40ef2beb8aa5043a3a42a072f17206f</a>)
<ul><li> This one was based on nirved's port of the Hair Curls scene.</li>
<li> I reduced the curls and tweaked the camera a bit to get the extra space needed for the text.</li></ul></li></ul>
<h2><span class="m_-3902145169878840044gmail-mw-headline" id="m_-3902145169878840044gmail-Next_up">Next up</span></h2>
<ul><li> Finish the Roughnesses and Randomization charts</li>
<li> Reference renders with the custom shader</li></ul>
<h2><span class="m_-3902145169878840044gmail-mw-headline" id="m_-3902145169878840044gmail-Questions">Questions</span></h2>
<p>I'd be grateful if you could review and post your opinions on the 
different charts. I'll be uploading them during the weekend, so that on 
Monday we can get reasonable reviews.
</p><br>-- <br>Lic. Leonardo E. Segovia<br>Departamento de Ciencias e Ingeniería de la Computación<br>Universidad Nacional del Sur<br>San Andrés 800 - Campus Palihue, B8000 Bahía Blanca, Argentina</div>
-- <br>
Soc-2018-dev mailing list<br>
<a href="mailto:Soc-2018-dev@blender.org" target="_blank">Soc-2018-dev@blender.org</a><br>
<a href="https://lists.blender.org/mailman/listinfo/soc-2018-dev" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/soc-2018-dev</a><br>
</blockquote></div>