[Bf-committers] Default for Raytracer Instancing

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Jan 30 23:19:56 CET 2011


Hi,

When you enable instancing, it will only do it for objects that have
more than one instance. So for that there should be no performance
regression. It can degrade performance due to the overhead of the ray
transforms, and because of lower BVH tree quality. Also when
instancing meshes with only a few faces you might actually use more
memory. Performance may be improved by using less memory which can
avoided cache misses, and of course swapping if it doesn't fit in
memory.

I think it should be enabled by default, other parts of Blender don't
use that much memory for instances, and it's unexpected that
raytracing would suddenly use much more. I still have raytracing
optimizations to port over from the render branch, will look at
getting those into trunk, since they shouldn't change any results.

Brecht.

On Sun, Jan 30, 2011 at 10:51 PM, Daniel Salazar - 3Developer.com
<zanqdo at gmail.com> wrote:
> Matt instancing speeds up in orders of magnitude when a scene uses instances
>
> Daniel Salazar
> www.3developer.com
>
>
>
> 2011/1/30 Matt Ebb <matt at mke3.net>:
>> On Mon, Jan 31, 2011 at 7:45 AM, Bassam Kurdali
>> <bkurdali at freefactory.org> wrote:
>>> I have noticed this too, turning on instancing, in scenes with lots of
>>> instances, sometime leads to longer render times. In the past it has
>>> been faster, too, so I don't know what's going on, or why it should have
>>> these results.
>>
>> It's plausible that enabling it can lead to longer render times, since
>> it has to do more work (extra transformations) when intersecting rays.
>> Though I imagine it could vary from scene to scene - scenes without
>> any actual instances would be slower, but perhaps some scenes with
>> instances could be faster too (if it's always intersecting the same
>> object, it may be better for the cache?). The main reason for using
>> instances is to lower memory usage anyway - some scenes you just can't
>> render without it.
>>
>> I'd be in favour of enabling it by default, but perhaps it could be a
>> bit smarter - i.e. if instancing is turned on, but no instances are
>> actually found during the render's geometry pre-processing, then it
>> could just disable instancing internally for that render. Not sure if
>> the code's organised in a way that would make that easy, but it makes
>> sense to me.
>>
>> cheers
>>
>> Matt
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list