【发布时间】:2014-05-18 17:01:11
【问题描述】:
我正在学习 @987654321@ 库,但在将主程序中由它制作的矩阵传递给我的垂直着色器时遇到了问题:
#include "linmath.h"
…
GLint mat_uniform_handle = glGetUniformLocation(shade_program_handle, "matrix");
…
mat4x4 M;
mat4x4_identity(M);
glUniformMatrix4fv(mat_uniform_handle, 1, GL_FALSE, M);
但这当然会给我一个类型错误,因为linmath 矩阵的类型为float (*)[4],而glUniformMatrix4fv 的类型为const GLfloat *。
我尝试编写自己的转换器,将矩阵的列连接到单个数组中,然后返回指向第一个元素的指针,但这没有用。
我是否缺少 linmath.h 的某些功能来为我进行这种转换?如果没有,我该如何正确地将linmath.h 矩阵转换为opengl 矩阵?
【问题讨论】:
标签: c opengl matrix types glsl