2014-03-28 29 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

相關問題