3

这适用于使用 OpenGL 的 2D 游戏:

使用 OpenGL 是否可以显示绝对未过滤、未拉伸或模糊的纹理?

所以当我有一个 BMP 并将其转换为 OpenGL 纹理,然后检索该纹理并将其转换回来时,我没有修改或质量/数据丢失?

4

2 回答 2

7

当然,只需禁用过滤,这是通过将 GL_MIN_FILTER 和 GL_MAG_FILTER 设置为 GL_NEAREST 来实现的。还要确保以适当的大小绘制纹理,以便纹素与像素的大小相同。

于 2010-10-13T09:48:44.967 回答
3

正如 Matias 之前所说 - 一件事是设置GL_MIN_FILTERGL_MAG_FITLER( GL_NEARESTvia glTexParameter*)。

但是对于像素完美的渲染,还有另一件重要的事情——你不希望你的纹理被重新缩放到二次方。最简单的方法是通过绑定目标GL_TEXTURE_RECTANGLE而不是GL_TEXTURE_2D. 在这样的绑定纹理上,纹理坐标通常不在 (0..1,0..1) 范围内,而是在 (0..w, 0..h) 范围内。您可以通过这种方式轻松地进行每纹素索引。

于 2010-11-26T18:03:05.573 回答