OpenGL ES渲染为非POT纹理

我正在尝试使用iOS和GL ES1进行全屏渲染。 我已经实现了使用具有附加纹理的FBO并且工作正常。

但我不确定我的方法是否正确:iPhone屏幕不是两倍功率,所以我所做的就是将glViewport设置为最近的POT值以匹配纹理大小,然后将其映射到具有相同大小的四边形屏幕。 这有效,但图像看起来有点模糊。

是否可以只绘制附加到FBO的纹理的一部分,然后相应地映射四维UV坐标?

另一种方法是使用非底纹纹理,但我想避免这种情况。


我会说你的方法是好的,除了一件事。 您编写了“最近的POT值以匹配纹理大小”,请勿使用最近的,使用最近的大的。 如果你缩减它的结果应该有点模糊。

因此,创建一个大于屏幕本身的POT纹理,将其附加到帧缓冲区,使用与屏幕具有相同参数的视图端口,然后如果需要使用该纹理重新显示,请使用纹理坐标,例如screen.width/texture.width1.0 。 这应该给你一个很好的1:1取样,结果应该尽可能清楚。

链接地址: http://www.djcxy.com/p/34015.html

上一篇: OpenGL ES render to non POT texture

下一篇: Texture loaded is shown in double size in iPhone OS v 3.1