繁体   English   中英

Matrix4至GLSL统一值

[英]Matrix4 to GLSL uniform value

因此,我正在使用OpenGL API(使用SDL2和GLEW)在C ++中创建一个简单的游戏。

我创建了简单的着色器程序,并开始创建统一变量加载器(例如Vector3,float),但我真的不知道如何使用glUniformMatrix4fv将4x4 Matrix加载到统一变量。

如何将这些值从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;如果目标矩阵变量是矩阵的数组,则应该为1或更大。

[...]

对于矢量和矩阵命令,指定一个指向计数值数组的指针,该值将用于更新指定的统一变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM