Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试使用 iOS 和 GL ES1 对纹理进行全屏渲染。我已经使用带有附加纹理的 FBO 实现了这一点,并且工作正常。
但我不确定我的方法是否正确:iPhone 屏幕不是二次方所以我所做的是将 glViewport 设置为最接近的 POT 值以匹配纹理大小,然后将其映射到具有相同大小的四边形屏幕。这可行,但图像看起来有点模糊。
是否可以仅绘制附加到 FBO 的纹理的一部分,然后相应地映射四边形 UV 坐标?
另一种方法是使用非锅纹理,但我想避免这种情况。
我会说你的方法很好,除了一件事。您编写了“最近的 POT 值以匹配纹理大小”,不要使用最近的,使用较大的最近的。如果你缩小它,结果应该有点模糊。
因此,创建一个比屏幕本身更大的 POT 纹理,将其附加到帧缓冲区,使用具有与屏幕相同参数的视口,然后如果您需要使用该纹理重新显示,请使用纹理坐标,例如screen.width/texture.width而不是1.0. 这应该会给你一个很好的 1:1 采样,结果应该尽可能清晰。
screen.width/texture.width
1.0