为什么OpenGL允许/使用小数值作为顶点的位置?

use*_*312 0 opengl

据我所知,点/像素的位置不能是一小部分,至少在光栅图形系统上,硬件使用像素来显示图像.

那么,为什么以及OpenGL如何使用小数值来绘制像素?

例如,怎么可能:glVertex2f(0.15f, 0.51f);

ves*_*san 6

此命令不会绘制任何像素.它只是定义了3D空间中某个点的位置(您会注意到有3个坐标,而对于屏幕上的像素,您只需要2个坐标).这是OpenGL管道的起点.然后,这一点在它最终出现在屏幕上之前经历了很多变换.

此外,坐标是无单位的.例如,你可以说你的视口在0.0f和1.0f之间,那么这些坐标很有意义.基本上你必须从数学角度考虑这些观点,而不是像素.

我建议就如何OpenGL的转换工作,例如一些阅读在这里,在这里或教程在这里.