X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fdocuments.git;a=blobdiff_plain;f=irc%2F%23ipdf.log;h=0fa301724fa3b53e8d077a74b15bc913afdfa958;hp=006da521b6f3b4b3eb87c2335e5e261c0e3a3695;hb=94d3032325102627ae940d259e0f43bca9a39d67;hpb=8321bff20882723b1ee6aecb4c9acb33c8c60aa4 diff --git a/irc/#ipdf.log b/irc/#ipdf.log index 006da52..0fa3017 100644 --- a/irc/#ipdf.log +++ b/irc/#ipdf.log @@ -3914,3 +3914,82 @@ 21:06 < sulix> I think I've just found a paper saying that it is only possible for béziers which happen to be straight lines. 22:55 < sulix> Never mind, it is possible, it's just very nasty. 23:15 < sulix> Also C++14, because we need more lambdas: https://isocpp.org/blog/2014/08/we-have-cpp14 +--- Day changed Wed Aug 20 2014 +12:05 < matches> I guess we've accomplished the goals for this week's meeting then! +12:05 < matches> (That shading algorithm totally counts as a "first attempt") +12:07 < sulix> I'm about 2/3rds of the way through deriving the reparametrisation of béziers. +12:08 < sulix> It basically just boils down to pages and pages of rearranging polynomials. +12:38 < sulix> I managed to get the qt4/qt5 monstrosity compiling on my laptop. +12:38 < sulix> It has a "moc-qt4" program, which works, whereas "moc" is qt5. +16:28 < matches> I think I need to stop adding this log to git... +23:08 < sulix> matches: But then, how would history record that I've finally got a maybe-correct derivation for cubic bézier reparametrisation: http://davidgow.net/stuff/cubic_bezier_reparam.pdf +23:08 < sulix> (Code is in git) +--- Day changed Thu Aug 21 2014 +12:57 < sulix> So it turns out that quadtrees are hard, and reparametrising béziers is why. +13:03 < matches> I don't seem to see anything anymore with the quad tree enabled +13:10 < sulix> The quadtree doesn't let you add things in realtime. +13:10 < sulix> Quadtree nodes are immutable once created. +13:12 < matches> Ah +13:35 < sulix> debug: ReParametrise (bezier.h:190) - (0.000000,0.000000),(1.000000,1.000000),(1.000000,1.000000),(1.000000,1.000000) -> (-nan,-nan),(-nan,-nan),(-nan,-nan),(-nan,-nan) +13:36 < sulix> Looking good! +13:54 < sulix> Clearly, the quadtree rendering is now perfect: http://davidgow.net/stuff/ipdf-this-is-definitely-a-fox.png +--- Day changed Sun Aug 24 2014 +17:51 < matches> ... +17:51 < matches> I am parsing CSS in the SVGs +17:51 < matches> WHAT HAVE I DONE +17:52 < matches> Blame inkscape for always using css to control the properties +17:57 < matches> http://szmoore.net/ipdf/death-by-shading.png +17:59 < matches> Anyway there is a proper "Group" data type like with the Beziers +18:00 < matches> So if you want to cache things related to groups you can put them in that I guess +18:02 < matches> Really it should be called "PATH" not "GROUP" but I vaguely thought it might be able to be used as either +--- Day changed Mon Aug 25 2014 +10:39 < matches> I was thinking about how to do shading more +10:40 < matches> And I basically arrived at the idea Loop and Blinn have that you kept talking about +10:40 < matches> Except I didn't realise it at first because my version was all using rectangles instead of triangles +10:40 < matches> I think I will try to get my scanline fill to work first though +13:03 < matches> It sort of works +13:15 < matches> ... or not +--- Day changed Tue Aug 26 2014 +14:25 < matches> I wonder if I'm going to end up just reverse engineering an algorithm that I was too lazy to understand properly +14:26 < matches> I really like the idea of flood fill better than doing insane triangulation maths +14:26 < matches> Surely GPUs can flood fill +14:28 < sulix> I think they can, but either very slowly or only on very new hardware... +14:28 < sulix> I think you'd need to do it in several passes, maybe? +14:28 < matches> The problem I had with flood fill was working out where to start +14:28 < matches> I have something that almost works +14:28 < matches> That requires no clever maths... +14:29 < matches> But it is CPU only +14:29 < matches> And probably breaks in a bunch of special cases +14:30 < matches> It doesn't have precision problems though (once you've drawn the boundary that is) +14:31 < matches> It would still be cool to go through the Loop/Blinn algorithm on CPU and GPU +14:31 < matches> Because that is going to have floating point maths in it +14:31 < matches> flood fill has no floats +14:31 < matches> Therefore it is infinite precision +14:31 < matches> Objective complete +14:32 < matches> Actually I don't think my algorithm is proper flood fill, it's sort of scanline flood fill but not? +14:32 < matches> When in doubt write random code +14:34 < sulix> How are you handling the case where, due to a path being half offscreen it becomes two paths? +14:34 < matches> ... I am not +14:35 < matches> If part of the path is offscreen it is annoying +14:36 < sulix> Hopefully, once some of the quadtree code is more functional, the path clipping code can be used to clip paths to the screen. +14:39 < matches> Compositing is also totally broken because the fill just looks for black pixels +14:40 < matches> But if I can get it doing fonts then that's sort of not totally useless +18:35 < matches> I am very tempted to implement a "Please click on the location to fill this path from" interface at the moment +18:39 < matches> Alright, I have shading somewhat stack overflowing +18:39 < matches> I mean +18:39 < matches> Working +18:39 < matches> * +18:39 < matches> ******** +18:49 < matches> http://szmoore.net/ipdf/shading-the-only-svg-that-doesnt-segfault.png +20:43 < matches> Argh +20:43 * matches stabs coordinate transforms +20:43 < matches> stab stab stab +20:44 < matches> My filling algorithm is to find the 4 extrema of the path +20:44 < matches> And try and flood fill inwards from each one +20:45 < matches> But the extrema pixel coordinates keep transforming to *outside* of the path +20:45 < matches> By one pixel +20:45 * matches stabs +21:52 < matches> I guess I should just actually implement loop and blinn shading +21:52 < matches> Flood fill is not as easy as I had hoped +21:53 < matches> I have to start doing annoying geometry maths to work out what point I can start the flood fill at +21:55 < matches> Sigh