我一直在尝试使用更复杂的着色器,并且遇到了顶点着色器和纹理采样器使用的坐标系的问题。简而言之:它们似乎没有任何意义,当试图测试它们时,我最终会得到不一致的结果。更糟糕的是,互联网几乎没有文档记录,我发现的大部分信息似乎都希望我知道它是如何工作的。我希望有人能澄清以下内容:
- 顶点着色器传递表示渲染目标上某个位置的(x,y,z)。 x,y和z的可接受值是什么?
- x和y如何对应后缓冲区的宽度和高度(假设它是渲染目标)?
- x和y如何对应输出纹理的宽度和高度(假设它是渲染目标)?
- 当x = 0且y = 0时,顶点位于何处?按位置?
- 纹理采样器在(u,v)坐标处采样纹理。 u和v的可接受值是什么?
- u和v如何与正在采样的纹理的宽度和高度相对应?
- AGAL的包装,钳制和重复标记如何改变采样,当没有给出时,默认行为是什么?
- 在u = 0和v = 0处采样时,哪个像素按位置返回?
修改
从我的测试中,我相信答案是:
- 不确定
- -1是左/下,1是右/上
- 不确定
- 位于输出的中心
- 不确定
- 0左/下,1是右/上
- 不确定
- 纹理的最左下角