c++ - 如何将特征矩阵发送到 GLSL?

标签 c++ opengl matrix glsl eigen

如何将“特征矩阵”发送到 GLSL? 例如这个:

// Set up the model and projection matrix
Eigen::Matrix<GLfloat,4,4> projection_matrix;

projection_matrix = frustum(-1.0f, 1.0f, -aspect, aspect, 1.0f, 500.0f);
glUniformMatrix4fv(render_projection_matrix_loc, 1, GL_FALSE, &projection_matrix.data()[0]);

我用这种方式(matrix.date()[0]) 寻找uBLAS,但Eigen 不是uBLAS。我该怎么做?

最佳答案

只需调用 .data() 函数:

glUniformMatrix4fv(render_projection_matrix_loc, 1, GL_FALSE, projection_matrix.data());

您可能还对 <unsupported/Eigen/OpenGLSupport> 感兴趣允许您编写的模块:

glUniform(render_projection_matrix_loc, projection_matrix);

同时处理维度、标量类型、存储布局等。例如,它还适用于表达式:

glUniform(render_projection_matrix_loc, 2*projection_matrix.tranpose());

关于c++ - 如何将特征矩阵发送到 GLSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20324447/

相关文章:

c++ - boost multi_index 的随机访问索引上的partial_sort

c++ - 关于 View 矩阵和视锥剔除

python - 使用顶点数组 Python (Matplotlib) 绘制 3D 多边形

python - 如何使用 Pyglet 绘制透明图元

java - 矩阵旋转

c++ - Windows:检查命名管道是否存在

c++ - 了解点相对于直线的相对位置的最佳方法是什么?

c++ - Opengl 顶点着色器为每个顶点设置 bool 值 (glVertexAttribPointer)

Android:如何在中心点旋转位图

c++ - 如何从 X Y Z 旋转中找到四元数的 vector