Graphics 为什么属性数据是第四个字段1
简单的问题,希望是一个简单的答案 发送到顶点着色器的属性数据表示为4维向量。关于表示位置数据,字段通常被命名为Graphics 为什么属性数据是第四个字段1,graphics,vector,glsl,shader,Graphics,Vector,Glsl,Shader,简单的问题,希望是一个简单的答案 发送到顶点着色器的属性数据表示为4维向量。关于表示位置数据,字段通常被命名为X、Y、Z和W。我的问题涉及W 默认情况下,如果未提供任何信息,则属性包含: [ 0, 0, 0, 1 ] 为什么第四个字段的默认值是1,而不像其他字段那样是0?这是文体上的,数学上的,还是其他的推理 除了好奇,这个问题没有真正的原因。谢谢您的时间。因为这是它可能具有的最普遍的有用价值 如果您发送的是3元素颜色(RGB),那么让第四个组件自动填充1非常有用。类似地,如果要发送一个3矢量
X
、Y
、Z
和W
。我的问题涉及W
默认情况下,如果未提供任何信息,则属性包含:
[ 0, 0, 0, 1 ]
为什么第四个字段的默认值是1
,而不像其他字段那样是0
?这是文体上的,数学上的,还是其他的推理
除了好奇,这个问题没有真正的原因。谢谢您的时间。因为这是它可能具有的最普遍的有用价值 如果您发送的是3元素颜色(RGB),那么让第四个组件自动填充1非常有用。类似地,如果要发送一个3矢量位置,则第四个分量为1对于与4x4矩阵相乘非常有用
当您尝试将法线(或类似的方向,如切线和双切线)用于4x4矩阵时,唯一一次它是一种负担。这是有道理的。谢谢你为我澄清,它真的很简单。为了澄清一点,对于位置向量,它正确地设置了第四个坐标,这样向量是均匀的。对于颜色,它将alpha通道设置为1,即完全不透明。@starruler:alpha并不表示不透明/透明。它意味着你想表达的意思。