Hello Johannes, Johannes Brunen wrote: >> hm, I don't know about the specific requirements for printing, ... >> > On printing it is most important to support huge canvas sizes since a > printer typically does have a much higher resolution than a monitor screen. > Besides of memory considerations, the viewport sizes supported by graphics > hardware are bounded to some maximum value. So with a naive setup, like the > one we are currently using, it is not possible to print say on a A0 plotter > with 600dpi. Of course, printing should also support all the nice features > like textures and program shader rendered scenes. > > So what would be a good printing strategy? > > 1. Tiling of the viewport and drawing the tiles independently. Subsequential > assembly of the final printing image and outputting the image on the > printing device. > 2. Not use of the windows memory context, i.e. writing the pixel information > directly into some image file format.
if I understood correctly I'd say do both :) Tiling will allow you to get high resolution and not using the memory context should ensure that you can render with all features (multi texturing, shaders) that you use for the displayed image. > I will try to solve this problem in the near future. Maybe, I will ask some > questions about pixel buffers and/or FBO which are new for me. > > Unfortunately, I do not only have the OpenSG scene, but additional rendered > OpenGL stuff in the same window. You should be able to render into the FBO with pure OpenGL, I think it is sufficient to call FrameBufferObject::activate()/deactivate() to redirect rendering into the FBO. >> imagine if you have an image that there must be some way to print it. So >> my guess would be that you can simply render with an FBO, download the >> image/texture from the GPU into main memory >> > terra incognita... Examples/Simple/fbotexture.cpp demonstrates the basic setup to render into an FBO and then use the texture. To download a color attachments to main memory, set fbo->setPostProcessOnDeactivate(true); and renderBuffer->setReadBack(true); Cheers, Carsten ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users