矩阵 4 到 GLSL 的统一值
Matrix4 to GLSL uniform value
所以我正在使用OpenGL API(使用SDL2和GLEW)在C++中创建一个简单的游戏。
我创建了简单的着色器程序,并开始创建均匀变量加载器(如 Vector3,浮点),但我真的不知道如何使用 glUniformMatrix4fv
将 4x4 矩阵加载到统一变量。
如何将我的 Matrix4 中的这些值放入此函数?
glUniformMatrix4fv 需要一个指向具有 16 个浮点数的缓冲区的指针。
float[16] m1;
struct mat4{
float m00, m01, m02, m03;
float m10, m11, m12, m13;
float m20, m21, m22, m23;
float m30, m31, m32, m33;
};
mat4 m2
以下都是有效的:
glUniformMatrix4fv(MatUniformLoc, 1, GL_FALSE, &m2);
glUniformMatrix4fv(MatUniformLoc, 1, GL_FALSE, m1);
从文档中:
计数
对于矩阵 (glUniformMatrix*) 命令,指定 要修改的矩阵。如果目标 一致变量不是矩阵数组,如果是,则为 1 或更多 矩阵数组。
[...]
价值
对于矢量和矩阵命令,指定指向计数值数组的指针,该数组将用于更新指定的 均匀变量。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 使用std::vector的OpenCL矩阵乘法
- 使用C++中的模板和运算符重载执行矩阵运算
- Eigen如何在容器循环中干净地附加矩阵
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- 当在带有Eigen的C++中使用GDB时,我如何才能看到更多的大矩阵
- 具有N列和N行的矩阵,列必须具有N-1、N-2等值
- 从固定函数迁移到 GLSL OpenGL:我应该如何修改我的视图(lookAt)矩阵和透视矩阵?
- 在 glsl 着色器中将矩阵作为纹理访问
- GLSL:如何使用投影矩阵计算射线方向
- 使用 GLSL 直接从着色器中的位置计算转换矩阵
- GLSL 中的矩阵变换不起作用
- 如何在 GLSL 中使用 4x4 矩阵作为顶点属性
- 如何将特征矩阵发送到GLSL
- 矩阵 4 到 GLSL 的统一值
- 着色器GLSL OpenGL上的投影矩阵问题
- 我如何缓冲模型矩阵数据到纹理使用OpenGL ES2, GLSL, c++
- glsl (GPU)矩阵/矢量计算产生的结果与CPU不同
- GLSL 2D旋转矩阵不像预期的那样工作
- GLSL 330矩阵计算错误{无编译错误}