[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xfree-render
Subject:    [Render] Re: Re: Stupid render questions
From:       rjh () WORLD ! STD ! COM
Date:       2000-08-10 21:54:10
[Download RAW message or body]

> I'm hoping for a little guidence in this area; I need to think through what sort
> of invarients I'd like the polygons to exhibit; the section you've quoted
> above relates to color interpolation in trapezoids where I was told hardware
> couldn't manage bilinear interpolation and needed to be allowed simple
> interpolation across triangles.
> 

This will interact with your maximum tolerable error.  Consider the
simplest nasty case.  Take a square.  In one channel the lower left and
upper right corners are value 100, the other corners are value 0. The
correct bilinear interpolation will make the value at the center 50. No
triangle defined by three corners will be within 1 lsb of 50 at that
point.  The triangles give either 100 or 0.  So this simple case must be
further tesselated by the X Render server before triangle rendering in
hardware if the maximum error is to be 1 lsb.

This introduces the question of whether the X server should be further
tesselating, or whether you make imprecise permit really very imprecise
rendering.  The latter makes sense from a performance point of view. You
just tell people "don't be too stupid.  If you use imprecise, it is your
responsibility to give render non-nasty trapezoids."  Then the X server
implementor can tesselate in some convenient manner.

For triangles and triangle strips these issues do not arise, although I
suppose a fanatic specification might add the statement that triangle
strips be rendered using the triangles given.  If I re-tesselate
trapezoids I should state that I do not modify triangles.

Things get much uglier if the protocol is extended beyond triangles,
trapezoids and triangle strips.

R Horn

_______________________________________________
Render mailing list
Render@XFree86.Org
http://XFree86.Org/mailman/listinfo/render

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic