将蒙娜丽莎呈现给PBO

Lu4*_*Lu4 5 opengl cuda gpgpu opencl

阅读完这篇文章之后,我想尝试做同样的事情,但为了加速我想在GPU上执行的渲染部分,不用说为什么三角形或任何其他几何对象应该在GPU上渲染而不是中央处理器.

这是一个很好的过程形象:

蒙娜丽莎

任务:

  1. 渲染'顶点集'
  2. 估计渲染的'顶点集'和蒙娜丽莎图像之间的逐像素差异(蒙娜丽莎位于GPU上的纹理或PBO没有太大区别)

问题:

使用OpenCL或Cuda与OpenGL FBO(帧缓冲对象)扩展时.

在这种情况下根据我们的任务

  1. 渲染'顶点集'(由OpenGL处理)
  2. 估计渲染的"顶点集"和蒙娜丽莎图像(由OpenCL或Cuda处理)之间的逐像素差异

因此,在这种情况下,我不得不从FBO到PBO(像素缓冲区对象)进行复制,以获得OpenCL/Cuda的渲染"顶点集".我知道设备到设备内存的复制速度有多快,但根据我需要完成数千个这样的副本的事实,不这样做是有意义的......

这个问题有三个选择:

  1. 使用OpenGL渲染到PBO(不知何故,我不知道如何,也可能无法这样做)
  2. 使用OpenGL渲染图像并估计图像之间的差异(不知何故,我不知道如何使用着色器,唯一的问题是我从未在生活中编写着色器,这可能需要数月的工作时间我...)
  3. 使用OpenCL/Cuda渲染图像并估计图像之间的差异(我知道如何做到这一点,但是在OpenCL或Cuda中实现渲染器的稳定性和或多或少优化版本需要几个月)

这个问题

任何人都可以帮我编写一个着色器用于上述过程,或者可能指出将蒙娜丽莎渲染到PBO而没有来自FBO的副本的方式......