OpenGL:精确的纹理可能吗?

OpenGL:精确的纹理可能吗?,opengl,graphics,2d,textures,mipmaps,Opengl,Graphics,2d,Textures,Mipmaps,这适用于使用OpenGL的2D游戏: 使用OpenGL是否可以显示绝对未过滤、未拉伸或模糊的纹理 因此,当我有一个BMP并将其转换为OpenGL纹理,然后检索该纹理并将其转换回时,我没有任何修改或质量/数据丢失?当然,只需禁用过滤,这是通过将GL_MIN_过滤器和GL_MAG_过滤器设置为GL_NEAREST来实现的。另外,请确保以适当的大小绘制纹理,以便纹理与像素的大小相同。如Matias之前所述-一件事是将GL_MIN_FILTER和GL_MAG_FITLER设置为GL_NEAREST(通过

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

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


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

当然,只需禁用过滤,这是通过将GL_MIN_过滤器和GL_MAG_过滤器设置为GL_NEAREST来实现的。另外,请确保以适当的大小绘制纹理,以便纹理与像素的大小相同。

如Matias之前所述-一件事是将
GL_MIN_FILTER
GL_MAG_FITLER
设置为
GL_NEAREST
(通过
glTexParameter*

但对于像素完美渲染,还有另一件重要的事情-你不希望你的纹理被重新缩放到二的幂。最简单的方法是通过绑定目标
GL\u texture\u RECTANGLE
而不是
GL\u texture\u 2D
指定纹理。在这种绑定纹理上,纹理坐标通常不在(0..1,0..1)范围内,而是在(0..w,0..h)范围内。通过这种方式,您可以轻松地建立每texel索引