Page MenuHome

Line Art Bug Fix: Lower tile splitting limit
ClosedPublic

Authored by YimingWu (NicksBest) on Aug 17 2021, 10:36 AM.

Details

Summary

Lowers tile splitting limit so models with extremely dense mesh portions could still have reasonable performance while for more common cases the performance impact should be minimal.

See T90695 for such case. And please test some medium to big scenes to see if this really hinders performance.

A more clever tile-splitting strategy should be implemented, such as "if couldn't get at least 20% rejection rate in one split, then stop", rather than current "fixed depth" mode.

This patch does _not_ back-port to 2.93.

Diff Detail

Repository
rB Blender

Event Timeline

YimingWu (NicksBest) requested review of this revision.Aug 17 2021, 10:36 AM
YimingWu (NicksBest) created this revision.

hmm, instead of a "if couldn't get at least 20% rejection rate in one split, then stop", check perhaps you could actually have a check to see if we are close to a pixel in size?

So it would be more like a: "if the tile is pixel sized, then stop"?

Otherwise I don't really see any issues with this change if it brings us more in line with 2.93 before the newer code you are working on is in place.

This revision is now accepted and ready to land.Aug 17 2021, 12:04 PM

I have checked the value before and after and with this change the speed is similar to 2.93. The old value made the scene unusable.

@Sebastian Parborg (zeddb) some times pixel size is not quite enough, for example when your output size is small but the scene is complex, that would lead to inadequate splitting, although in that case the details can hardly be seen, but line art can't really simplify the model if the user set it up that way. Because it's geometry based, output speed is unlikely to be proportional to image size. (Freestyle does ray trace, so if you have a large output size, in a complex model, it often leads to a very lengthy calculation)