2010-10-13 65 views
3

这是用OpenGL的2D游戏:OpenGL:准确的纹理可能吗?

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

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

回答

7

当然,只需禁用筛选,即通过将GL_MIN_FILTER和GL_MAG_FILTER设置为GL_NEAREST。另外,请确保您以适当的尺寸绘制纹理,以便纹理像素与像素尺寸相同。

3

正如马蒂亚斯先前所说 - 一件事是将GL_MIN_FILTERGL_MAG_FITLER设置为GL_NEAREST(通过glTexParameter*)。

但是对于像素完美的渲染,还有另外一件重要的事情 - 你不希望你的纹理重新调整到2的幂次。最简单的方法是通过绑定目标​​而不是GL_TEXTURE_2D来指定纹理。在这种绑定纹理上,纹理坐标通常不在范围内(0..1,0..1),而是(0..w,0..h)。您可以通过这种方式轻松实现每个素材的索引。