2014-03-28 31 views
5

我正在制作一个OpenCL raycaster,我正在寻找以更少的开销(每个tick数)将bli像素投射到屏幕上,低于调用glClear()每个tick,我想创建一个framebuffer绘制并传递给OpenCL,然后blitting与glBlitFramebuffer(),但我认为自动绘制到屏幕更好,那么,有没有办法用openCL绘制像素?哈克的东西都OK使用OpenCL进行Blitting

我现在能做的最好的事情是看看glClear是怎么做的?

回答

7

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

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

+1

感谢您的示例,但我很好奇,会使用渲染缓冲比您的方法更快? +我是否需要清除屏幕? – Whiteclaws

相关问题