"Vertex attribute locations are always 4-component",这是否意味着我可以毫无问题地使用 mat2 作为顶点属性?? (OpenGL)
"Vertex attribute locations are always 4-component", Does that mean that i can use mat2 as vertex attribute without any problems?? (OpenGL)
我知道顶点属性位置始终是 4 分量的,但我不完全确定它是否也适用于 mat2(和其他 mat2 类型)。
这取决于你所说的“没有任何问题”是什么意思。
是的,mat2
是顶点属性的有效类型。但是,when used as attributes、所有 矩阵类型都被视为矩阵列的数组。并且对数组进行处理,使每个数组元素都是一个单独的属性。
所以 mat2
算作 两个 属性,而不是一个(特别是每个属性的前两个组件)。如果这对您来说不是问题,那么您可以这样做。
如果要将 mat2
填充到一个属性中,则必须手动执行:
layout(location = X) in vec4 matrix_attrib;
...
void main()
{
mat4 mAttrib(matrix_attrib.xy, matrix_attrib.zw);
}
我知道顶点属性位置始终是 4 分量的,但我不完全确定它是否也适用于 mat2(和其他 mat2 类型)。
这取决于你所说的“没有任何问题”是什么意思。
是的,mat2
是顶点属性的有效类型。但是,when used as attributes、所有 矩阵类型都被视为矩阵列的数组。并且对数组进行处理,使每个数组元素都是一个单独的属性。
所以 mat2
算作 两个 属性,而不是一个(特别是每个属性的前两个组件)。如果这对您来说不是问题,那么您可以这样做。
如果要将 mat2
填充到一个属性中,则必须手动执行:
layout(location = X) in vec4 matrix_attrib;
...
void main()
{
mat4 mAttrib(matrix_attrib.xy, matrix_attrib.zw);
}