- What are their difference?
Framebuffer (as is) = GrabFramebuffer:
If multi-sampling is off (i.e. no anti-aliasing) then it reads the image directly from the graphic renderer. If multi-sampling is on then it renders to a framebuffer and gets the image from there. The key part of this method is Qt's QOpenGLFramebufferObject class
Framebuffer (custom) = FramebufferObject:
It always uses the same technique as the latter method from above. Additionally it allows to set custom sizes and background
Offscreen (old) = CoinOffscreenRenderer:
It only uses pure Coin3d functions. The method however doesn't support multi-sampling, relies heavily on graphic driver and on many modern Linux systems it doesn't work at all any more.
It's a real off-screen rendering method that doesn't require an OpenGL window.
Offscreen (new) = default method
It's a replacement/alternative for Coin3d's off-screen rendering. Additionally it supports multi-sampling
The most important classes are Qt's QOffscreenSurface and QOpenGLFramebufferObject
- the currently set default is "Offscreen (new)". But since this is the one most far away from what I actually see in FC, maybe another method should be the default.
Have you enabled anti-aliasing in your settings? If not then set it to MSAA 8x and repeat all your tests again.