Hello Martin, good to see you are still active!
On 1. Oct 2010, at 16:38, Martin Lambers wrote: > The player does not have support for Equalizer yet because I first > wanted to get the decoding and video/audio synchronization right. My > plan is to add Equalizer support once this works fine (which I think it > does now) and I find the time. I hope you will find the time. :) > The idea is to let every node decode the video file, and synchronize > video frame output using FrameData. I think it would be impossible to > send high resolution video data across the network fast enough in many > situations, especially for stereoscopic material where you might have > 2x1080p at 30 frames per second. It would definitely be challenging, but one could multicast the encoded video stream with buffering to the render nodes. This is probably overkill if you only want to play movie files on a (pre-)distributed file system. > Audio would be played only on the > application node because the video output usually must be synchronized > to audio time. Be careful to synchronize the audio with the video wall swap barrier, otherwise your audio might be one frame ahead of the video. Although I'm not sure if this is noticable. > I was planning on defining a video plane on which to display the video. > Each Equalizer Channel would render a subset of that plane. For > stereoscopic video, it would render the left or right view depending on > Channel::getEye(). Makes sense. For normal video, the plane would be in the same place as the canvas wall, with some cropping/black areas to accommodate for the aspect ratio. > I'm not sure yet what the best way would be to achieve that. My first > idea would be to simply configure the geometry of several walls as a > subset of e.g. [-1,1] x [-1,1]. But maybe it would be better to use the > canvas/view stuff described here > <http://www.equalizergraphics.com/documents/design/view.html>? Depends what you want to achieve. If you want 3D billboards in a VR environment, I would use a sensible real-world size for them, i.e, one which is close or equal to the canvas. If you want to video to be in 2D, I would use the normalized viewport (wrt canvas) in Channel::frameViewFinish to render the video. The canvas/layout API provides you with 2D spatial information for your 3D environment. > Frankly, I have a hard time understanding how all these concepts > (observer, canvas, segment, view, window, channel, compound, layout) > relate to each other and which subset to use for a given task. Can you > give usage examples? >From the Programming Guide Section 3.6-3.9: A canvas represents one logical projection surface, e.g., a PowerWall, a curved screen or an immersive installa- tion. One configuration might drive multiple can- vases, for example an immer- sive installation and an oper- ator station. A segment represents one output channel of the canvas, e.g., a projector or an LCD. A segment has an output channel, which references the chan- nel to which the display device is connected. A layout is the grouping of logical views. It is used by one or more canvases. For all given lay- out/canvas combinations, Equalizer creates des- tination channels when the configuration file is loaded. These destination channels can be refer- enced by compounds to configure scalable render- ing. A view is a logical view of the application data, in the sense used by the Model- View-Controller pattern. It can be a scene, viewing mode, viewing position, or any other representation of the application’s data. A view might have an observer, in which case its frustum is tracked by this observer. An observer represents an actor looking at multiple views. It has a head matrix, defining its position and orientation within the world, and an eye separation. Please ask away when things are still unclear. > For example, in our VR environment, it is sufficient for most tasks to > define the geometry of the display walls and then have two channels per > wall: one for the left eye, one for the right eye. You would have one canvas with one segment per wall and eye. Cheers, Stefan. _______________________________________________ eq-dev mailing list [email protected] http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev http://www.equalizergraphics.com

