<div>Hi, <span style="line-height: 1.5;">Robert:</span></div><div>   Thanks for your remind and support. Yes, one display card can support multiple monitors. </div><div>   I want to split the master viewer screen which <span style="line-height: 1.5;">in the same plane </span><span style="line-height: 1.5;">into M rows and N columns equally</span><span style="line-height: 1.5;">. For example, M=5 and N=10. addSlave is the good way as you recommend. But I don't know how to setup the value of </span><span style="line-height: 1.5;">projectionOffsetMatrix. Is there a </span>formula to calculate <span style="line-height: 1.5;">projectionOffsetMatrix for one sub-node(row=i, column=j)? </span></div><div><span style="line-height: 1.5;"><br></span></div><div>With best regards</div><div>Daniel</div><div><div><br></div><div style="font-size: 12px;font-family: Arial Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div><div style="font-size: 12px;background:#efefef;padding:8px;"><div><b>From: </b> "Robert Osfield";<robert.osfield@gmail.com>;</div><div><b>Date: </b> Thu, Jan 14, 2016 03:43 AM</div><div><b>To: </b> "OpenSceneGraph Users"<osg-users@lists.openscenegraph.org>; <wbr></div><div></div><div><b>Subject: </b> Re: [osg-users] How to setup multi channel</div></div><div><br></div>Hi Daniel,<br><br>These days most decent graphics cards can push multiple displays at a<br>solid 60Hz so rather than 20 computers for 5x4 display wall you could<br>have 5 computers pushing 4 displays each or a similar arrangement.<br>You could look to mix and matching osgcluster style approach with a<br>viewer with multiple slave Camera's to achieve this.<br><br>When using slave Camera's you provide a matrix to multiple the view<br>and projection matrices via the View::addSlave(camera,<br>projectionOffsetMatrix, viewOffsetMatrix), you'll find this defined in<br>include/osg/View.<br><br>Using addSlave when implementing a cluster rather than just setting<br>the master Camera is generally better as it means that the master can<br>dispatch the same updates to the master Camera to all slaves and the<br>individual slaves that apply this to their Viewer.getCamera() while<br>the individual Slave camera offsets at set up once at start up.<br><br>The settings to use with addSlave will depend on the master Camera's<br>projection matrix set up - is it set to have a field of view of a<br>single display or for the whole display region?  Also on whether the<br>display are all in the same plane or not - in the same plane you<br>simply need to modify the projection matrix offset, but if you have a<br>cylindrical display then you just modify the view matrix.<br><br>Robert.<br><br><br><br><br>On 13 January 2016 at 17:01, Dan Liu <139250065@qq.com> wrote:<br>>  Dear Robert:<br>>     Thank you very much!<br>>     I have studied osgwindow. If I have 20 computer, each computer has 1<br>> monitor. And my screen wall is 4 rows, 5 columns. Should I setup<br>> osg::GraphicsContext::Traits if I run viewer in full screen mode? For<br>> example, a screen's row_no=2 and column_no=2(index begin from 0), it should<br>> display x range from 50% to 75% and y range from 40% to 60%, and scale<br>> aspect ratio to 5/4=1.2.<br>>     I don't know how to change matrix in below line:<br>> viewer.addSlave(camera.get(), osg::Matrixd::translate(1.0,0.0,0.0),<br>> osg::Matrixd());<br>><br>>     And scale function does not work:<br>> viewer.getCamera()->getProjectionMatrix() *= osg::Matrix::scale(1.2, 1.0,<br>> 1.0) has no effect, x scale is not changed. But<br>> viewer.getCamera()->getProjectionMatrix() *= osg::Matrix::scale(1.2, 1.2,<br>> 1.2) can works, the earth becomes bigger in both x, y, z dimension.<br>><br>> With best regards<br>> Daniel<br>> ------------------ Original ------------------<br>> From:  "Robert Osfield";<robert.osfield@gmail.com>;<br>> Date:  Wed, Jan 13, 2016 05:29 PM<br>> To:  "OpenSceneGraph Users"<osg-users@lists.openscenegraph.org>;<br>> Subject:  Re: [osg-users] How to setup multi channel<br>><br>> Hi Daniel,<br>><br>> The OSG is designed for handling multi-channel system and provides the<br>> support via the osgVIewer support for master + slave Camera.<br>><br>> The osgwindow example is probably the most straight forward<br>> implementation to look at - this creates two windows and assign these<br>> to two slave osg::Camera, which are both assigned to a single<br>> osgViewer::Viewer (subclass from osgViewer::View which subclasses from<br>> osg::View) which provides the master Camera.<br>><br>> The overall view is controlled by the master Camera attached to the<br>> View(er) which provides the main view and projection matrices.  The<br>> slave Camera's that are assigned to the View(er) have offset matrices<br>> that multiplied by the master's view and projection matrices to give<br>> the final view and projection matrices that the Slave camera will use.<br>><br>> Other examples of the slave camera in action can be seen in the<br>> osgViewer::ViewConfig implementations found in the<br>> src/osgViewer/config directory.  The neatest way to implement what you<br>> need would be to implement your own custom osgViewer::ViewConfig that<br>> sets up the appropriate Slave Camera you need, then when you want to<br>> set up your viewer for this display system you simply pass in this<br>> ViewConfig and have it configure the View(er) as required.<br>><br>> Robert.<br>><br>><br>><br>> On 13 January 2016 at 03:50, Dan Liu <139250065@qq.com> wrote:<br>>> Dear all:<br>>>     Hello! I'm using OSG to develop an application which run as screen<br>>> wall(M rows, N columns). I studied the osgcluster example. But still don't<br>>> know how to split master screen into MXN sub screens, and scale the screen<br>>> according to the screen wall's real resolution.<br>>><br>>> With best regards<br>>> Daniel<br>>><br>>> _______________________________________________<br>>> osg-users mailing list<br>>> osg-users@lists.openscenegraph.org<br>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org<br>>><br>> _______________________________________________<br>> osg-users mailing list<br>> osg-users@lists.openscenegraph.org<br>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org<br>><br>> _______________________________________________<br>> osg-users mailing list<br>> osg-users@lists.openscenegraph.org<br>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org<br>><br>_______________________________________________<br>osg-users mailing list<br>osg-users@lists.openscenegraph.org<br>http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</div>