为什么属性数据第四场1

时间:2012-04-01 06:52:08

标签: graphics vector glsl shader

简单的问题,希望是一个简单的答案。

发送到顶点着色器的属性数据表示为四维向量。关于表示位置数据,字段通常命名为XYZW。我的问题涉及W

默认情况下,如果未提供任何信息,则属性包含:

[ 0, 0, 0, 1 ]

为什么在第四个字段中存在差异,其中默认为1而不是0与其他字段不同?是风格,数学还是其他推理?

除了好奇心之外,这个问题没有真正的原因。谢谢你的时间。

1 个答案:

答案 0 :(得分:2)

因为它可能具有最普遍有用的价值。

如果你要发送一个3元素的颜色(RGB),第四个组件自动用1填充是非常有帮助的。类似地,如果您发送3向量位置,则第4个分量为1对于乘以4x4矩阵非常有用。

当您尝试将它们与4x4矩阵一起使用时,唯一的责任就是法线(或类似方向,如切线和bitangents)。