Around 13 o'clock on May 5, Allen Akin wrote:

> I understand and support the effort to produce an
> implementation-independent spec.  But have we become too focused on
> precision in this case?

I hope not to have -- the goal is to produce answers which can be 
reproduced on a wide variety of target devices, not to produce answers 
that are in some abstract sense "perfect".

> For example, is it likely that display effects, like electron-beam
> spillover from adjacent pixels, are large compared to the errors that
> typically would be introduced by performing the area computations in
> lower precision?

Absolutely, I'm not interested in computing exact coverage, only in 
computing a reasonable approximation that is easy to understand, fast to 
compute and clearly specified.

Remember that Render supports two modes for polygon edges -- precise and 
imprecise.  Precise polygons have an exact specification that applications 
can rely upon so that rendering done in different contexts will always 
match exactly.  

Imprecise polygons have requirements from the spec controlling their
behaviour to ensure "reasonable" looking results, but precise pixelization
is not required.  It's very likely that some implementations of "imprecise"
polygons hardware will generate results closer to exact coverage than
whatever "precise" specification we come up with, but as you say, the 
differences should be entirely masked by other factors, not the least of 
which is that we're modeling pixels as squares.

The sub-pixel area coverage can now be computed entirely in 32 bit
arithmetic.  Render supports up to 16 bits of alpha channel, making lower
precision arithemetic infeasible; of course, we could specify variable
precision depending on the actual alpha depth, but that seems like a lot of
effort.

We'll need higher precision for walking the polygon edges; fortunately,
modern hardware (or at least modern compilers) provide a 64 bit datatype
for that purpose.

Keith Packard        XFree86 Core Team        Compaq Cambridge Research Lab


_______________________________________________
Render mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/render

Reply via email to