0

有很多问题与纹理坐标中的两个点有关,我的着色器已经使用这个概念。1.0, 1.0 显示整个图像,而 1.0 / frame 在一个维度或另一个维度上显示......好吧,不幸的是,它显示了四边形的 0.0 到框架除法的十进制值之间的所有内容。

我想做的是,从着色器中控制纹理坐标的所有四个点。在每个教程和每个示例中,纹理坐标 vec 始终是 vec2,这意味着您只能控制两个端点,而不是起点。有没有办法消除这个限制?

为了让您了解我为什么要这样做(如果它还不是很明显的话),我想从一张较大的表格中挑选一个平铺或动画框架。

理想情况下,我还可以在着色器中找到图像的尺寸(宽度和高度),但如果有必要,传递这些值并不难。我相信此时我正在使用 GLSL 2,这意味着我无法在着色器中使用 textureSize2D 函数(已经尝试过)。

4

1 回答 1

0

简化传递给纹理命令的 UV 坐标对意味着从纹理中读取的点。只是一个点,不是一个区域。根据采样器状态以及是否发生缩小/放大,可以使用一个纹素来计算该点的值,但它仍然是一个与提供的 UV 相关的值。

于 2013-07-01T09:44:53.903 回答