有很多问题与纹理坐标中的两个点有关,我的着色器已经使用了这个概念。 1.0,1.0显示了整个图像,并且1.0 /帧在一个维度或另一个维度中显示出......好吧,不幸的是,它显示四边形的0.0之间的所有内容,以及框架分割的十进制值。
我想做的是,从着色器控制纹理坐标的所有四个点。在每个教程和每个样本中,纹理坐标vec始终为vec2,这意味着您只能控制两个端点,而不是起点。有没有办法消除这种限制?
为了让您了解我为什么要这样做(如果它已经不明显),我想从较大的工作表中选择一个瓷砖或动画框架。
理想情况下,我还能够在着色器中找到图像的尺寸(宽度和高度),但如果有必要,传递这些值并不困难。我相信此时我'使用GLSL 2,意味着我无法在着色器中使用textureSize2D函数(已经尝试过)。
答案 0 :(得分:0)
简化您传递给纹理命令的UV coodrinate对意味着从纹理读取的点。只有一点,而不是一个区域。取决于采样器状态以及是否发生缩小/放大,可以使用一个纹素来计算该点的值,但仍然是一个与提供的UV相关的值。