开放GL像素完美渲染模糊在MacOSX

Open GL pixel-perfect rendering blurred in MacOSX

本文关键字:模糊 MacOSX GL 像素 完美 开放      更新时间:2023-10-16

我正在编写一个跨平台应用程序,它使用OpenGL从PNG文件读取2d图像。我的程序可以在Linux、Windows和Mac OS X上运行。在Linux和Windows中,它工作得很好,但在Mac OS X中,图像不是像素完美的。图像看起来有点模糊,当用鼠标移动图像时,根据图像在OpenGL视口的哪个区域绘制,即使用哪个变换矩阵,图像会得到稍微不同的模糊工件。

我使用Mavericks和clang++ 5.1。

我没有做任何半像素移动,因为它不需要OpenGL的像素完美渲染。

我想这三个平台之间的浮点计算可能有一些差异,我尝试了-frounding-math和- float-store编译器标志,但它们都没有帮助。

其他人在Mac OS X上遇到过这个问题吗?

我找到原因了。

我正在用鼠标移动图像,设置图像的坐标为鼠标坐标。在Cocoa中,到达NSView的mouseMoved:方法的鼠标坐标由于某些原因有小数部分。因此,解决方案是在使用鼠标坐标设置GL视口中图像的坐标之前,将鼠标坐标四舍五入