seek the method of off-screen rendering

I’m seeking the method of off-screen rendering,I know the pbuffer is the method,but I found the readback speed of it is very slow ,it is not satisfied me.So is there any other methods to do the same matter?

You can render your picture in screen buffer and then use glCopyTexImage2D (something like that…) to put the color buffer pixel in a texture.(you can also take z_buffer information).

But i don’t think that this technique is faster than pBuffer.

In fact, I’ve done some perf tests myself for offscreen rendering used as a texture. You can test the 3 methods here : http://www.chez.com/dedebuffer/

It appears that using pbuffers and glCopyTexSubImage is a very bad idea on all GeForces…
Using glCopyTexSubImage from backbuffer is quite fast, but on my case it’s slower than RenderToTexture, because of the quite high resolution of the offscreen renderer. You can have a look at the GL forum here : http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/010964.html

I had found the readback speed of ATi card is better than NVIDIA,the speed of NVIDIA is too slow.Is it the common fault of NV series card?

I want to know when the render window is hidden or overlayed partially,the screen buffer can work normally?

Originally posted by pango:
I had found the readback speed of ATi card is better than NVIDIA,the speed of NVIDIA is too slow.

Do you really need the CPU to readback GPU frame/back/pbuffer ??? Apart from doing some sort of GL video recorder, I think you can avoid glReadPixels.
What do you want exactly ?

Originally posted by pango:
I want to know when the render window is hidden or overlayed partially,the screen buffer can work normally?

You will not have problems with pbuffers and RenderToTexture. For backbuffer, I don’t know.

when you are using the backbuffer and your window is partialy occluded, the occluded part of the backbuffer will not be rendered on nvidia cards.
but when you plan to create a fullscreen application, it does not matter anyway…

Originally posted by ZbuffeR:
[b] [quote]Originally posted by pango:
I had found the readback speed of ATi card is better than NVIDIA,the speed of NVIDIA is too slow.

Do you really need the CPU to readback GPU frame/back/pbuffer ??? Apart from doing some sort of GL video recorder, I think you can avoid glReadPixels.
What do you want exactly ?[/b][/QUOTE]

my program create some 3D objects,and then display it in a window and a external monitor,so I think the best way is create the 3D objects in PBuffer,and read it out to display in external monitor.