我正在做GPU上的路徑跟蹤器,並且我在GPU全局內存中獲得了像素數據(這是一組float數組)的跟蹤結果,我在屏幕上顯示數組的操作是將數組複製到CPU內存和調用OpenGL glTexImage2D
:如何將GPU全局內存中的像素數組直接顯示在屏幕上?
glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, pixelArray);
然後顯示紋理。 pixelArray
是要顯示的像素數據數組。由於GPU是管理整個渲染過程的設備,有沒有辦法在屏幕上顯示pixelArray
而不將數據從GPU複製到CPU?
你究竟是什麼意思的「彩色像素陣列」?你在談論一個存儲像素數據的OpenGL緩衝區對象,一塊存儲像素數據的CUDA內存,或者是什麼? – 2013-03-27 06:28:11
這將只是一個float3(RGBcolor)類型的數組,它存儲在GPU全局內存中。 @NicolBolas – Tony 2013-03-27 06:39:11
沒錯,但是你把它標記爲OpenGL和CUDA。他們每個人都有自己的*獨立*的方式在GPU全局內存中存儲數據數組。您使用哪種方式會影響您將其粘貼到紋理中的選項。那它是哪一個? – 2013-03-27 06:44:13