是否可以设置一个 OpenGL 场景以实现像素完美的渲染和像素块传输?我注意到通过以下方式设置场景:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, width, height, 0.0, 0.0, 1.0);
然后使用以下方法绘制一个像素:
glBegin(GL_POINTS);
glVertex2i(0, 0);
glEnd();
并非始终将其绘制在每个硬件配置的左上角像素上(有时它位于左侧一个像素,或左上角下方一个像素)。我意识到这可能是由于图形驱动程序对 OpenGL 的不同实现,但是有没有办法让它左上角的像素是(0,0),右下角是(width-1,height-1 ) 始终如一?这似乎很奇怪,这不是标准化的东西......
我见过一些使用 (0.375, 0.375) 或 (0.5, 0.5) 的翻译的“黑客”,但这似乎也解决了某些配置而不是其他配置。