gpt4 book ai didi

webgl - 矩阵乘法与 glsl 中的向量

转载 作者:行者123 更新时间:2023-12-03 23:31:55 25 4
gpt4 key购买 nike

引用 http://webglfundamentals.org/webgl/lessons/webgl-3d-orthographic.html
在矢量着色器中有 mat4vec4 的乘法。

attribute vec4 a_position;

uniform mat4 u_matrix;

void main() {

// Multiply the position by the matrix.

gl_Position = u_matrix * a_position;

}

如何将 4*4 矩阵与 1*4 矩阵相乘?
不应该是 gl_Position = a_position * u_matrix;
有人可以解释一下吗?

最佳答案

From the GLSL spec 1.017
5.11 向量和矩阵运算
除了少数异常(exception),操作都是按组件进行的。当运算符对向量或矩阵进行运算时,它以组件方式独立地对向量或矩阵的每个分量进行运算。
...矩阵乘以向量,向量乘以矩阵,以及矩阵乘以矩阵。这些不按组件操作,而是执行正确的线性代数乘法。它们要求操作数的大小匹配。

vec3 v, u;
mat3 m;

u = v * m;
相当于
u.x = dot(v, m[0]); // m[0] is the left column of m
u.y = dot(v, m[1]); // dot(a,b) is the inner (dot) product of a and b
u.z = dot(v, m[2]);
u = m * v;
相当于
u.x = m[0].x * v.x + m[1].x * v.y + m[2].x * v.z;
u.y = m[0].y * v.x + m[1].y * v.y + m[2].y * v.z;
u.z = m[0].z * v.x + m[1].z * v.y + m[2].z * v.z;
或者也
u = v.x * m[0] + v.y * m[1] + v.z * m[2];

关于webgl - 矩阵乘法与 glsl 中的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24593939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com