C w / OpenGL Pixel Perfect Plot

我需要在窗口上绘制一个像素,根据它在整数中的像素位置,而不是浮点数.比如,例如,如果我要绘制0,0那么它将是窗口的左上角,1,1将是0,0和1以下的0像素右边的一个像素.我想我是什么需要它有点像我网格.我不在乎0,0是它通常的原点,但我需要它按像素计数,不是1作为最大值而-1是最小值,或者其他什么.

我已经尝试过的事情:
我以为我可以做一些类似于这个窗口宽度^ -1 * X的绘图,这实际上确实有用,但不是所有的时间.无论如何,我该怎么做呢?
我也做了X位置/屏幕宽度,这是最好的,但它停止工作每10个左右的像素.

解决方法:

首先,OpenGL并不能保证所有情况下的像素完美放置.然而,有一个非常常见的问题:如果像素坐标,每个像素的中心将不具有整数坐标.

这是OpenGL视口中左下角像素的图表.

+Y
^
|     
+-----+
|     |
|  o  |
|     |
+-----+---> +X

如果您的数据被转换为每个像素的宽度和高度为1个单位,那么像素的中心位于(0.5,0.5).如果在该像素处绘制GL_POINT,则坐标应为(0.5,0.5).如果绘制一个矩形,它将从(0,0)变为(1,1).如果通过它绘制一条垂直线,则该线的x坐标应为0.5.

等等.

上一篇:c – 抗锯齿像素渲染


下一篇:java – 以dp为单位将“drawables”绘制到画布上