In an 3D application I would like to have two screens representing the same drawing but with differents points of view.
I was thinking of launching two threads starting each one OF
ofRunApp( new TestApp());
But there are lots of global variables, and I don’t see how it can work…
The other way I see is to start two processes but it will be a nightmare to share the data, no ?
Any idea ?
It’s a bit hard to call on whether sharing data between multiple processes will work without quite knowing the what’s in the scene but…
2+ separate apps that launch with different perspective parameters. Passing dynamic data about the scene over the network.
Obviously, this works as long as:
- Each render client doesn’t utilise any random based functions.
- The dynamic data isn’t huge. (i.e. Particle systems with thousands of particles)
You can write very simple routines and protocols to do it in a similar manner
Or see mostpixelserver - http://code.google.com/p/mostpixelsever/
As a slight tangent, and I don’t recommend this.
Equalizer does the same thing (dynamic data over network) and I went some way into integrating equalizer with OF at one point ( http://www.equalizergraphics.com/ ) However it is a big beast - that effectively does the same as mostpixelserver.
The advantage of it is, that once you’ve got it running, it’s highly configurable for multi heads/graphics cards/machines. It’s incredibly versatile (especially with projections), but hard to get rolling with.
When you mean 2 points of view of the same drawing, do you mean 2 different viewports, like when you have a 3D program, and there’s a front viewport, a left viewport and a perspective viewport? You could just use glViewport() and gluPerspective() or gluOrtho2D()
Drawing across 2 screens on mac with oF is easy, you just need to turn on Mac OS X Extended Desktop in your oF app’s preferences menu.
I want to have for example on a screen what a person is drawing, and on another screen or video projector, the same drawing from an another point of view (I use gluLookAt)
So I need the two or more screens to be independent, but with the same data.
And to be cross platform (win, linux, mac)
lukemalcolm, thank you for the links, I’ll look at it
I might be over simplificating the issue, but couldn’t you create one window spanning two displays and draw each openGL view on each half of the window?