我可以调整给定纹理的U和V或S和T范围吗?

时间:2011-10-19 18:56:15

标签: opengl-es opengl-es-2.0

问题是这个,我从240x160 res的相机输入,我把它放在256x256纹理中。

然后我将它映射到U上的四元组[0..240 / 256],以及V.上的[0..160 / 256]。工作正常,但问题是我渲染到缓冲区..

缓冲区是正确的比例,因为我不想做更多的像素而不是nessasary。然后我来应用不同的效果并渲染到下一个缓冲区。但到目前为止,我必须在U和V上使用范围[0..1],因此我的宽高比已经丢失。

问题是我的像素着色器效果可能依赖于宽高比,例如,水波纹需要计算距离中心的距离。

我可以在着色器中解决问题,但理想情况下,在第二次(或更多)传递时,我想设置UV范围,以便预先设置宽高比。

我可以这样做吗?

1 个答案:

答案 0 :(得分:1)

纹理坐标始终来自OpenGL ES中的[0,1]。您必须将纵横比作为制服传递,或者以相同的纵横比创建纹理。