[osg-users] Distributed rendering of scene graph
hannes_b at gmx.at
hannes_b at gmx.at
Sat Mar 1 11:06:02 PST 2008
Benjamin Eikel wrote:
> 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.
this is not an answer to your questions about your interesting project, only some thoughts about engineering stuff and simulation.
http://www.realityprime.com/articles/scenegraphs-past-present-and-future#tomorrow
http://www.caelinux.com/CMS/
what i didn´t find is a realtime grid for the balancing stuff.
are there more infos about the project, maybe on a website?
best wishes for your success!
More information about the osg-users
mailing list