From the OpenGL 1.2 spec, Appendix B (Corollaries):
“17. (No pixel dropouts or duplicates). Let two polygons share an identical edge (that
is, there exist vertices A and B of an edge of one polygon, and vertices C and D of an
edge of the other polygon, and the coordinates of vertex A (resp. B) are
identical to those of vertex C (resp. D) and the state of the coordinate transformations
is identical when A, B, C, and D are specified). Then, when the fragments
produced by rasterization of both polygons are taken together, each fragment
intersecting the interior of the shared edge is produced exactly once.”
To put it simple, no two polygon edges can be drawn twice.
However, I was wondering about the actual extent of this requirement. One possible
implementation would check all the polygons sent to the GL, flagging for each one which
edges should be drawn and which ones not. My question is: To what extent this check should be made?
A. Until glFlush() ?
B. Until glFinish() ?
C. Until glClear(GL_COLOR_BUFFER_BIT …) ?
D. None of the above? (Which one, then?)
E. Invalid algorithm, should be replaced with another way to ensure that requirement?
- Heriberto Delgado
(heribertod@ruteo.com)