Michel Anders writes:
Hi,
because measuring is better than just assuming, I did some research on the question whether small meshes perform better than alpha mapped textures when rendering particle systems.
The short answer is: Yes you can speed up your renders significantly is you take the time to model a silhouette instead of alpha mapping a texture to a simple quad.
The in-depth story with all the gory details can be found on my blog.
Cheers,
-- Michel.
6 Comments
Very interesting and high impact article. Great work !
How the change from alpha to mesh influence viewport rendering ?
Best,
Payam
In rendered view i assume the behavior is similar but it might be worthwhile verifying this as well.
I think it's also very efficient to model a simple outline of the leaf for the shadow, still use alphamapping but then disable "transparent shadows" in the material settings. So you have the advantages of both techiques - better visuals from alphamapping and better performance from opaque shadows.
good suggestion, and even with transparent shadows you would have a speedup if the mesh was only slightly larger than alphamap. But at almost any distance fine details in the shape of the shadow of a leaf is unnoticeable so disabling transparent shadows is fine and saves still a bit of rendering time.
The bigger challenge might be translucency, both what light you see through a leaf (for which you need a translucent shader added to your nodes and which adds light coming from the back) and what light travels through the leave and casts light on other leaves. For this you need a transparent shader again but 1 bounce probably would be ok but i don't know if Blender has the option to limit transparent bounces per shader. Maybe the light path node offers some options here (is transparent in combination with depth or something?)
have you tried non-Principled shader way of rendering?
No, but whether the non-transparent part of the nodes is principled or not shouldn't make any difference, after all it is the number of times a new ray has to be calculated,i.e. if the spot that is hit is transparent that matters. So if your shader is different from my simple setup the absolute render times will change but the relative difference between transparency v real geometry will stay more or less the same.