使用OpenGL着色器进行数学计算(C ++)

时间:2016-08-19 18:15:14

标签: c++ opengl matrix opengl-es shader

我有一个矩阵(例如100x100 dimantion): 我需要对每个元素进行计算(例如matrix[i,j]*tt/8+5

我有庞大的矩阵,我想使用OpenGL着色器实现算法。 我想使用着色器:

uniform float val;
uniform float tt;

void main()
{
    gl_Position.x = val*tt/8+5
}

我如何实施该计划?如何在计算后得到矩阵(我不想显示任何窗口\图片?

1 个答案:

答案 0 :(得分:2)

如果您创建窗口帧缓冲区,则可以。

查看我的sample program我滥用片段着色器作为计算着色器,因为计算着色器非常新。该程序对矩阵进行一些高斯滤波计算并将其返回给CPU。 (它实际上无关紧要。)

以下几点需要注意:

  • 在CPU / GPU之间传输文件很慢
  • 其他人已经指出你的矩阵 NOT 很大。我认为它非常小(甚至适合RAM)。