Bus*_*ess 3 c++ opengl pixel put
我需要在窗口上绘制一个像素,根据它在整数中的像素位置,而不是浮点数.比如,例如,如果我要绘制0,0那么它将是窗口的左上角,1,1将是0,0和1以下的0像素右边的一个像素.我猜我是什么需要它有点像我网格.我不在乎0,0是它通常的原点,但我需要它按像素计数,不是1为最大值,-1为最小值,或者其他什么.
我已经尝试过的事情:我认为我可以做一些类似于Window Width ^ -1*X的绘图,这实际上可行,但不是所有时间.无论如何,我该怎么做呢?我也做了X位置/屏幕宽度,这是最好的,但它停止工作每10个左右的像素.
首先,OpenGL并不能保证所有情况下的像素完美放置.然而,有一个非常常见的问题:如果像素坐标,每个像素的中心将不具有整数坐标.
这是OpenGL视口中左下角像素的图表.
+Y
^
|
+-----+
| |
| o |
| |
+-----+---> +X
Run Code Online (Sandbox Code Playgroud)
如果您的数据被转换为每个像素的宽度和高度为1个单位,那么像素的中心位于(0.5, 0.5).如果您GL_POINT在该像素处绘制,则坐标应为(0.5, 0.5).如果您绘制一个矩形,它会从(0,0)到(1,1).如果通过它绘制一条垂直线,则该线的x坐标应为0.5.
等等.