PBuffers

BlitzMax Forums/OpenGL Module/PBuffers

ImaginaryHuman(Posted 2005) [#1]
What extensions are needed to use pbuffers, how common are these available and can you use them to render to a pbuffer and use the pbuffer to render to another texture/backbuffer?


tonyg(Posted 2005) [#2]
Does this help...
http://oss.sgi.com/projects/ogl-sample/registry/ARB/pixel_buffer_object.txt


ImaginaryHuman(Posted 2005) [#3]
It seems to refer to using GlReadPixels and such ... way slow ? are these not as fast as rendering to the backbuffer?


Tiggertooth(Posted 2005) [#4]
Speaking of PBuffers...I was at the OpenGL all-day event at this year's Game Developer Conference (GDC), and OpenGL 2.0 introduces a replacement for PBuffers, namely FrameBuffers. In addition to being easier to use, they're also much faster than PBuffers.

I wonder if BRL will update the OpenGL module to 2.0 once the OpenGL2.0 drivers are released (and stabilized). I guess there is no reason we can't do it ourselves, but it would be cool if the official OpenGL module ended up supporting 2.0. There are a lot of nice new features.

Ken


teamonkey(Posted 2005) [#5]
I think glReadPixels is only slow when the source/target is system RAM. Otherwise it's pretty much just a memcpy in video RAM.

I don't know how common PBuffers are. My 6600GT has every kind of buffer supported by OpenGL, but I was a bit surprised that my R9000M has only the bare minimum (it doesn't even have the LEFT/RIGHT buffers that you can sometimes use for feedback effects, and my old TNT2 had them).


ImaginaryHuman(Posted 2005) [#6]
Is the memcopy in videoram performed by the cpu or gpu?


Dreamora(Posted 2005) [#7]
the OpenGL module won't change as it is only 1.2

For anything above the pub.glew is used so an update of glew would be needed ...


teamonkey(Posted 2005) [#8]
Is the memcopy in videoram performed by the cpu or gpu?

It depends on the drivers, but I reckon GPU in almost all cases.

I second an update to glew, because the most recent version includes that nice render-to-texture extension :)