0

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

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

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

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

4

1 回答 1

2

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

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

于 2013-06-06T09:10:42.880 回答