【问题标题】:Blitting with OpenCL使用 OpenCL 进行 Blitting
【发布时间】:2014-05-08 13:24:52
【问题描述】:

我正在制作一个 OpenCL 光线投射器,并且我希望以尽可能少的开销(每个滴答计数)将像素传送到屏幕上,比每次滴答调用 glClear() 低,我想创建一个帧缓冲区来绘制to 并将其传递给 OpenCL,然后使用 glBlitFramebuffer() 进行 blitting 但我认为自动绘制到屏幕要好得多,所以有没有办法使用 openCL 绘制像素?哈克的东西还可以

我现在能做的最好的事情就是看看 glClear 是如何做到的......

【问题讨论】:

    标签: c opengl interop opencl gpu


    【解决方案1】:

    通常的方法是使用 OpenCL 绘制到共享的 OpenGL/OpenCL 纹理对象(使用 clCreateFromGLTexture() 函数创建),然后使用 OpenGL 通过渲染具有该纹理的全屏四边形将其绘制到屏幕。

    编辑:我写了一个小例子,它使用 OpenCL 计算 mandelbrot 分形,然后使用 OpenGL 将其直接从 GPU 渲染到屏幕。代码在这里:mandelbrot.cpp

    【讨论】:

    • 感谢您的示例,但我很好奇,使用渲染缓冲区会比您的方法更快吗? +需要清屏吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    相关资源
    最近更新 更多