我正在制作一个OpenCL raycaster,并且我希望以更少的开销(每个滴答计数)将像素点亮到屏幕上,低于每次打勾调用glClear(),我想创建一个帧缓冲区绘制并传递给OpenCL,然后用glBlitFramebuffer()进行blitting,但我认为自动绘制到屏幕更好,所以有没有办法用openCL绘制像素? Hacky的东西还可以
我现在能做的最好的事情是看看glClear是如何做到的......
答案 0 :(得分:7)
通常的方法是使用OpenCL绘制到共享的OpenGL / OpenCL纹理对象(使用clCreateFromGLTexture()
函数创建),然后通过渲染带有该纹理的全屏四边形将其绘制到具有OpenGL的屏幕上
编辑:我写了一个小例子,它使用OpenCL来计算mandelbrot分形,然后使用OpenGL直接从GPU渲染到屏幕。代码在这里:mandelbrot.cpp。