<div dir="ltr">so interesting!, Embree too looks interesting!!, will it work for CUDA?</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 9, 2017 at 8:29 PM, Stefan Werner <span dir="ltr">&lt;<a href="mailto:stewreo@gmail.com" target="_blank">stewreo@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Here’s a little update on my progress.<br>
<br>
I believe I have it working reasonably now. I tried some of the Agent 327 scenes and was able to render them with a 500MB texture cache at only a minimal speed penalty. &quot;03_01_B - Enter” rendered on my machine without caching in 2h2m47s, with caching it clocked in at 2h2m50s. With the Gooseberry benchmark scene I get something more around 5%-10% render time increase.<br>
<br>
For the interested, here’s what happened to a few things I wrote about earlier:<br>
<span class=""><br>
&gt; On 7. May 2017, at 11:05, Stefan Werner &lt;<a href="mailto:stewreo@gmail.com">stewreo@gmail.com</a>&gt; wrote:<br>
&gt; I was playing with the subtree cloning approach, and that may be a way<br>
&gt; to get the basics working (at the expense of a larger shader tree). Maybe<br>
&gt; then I can continue with introducing optimised shortcuts for common<br>
&gt; use cases, such as direct use of UV maps, box/sphere mapping, etc.<br>
<br>
</span>That one still holds up. Cloning subtrees works, and it was a fairly low-impact way of getting texture differentials. It was easy to implement that based on the work that’s already there for bump mapping.<br>
<span class=""><br>
&gt; High frequency bumps on sharp speculars are indeed one of the worst<br>
&gt; case scenarios for texture (or geometry) caching. Disco balls are evil. :)<br>
<br>
</span>That is one benchmark I need to run still - a worst case scenario built on purpose. I wonder how slow things will get in bad situations.<br>
<br>
(about texture differentials for light samples:)<br>
<span class="">&gt; I was looking at that, and this looks like shouldn’t be too hard. In addition<br>
&gt; to evaluating the BSDF, we’d also need to get domega_in_dx/dy from the<br>
&gt; BSDFs, maybe through a separate call. For the branched path tracing<br>
&gt; case, we would then need to pick the result from the BSDF with the<br>
&gt; narrowest footprint.<br>
<br>
</span>It actually works reasonably well without asking the BSDF. I just plugged in the code for perfect specular reflections and that appears to be good enough for basic cases. I could however try much wider differentials here, since MIS will assign very low weights to specular BSDF + light sampling and any artefacts from picking too high of a mip map level should be barely noticeable.<br>
<br>
Currently my branch is off master, but I guess I should rebase to 2.80 as there’s no realistic chance of this being added to 2.79, or am I wrong?<br>
<br>
=== In other news ===<br>
I am also in the middle of adding embree as an alternative to Cycles’ own BVH (CPU only of course). With that I am seeing speedups of varying magnitude, depending on the scene. In simpler scenes it’s just a percent or two, the Gooseberry benchmark already drops from 1h23 to 1h04 on my machine, and certain frames from Agent 327 with plenty of motion blur and hair drop from 2 hours (already with Cycles’ time step BVH) to ~12 minutes. There are a few little kinks to work out still, as I’m getting self-shadowing with embree hair that I don’t get with Cycles hair.<br>
<div class="HOEnZb"><div class="h5"><br>
-Stefan<br>
______________________________<wbr>_________________<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/<wbr>mailman/listinfo/bf-cycles</a><br>
</div></div></blockquote></div><br></div>