opengl - 将 Boost uBLAS 矩阵传递给 OpenGL 着色器

标签 opengl boost matrix shader ublas

我正在编写一个 OpenGL 程序,在其中计算自己的矩阵并将它们传递给着色器。我想使用 Boost 的 uBLAS 库作为矩阵,但我不知道如何将 uBLAS 矩阵放入 OpenGL 的着色器统一函数中。

matrix<GLfloat, column_major> projection(4, 4);
// Fill matrix
...

GLuint projectionU = glGetUniformLocation(shaderProgram, "projection");
glUniformMatrix4fv(projectionU, 1, 0, (GLfloat *)... Um ...);

尝试将矩阵转换为 GLfloat 指针会导致编译时出现无效转换错误。

最佳答案

应该可以做到:

glUniformMatrix4fv(projectionU, 1, GL_FALSE, &projection.data()[0]);

关于opengl - 将 Boost uBLAS 矩阵传递给 OpenGL 着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002709/

相关文章:

c++ - boost::asio::strand post 方法性能

opengl - 在OpenGL GLUT程序中动态查找屏幕宽度和高度

c++ - OpenGL 相机旋转不起作用

c++ - opengl 在屏幕上渲染之前旋转对象以设置其正确的面

c++ - boost 是否提供 make_zip_range?

c++ - 将子节点添加到 XML 结构的顶部。 boost 属性树

python - 如何在这里使用循环,python(将 for 循环的所有结果保存在矩阵中)

java - 在 java 矩阵中查找 "matches"的有效方法

c - C 中带有指针的 int 矩阵 - 内存分配困惑

c++ - 在 OpenGL 中显示立方体的问题