while digging through the first samples of using iray I wonder if we can keep the rendered image on the GPU to display it?
Let's say we have an interactive OpenGL renderer working. Then we request a frame to be raytraced with iray and want to display it with OpenGL then.
As far as I can see as of now this is not directly possible. Or maybe iray does not even produce a final pixel output in the GPU memory at all?
From what I've seen so far I have to provide one or more tiles that iray can render into. But these tiles have to provide a system memory buffer to receive the finalized pixels, right?
I know from OptiX that it produces a final image in graphics memory and that I can even render into OpenGL or Direct3D buffers directly (even if those can't be frame buffers). But that saves us from copying the image to the system ram to upload it "into" a 3d api object to display (or post process) it.
Well, I guess in terms of speed it won't matter too much to copy the final image from system ram to the GPU with respect to the time consumed by the raytracing itself.
However, it just seems weird to me that iray employs CUDA for raytracing but places the final pixels in system memory.
Or am I overlooking something?