【问题标题】:How to draw OpenCL calculated pixels to the screen with OpenGL?如何使用 OpenGL 将 OpenCL 计算的像素绘制到屏幕上?
【发布时间】:2011-10-02 10:07:53
【问题描述】:

我不想用 OpenCL 做一些计算过的像素艺术并将其直接显示在显示器上,而不需要 CPU 往返。我可以使用 OpenCL 与 OpenGL 的互操作性并写入 GPU 的纹理库并使用 OpenGL 显示纹理。我想知道最好的方法是什么,因为我不需要任何 3d 的东西,只需要 2d 像素艺术。

【问题讨论】:

    标签: opengl opencl pixel


    【解决方案1】:

    如果您的 OpenCL 实现支持,最好的方法是使用 OpenCL/OpenGL 互操作。这允许 OpenCL 访问某些 OpenGL 对象(缓冲区对象和纹理/渲染缓冲区)。您将无法直接访问默认的 OpenGL 帧缓冲区(即:显示器),但您将能够访问绑定到 framebuffer object 的图像。从那里,您可以在 OpenGL 中对默认帧缓冲区执行帧缓冲区 blit。没有任何东西会触及 CPU 内存。

    但是,您必须在 CL/GL interop 上查看详细信息才能了解详细信息。基本思想是在 OpenGL 中创建一个渲染缓冲区(绑定到 FBO)。然后你将该渲染缓冲区交给 OpenCL,并在渲染缓冲区中进行计算。完成后,您执行glBlitFramebuffer 将数据从渲染缓冲区复制到默认帧缓冲区,然后交换缓冲区以显示它。

    【讨论】:

    猜你喜欢
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    相关资源
    最近更新 更多