4 ms·
I thought pathfinder is scanline-oriented, using techniques similar to http://kunzhou.net/zjugaps/pathrendering/ http://kunzhou.net/zjugaps/pathrendering/ Tili
by moonchild 4y ago
I thought pathfinder is scanline-oriented, using techniques similar to http://kunzhou.net/zjugaps/pathrendering/ http://kunzhou.net/zjugaps/pathrendering/
Tiling doesn't work too well under domain transforms--3d environments, dynamic zoom, etc. That's why I am betting on high-quality space partitioning. Slug space partitioning is not amazing; I believe it still processes O(n) curves per fragment in a horizontal band.
- jstimpfle 4y agoYou are literally talking to the Pathfinder author. I just implemented basically the same tiling mechanism, it works OK for me, I can already do about 1000 line segments, covering ~10000 tiles (multiply counting tiles that are touched by different polygons) in about 1ms on CPU and GPU each. Meaning the work is already quite well divided for my test cases. This is end to end without any caching. For static scenes doing world space partitioning is an idea that I considered, but for now I'm trying to optimize more in order to see what the limits of this basic approach are.
- pcwalton 4y ago> You are literally talking to the Pathfinder author. No worries, I think they know :) And yeah, I considered doing fancier partitioning, but really toward the end (before work stopped due to layoffs) I was pushing on shipping, which meant deprioritizing fancy partitioning in favor of implementing all the bells and whistles of SVG. I certainly believe that you could get better results with more sophisticated acceleration structures, especially in cases like texturing 3D meshes with vector textures.
- spartanatreyu 4y agoI do web and app dev, but I was always interested enough in servo, pathfinder, druid, tauri, etc... to keep tabs on them. What did you end up moving on to after pathfinder?
- Jasper_ 4y agoPathfinder 1 was a scanline approach. Pathfinder 2 was a tess-based approach. Pathfinder 3 is a tiles approach.