<div dir="ltr"><div><div><div><br></div>One more thing: Rendering to a pbuffer does not automatically give you the option to access your rendered content as a texture.<br><br></div>The technique to render to texture with pbuffers is called pbuffer-rtt and implemented in several OSG samples with the "<b><span class="">--pbuffer-rtt" command line option.<br><br></span></b></div><div><b><span class="">This may differ a bit from the camera setup I've outlined above.<br></span></b></div><div><b><span class=""><br></span></b></div><b><span class="">Christian<br><br></span></b></div><div class="gmail_extra"><br><div class="gmail_quote">2016-08-18 17:07 GMT+02:00 Christian Buchner <span dir="ltr"><<a href="mailto:christian.buchner@gmail.com" target="_blank">christian.buchner@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br>On Windows, create a graphics context with the pbuffer flag set to true<br></div><div>and windowDecoration set to false.<br></div><div><br>        osg::ref_ptr<osg::<wbr>GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits;<br>        traits->x = 0;<br>        traits->y = 0;<br>        traits->width = 640;<br>        traits->height = 480;<br>        traits->red = 8;<br>        traits->green = 8;<br>        traits->blue = 8;<br>        traits->alpha = 8;<br>        traits->windowDecoration = false;<br>        traits->pbuffer = true;<br>        traits->doubleBuffer = false; // or true as needed<br>        traits->sharedContext = 0;<br><br></div><div>        m_pbuffer = osg::GraphicsContext::<wbr>createGraphicsContext(traits.<wbr>get());<br>        if (!m_pbuffer.valid())<br>        {<br>            osg::notify(osg::NOTICE) << "Pixel buffer has not been created successfully. NOTE: update your dependencies folder if you see this error!" << std::endl;<br>            exit(1);<br>        }<br>        else<br>        {<br>            // Create an osgViewer running on top of a pbuffer graphics context<br>            m_viewer = new osgViewer::Viewer();<br><br></div><div>            // in my case I use a slave camera with ortho projection<br>            // to render whatever is needed<br></div><div>            m_camera = new osg::Camera;<br>            m_camera->setGraphicsContext(<wbr>m_pbuffer.get());<br>m_camera-><wbr>setComputeNearFarMode(osg::<wbr>Camera::DO_NOT_COMPUTE_NEAR_<wbr>FAR);<br>            m_camera->setReferenceFrame(<wbr>osg::Transform::ABSOLUTE_RF);<br>            m_camera->setViewMatrix(osg::<wbr>Matrix());<br>            m_camera->setProjectionMatrix(<wbr>osg::Matrix::ortho2D(0, 1.0, 0, 1.0));<br>            m_camera->setViewport(new osg::Viewport(0, 0, 640, 480));<br>            m_camera->setDrawBuffer(GL_<wbr>FRONT);<br>            m_camera->setReadBuffer(GL_<wbr>FRONT);<br>            m_viewer->addSlave(m_camera.<wbr>get(), osg::Matrixd(), osg::Matrixd());<br>            m_viewer->realize();<br><br><br>I do not know if the same would work on Linux, as pbuffers on Linux are an optional extension that might not be supported.<br><br></div><div>I get this to render at arbitrary frame rates, entirely decoupled from the screen's VBLANK interval.<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Christian<br><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2016-08-18 16:47 GMT+02:00 Chris Thomas <span dir="ltr"><<a href="mailto:cthomas@soasta.com" target="_blank">cthomas@soasta.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
OK, I based my initial integration into my app on osgteapot.cpp. As with all the other examples, it os run via<br>
<br>
viewer.run();<br>
<br>
And this creates an output window in OSX (and I am assuming any other OS its run on). And thats the issue I have, I need OSG to run "headless", that is to say, producing no visible window in the OS.<br>
<br>
If OSG is rendering away, to a non visible buffer, I can then expose this to the user via my UI api (see above). Having this visible viewer, is the issue right now. Is there an option to run viewer with no visible display/window, or is there an alternative to viewer() ?<br>
<span><br>
Thank you!<br>
<br>
Cheers,<br>
Chris<br>
<br>
------------------<br>
Read this topic online here:<br>
</span><a href="http://forum.openscenegraph.org/viewtopic.php?p=68420#68420" rel="noreferrer" target="_blank">http://forum.openscenegraph.or<wbr>g/viewtopic.php?p=68420#68420</a><br>
<div><div><br>
<br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph<wbr>.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.or<wbr>g/listinfo.cgi/osg-users-opens<wbr>cenegraph.org</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>