这是用OpenGL的2D游戏:OpenGL:准确的纹理可能吗?
它是否可以使用OpenGL显示绝对未经过滤的纹理,未被拉伸或模糊?
因此,当我有BMP并将其转换为OpenGL纹理,然后检索该纹理并将其转换回来时,我没有修改或质量/数据丢失?
这是用OpenGL的2D游戏:OpenGL:准确的纹理可能吗?
它是否可以使用OpenGL显示绝对未经过滤的纹理,未被拉伸或模糊?
因此,当我有BMP并将其转换为OpenGL纹理,然后检索该纹理并将其转换回来时,我没有修改或质量/数据丢失?
当然,只需禁用筛选,即通过将GL_MIN_FILTER和GL_MAG_FILTER设置为GL_NEAREST。另外,请确保您以适当的尺寸绘制纹理,以便纹理像素与像素尺寸相同。
正如马蒂亚斯先前所说 - 一件事是将GL_MIN_FILTER
和GL_MAG_FITLER
设置为GL_NEAREST
(通过glTexParameter*
)。
但是对于像素完美的渲染,还有另外一件重要的事情 - 你不希望你的纹理重新调整到2的幂次。最简单的方法是通过绑定目标而不是GL_TEXTURE_2D
来指定纹理。在这种绑定纹理上,纹理坐标通常不在范围内(0..1,0..1),而是(0..w,0..h)。您可以通过这种方式轻松实现每个素材的索引。