Actionscript 3 阶段3d,AGAL-顶点';和纹理';坐标系
我一直在尝试使用更复杂的着色器,但遇到了顶点着色器和纹理采样器使用的坐标系的问题。简言之:它们似乎没有任何意义,当尝试测试它们时,我最终得到了不一致的结果。更糟糕的是,互联网上几乎没有文档记录,我发现的大部分信息似乎都希望我知道这是如何运作的。我希望有人能澄清以下几点:Actionscript 3 阶段3d,AGAL-顶点';和纹理';坐标系,actionscript-3,pixel-shader,stage3d,agal,Actionscript 3,Pixel Shader,Stage3d,Agal,我一直在尝试使用更复杂的着色器,但遇到了顶点着色器和纹理采样器使用的坐标系的问题。简言之:它们似乎没有任何意义,当尝试测试它们时,我最终得到了不一致的结果。更糟糕的是,互联网上几乎没有文档记录,我发现的大部分信息似乎都希望我知道这是如何运作的。我希望有人能澄清以下几点: 顶点着色器传递表示渲染目标上位置的(x、y、z)。x、y和z的可接受值是多少 x和y如何对应于后缓冲区的宽度和高度(假设它是渲染目标) x和y如何对应于输出纹理上的宽度和高度(假设它是渲染目标) 当x=0和y=0时,顶点位于何
- 顶点着色器传递表示渲染目标上位置的(x、y、z)。x、y和z的可接受值是多少
- x和y如何对应于后缓冲区的宽度和高度(假设它是渲染目标)
- x和y如何对应于输出纹理上的宽度和高度(假设它是渲染目标)
- 当x=0和y=0时,顶点位于何处,位置相关
- 纹理采样器在(u,v)坐标处对纹理进行采样。u和v的可接受值是多少
- u和v如何与采样纹理的宽度和高度相对应
- AGAL的wrap、clamp和repeat标志如何改变采样,如果没有给出,默认行为是什么
- 在u=0和v=0时进行采样时,哪个像素按位置返回
- 不确定
- -1为左/下,1为右/上
- 不确定
- 在输出的中心
- 不确定
- 0为左/下,1为右/上
- 不确定
- 纹理的左下角
- 通常使用自己的坐标系,然后将每个顶点的位置乘以(模型视图投影)矩阵,以获得NDC坐标,该坐标可以作为顶点着色器的输出提供给GPU。第3d阶段有一个解释
- 对。z在[0,1]范围内
- 渲染到渲染目标与渲染到backbuffer相同-您可以从顶点着色器输出NDC,因此纹理的实际大小无关
- 是的,屏幕中央
- 通常情况下,它是[0,1],但您可以使用超出该范围的值,然后输出取决于采样器上设置的纹理包裹模式(如重复或夹紧)
- (0,0)是左/上,(1,1)是右/下
- 默认值是repeat。这些模式决定了当您使用超出[0,1]范围的坐标进行采样时将得到什么。重复[1.5,1.5]将导致[0.5,0.5],而如果模式设置为钳制,则会导致[1.0,1.0]
- 纹理的左上角像素