I think we should just make a call on whether double gains any
noticeable quality without any noticeable loss of performance. My gut
feel is that both numbers will be small and either decision is fine, but
it would be nice to know. I don't think it is worth maintaining 2
versions of the rasterizer.
Please don't pursue double at this time except for possibly this one
case (computing the two local variables slope and x1_intercept as
double). Nothing beyond that. We can look at full double precision
after we get Marlin in to the main repos.
We often use JBS for potential work, wording the description along the
lines of "we noticed X, Y and Z when doing some other work and they may
not be the best way, we should try it with P, Q, and R instead to see if
that saves us something important"...
...jim
On 7/31/15 12:20 AM, Laurent Bourgès wrote:
Jim,
One stupid question related to accuracy:
- should we have 2 distinct rendering pipelines : 1 based on floats (for
speed), 1 using doubles for increased precision and accuracy ?
Maybe we could use the java2d rendering hint QUALITY to decide which
pipeline to use... however this hint is for now not given in the
AATileGenerator interface.
With respect to double precision usage, I think that x1,y1,x2,y2 will be float
and I would be hard pressed to recommend revisiting that.
I agree I want to implement a double-precision renderer for a while as
recent cpus (64bits) may be faster using doubles ... and it would be
more precise for stroker computations...
Do you want me to try ? I can duplicate classes (Renderer, Dasher,
Stroker) with float and double variants.
For now, I can use a system property to choose the pipeline variant.
Of course I will do it later:
I can create JBS bugs to maintain a TODO list.
Laurent