20,741
edits
Line 784: | Line 784: | ||
onscreen one would give you means to visually QA things as you go | onscreen one would give you means to visually QA things as you go | ||
along. <ref>https://groups.google.com/g/osg-users/c/WTkiQNLE3ek/m/6eB3Z7MoEgAJ</ref> | along. <ref>https://groups.google.com/g/osg-users/c/WTkiQNLE3ek/m/6eB3Z7MoEgAJ</ref> | ||
FBO's aren't a direct replacement for PixelBuffer objects so you can't | |||
just miminc a osg::PixelBufferX11 by using a FBO. | |||
FBO's are GL object objects, while PixelBuffer's are graphics | |||
contexts. To create a FBO you need a graphics context. A PixelBuffer | |||
is a graphics context that has it's own frame buffer that isn't | |||
assigned to the display like a GraphicsWindow graphics context. | |||
In the past OpenGL didn't have the ability to render to anything other | |||
than graphics context's frame buffer so to PixelBuffer were the | |||
standard way to doing multi pass rendering. With the advent of | |||
FrameBufferObject OpenGL now had an ability to render to a frame | |||
buffer other than the one assigned to the graphics context for the | |||
purpose of display on the screen, as the FBO is OpenGL object within a | |||
graphics context it's more efficient than using two graphics context | |||
to do render to texture so is very much the preferred way of doing | |||
multipass techniques like Render to Texture used in shadowing, | |||
lighting etc. | |||
These days the need for PixelBuffer is much diminished as FBO's work | |||
really well for most applications, however, there are times with | |||
PixelBuffer's are still useful - if you want to render completely | |||
offscreen with any on screen window then a PixelBuffer is a perfect | |||
tool as is still the appropriate tool for the job.<ref>https://groups.google.com/g/osg-users/c/fic3TCvWacE/m/4vu5pG5pAQAJ</ref> | |||
=== Multiple Viewers === | === Multiple Viewers === |