4 corner gradient
Allen Akin
akin at pobox.com
Thu Jun 28 10:46:29 PDT 2007
On Thu, Jun 28, 2007 at 11:29:04AM +0100, Keith Whitwell wrote:
| Glynn Clements wrote:
| > Tom De Man wrote:
| >
| >> Using the i915 I try to create a 4 corner gradient rectangle using 2 3D
| >> primitive triangles. I get a visible diagonal line between the two
| >> triangles ...
| >
| > Gouraud shading uses linear interpolation. Essentially, each of the
| > two triangles will be mapped to a planar (flat) triangle in RGB space.
| > As the 4 vertices (red, green, blue, white) aren't co-planar, there
| > will be a discontinuity (corner) along the diagonal where the two
| > triangles meet.
| >
| > OTOH, bilinear interpolation between the vertices will produce a
| > continuous surface (specifically, a ruled surface) with no
| > discontinuities.
| >
| > AFAIK, you cannot achieve bilinear interpolation using OpenGL
| > primitives...
I have a vague recollection that you can do this in old-style OpenGL
using texture mapping, but I can't find sample code at the moment.
| You could do it pretty simply with a pixel shader.
Yep, that would be the way to go with current hardware.
Allen
More information about the xorg
mailing list