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

Using OpenGL shaders for math calculation (C++)

本文关键字:计算 c++ OpenGL 使用      更新时间:2023-10-16

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

我有一个巨大的矩阵,我想用OpenGL着色器实现算法。我想使用如下的着色器:

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

如何实现这个程序?我怎样才能得到矩阵计算后(我不想显示任何窗口图片?

如果您创建一个窗口框架缓冲区,这是可能的。

查看我的示例程序,我滥用片段着色器作为计算着色器,因为计算着色器是相当新的。该程序对矩阵进行高斯滤波计算,并将其返回给CPU。(实际上它做什么并不重要)。

有几点需要注意:

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