Hello Robert, On Saturday 01 March 2008 at 18:50:16, Robert Osfield wrote: > Hi Benjamin, > > Could you possibly repost the below text, but broken down into shorter > paragraphs as long paragraphs are really hard to follow. Try to keep > one major point per paragraph. of course.
o What do we want to display? We want to visualize scenes which are generated by a simulation of a factory. o Why do we want to use a cluster? The simulation is running on a cluster. We want to do the rendering on the cluster because - we can get messages from the simulation faster (10 GBit/s InfiniBand, lower latency than Ethernet, DMA transfers from one node to another) - we are able to cope with big scenes by just using more rendering nodes (at least that is our goal). - we have the computation power there. o Why do we have big scenes? Models of some machines are very complex because they are generated by CAD programs and we do not want to do an extensive preprocessing because the models may change over time. o What is the architecture of the system? - We have a central node for each user which is connected to our system. On that node we want to use OpenSceneGraph (reasons below). So each of these nodes has an own view into the scene. - We have a set of rendering nodes. These rendering nodes are partitioned by a balancing algorithm and each central node gets some of them for rendering. We want to balance between different users and between the rendering nodes one central node is able to render with. Example: User A sees only a small part of the factory => needs only few rendering nodes. User B sees some very complex machines => needs lots of rendering nodes. Example: Central node A can render with 20 rendering nodes. It has 20 objects with 1 million polygons and so it gives each rendering node one object. o How to we get the scene data from the simulation? We get a identification number for each machine mesh from the simulation. We then want to load the meshes for that machine inside the scene graph. o Why do we want to use OpenSceneGraph? - We can use the already existing reader/writer plugins of OSG and do not have to write our own. - OSG can do culling, picking, moving machines with grabbers for us. - We want to use the animation capabilities of OSG for some special models (e. g. forklifts, packages on a conveyor). o How will OpenSceneGraph be connected to the rendering nodes? When a frame should be rendererd we want to know the nodes (e. g. Geodes) which are visible and their transformation matrix (which should be known to OSG after it's update and culling traversals). With this knowledge (list of visible nodes and transformations) the central nodes instruct their rendering nodes by sending them the mesh ids, the transformations of the meshes and the camera transformation. o How can we optimize the rendering on the rendering nodes? We want to exploit the fact that there may be the same machine (= same mesh) multiple times inside the factory. So we could load the mesh of such a machine as VBO and let one rendering node render the machines with different transformations multiple times. o What is my question at all? I am searching for a interface where I can grab these visible nodes and put them into a list. I need them so I can analyse them to run the balancing algorithm and send the data to the rendering nodes. I think that it might be possible to use the DrawImplementation of the Drawable nodes. Regards, Benjamin _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

