I don't think distance fields are the correct approach either, though the work that Adam Simmons is doing to analytically solve beziers on the GPU is interesting: https://twitter.com/adamjsimmons/status/730911372532322304
I don't think distance fields are the correct approach either, though the work that Adam Simmons is doing to analytically solve beziers on the GPU is interesting: https://twitter.com/adamjsimmons/status/730911372532322304
If you're interested in the details of the GPU-based implementation, I pre-sort the path data into bins on CPU, encode it to a dynamic texture, traverse the structure in shader using a modified BVH, and calculate the exact distance to individual Beziers using root finding, which I open-sourced here [2]. It's very fast and avoids overdraw through the use of a low-res stencil mask also encoded into texture. There's of course a lot more nuance than that (fill calculation, level-of-detail, etc.) but that's for a long blog post.
- [1] https://ultralig.ht
http://blag.fingswotidun.com/2016/05/evolved-images-using-sh...
Are you sure about that? I’ve looked at their demo with renderdoc. They’re rendering a small polygon for each character, i.e. they’re rejecting invisible characters, or parts of characters, early before PS. And because they cut corners of each character the overdraw is minimized as well. Symmetric band optimization further reduces time spend computing the PS.