使用OpenGL着色器进行数学计算(c++)
Using OpenGL shaders for math calculation (C++)
我有一个矩阵(例如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)。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 计算缩放多边形的比例,得到给定的多边形面积
- 在C++中如何在没有pow的情况下进行基础计算
- 计算平均值,不包括上次得分
- 如何计算多映射中重复对的数量