OpenGL Question about pixel-perfect positioning

This topic is 4850 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

Could anyone explain this? At the top of this post: http://www.gamedev.net/community/forums/topic.asp?topic_id=104791&PageSize=25&WhichPage=2 "for pixel-exact positioning, the usage of a slight translation is mandatory, as explained in the opengl.org's FAQ": http://www.opengl.org/resources/faq/technical/transformations.htm#tran0030 Can anyone exaplin why a slight translation is necessary for pixel-exact positioning? TIA

Share on other sites
From MSDN help:

To obtain exact two-dimensional rasterization, carefully specify both the orthographic projection and the vertices of the primitives that are to be rasterized. Specify the orthographic projection with integer coordinates, as shown in the following example:
gluOrtho2D(0, width, 0, height);
The parameters width and height are the dimensions of the viewport. Given this projection matrix, place polygon vertices and pixel image positions at integer coordinates to rasterize predictably. For example, glRecti(0, 0, 1, 1) reliably fills the lower-left pixel of the viewport, and glRasterPos2i(0, 0) reliably positions an unzoomed image at the lower-left pixel of the viewport. However, point vertices, line vertices, and bitmap positions should be placed at half-integer locations. For example, a line drawn from (x (1) , 0.5) to (x (2) , 0.5) will be reliably rendered along the bottom row of pixels in the viewport, and a point drawn at (0.5, 0.5) will reliably fill the same pixel as glRecti(0, 0, 1, 1).

An optimum compromise that allows all primitives to be specified at integer positions, while still ensuring predictable rasterization, is to translate x and y by 0.375, as shown in the following code sample. Such a translation keeps polygon and pixel image edges safely away from the centers of pixels, while moving line vertices close enough to the pixel centers.

1. 1
2. 2
Rutin
16
3. 3
4. 4
5. 5

• 11
• 26
• 10
• 11
• 9
• Forum Statistics

• Total Topics
633721
• Total Posts
3013537
×