Hello Haeyong,
Haeyong Chung wrote:
> In OpenSG cluster, the client node runs the application, updates the
> scenegraphs based on the scene changes and user's inputs, and
> distributes the change list of the scenegraphs to server nodes. (I
> hope this is correct.) I have some questions:
>
> Q1. Does every server node hold the exactly same scenegraph?
yes, unless you modify it in the code running on the server of course.
> and Is
> the same change list of the scenegraph distributed to every server
> node?
yes, but it usually only goes over the network wire once (via
broadcast/multicast).
You could do filtering on the server side if you are not interested in
certain changes. Doing it on the client would probably mean that you can
not just broadcast all changes, but need dedicated connections to each
server and end up transmitting changes multiple times.
> Q2. In addition to the changelist of scenegraph, does the client send
> some graphics primitives and texture data to the server? If not, how
> OpenSG perform the parallel rendering algorithms like Sort-first and
> sort-last?
each server has all the data, because it received it while syncing the
scenegraph from the client. For sort-first/last it only renders a
certain part of it and sends the image (and depth buffer for sort last)
back to the client.
> Basically these algorithms are based on sorting graphics
> primitives in the rendering pipeline, but I am not sure if the OpenSG
> still sends these data.
>
> Q3. Does Each server node render and display some part of the
> scenegraph ? I mean the server node renders and displays the whole
> scenegraph's child nodes located in a tile display?
what a server does basically depends on what you want to use it for. If
you want to make viewing of a highly complex model interactive you can
use sort first/last to achieve that and the nodes will only render a
part of the scene. Or you can have the servers drive a tiled display,
then e.g. each server could render the image for one display.
> Q4. What is inside the scenegraph change list? I know that it is
> changes of the scenegraph for a new frame, but I would like to know
> what is exactly included. Transformation matrix or projection matrix?
an entry in the changelist contains:
- id of the container that changed
- a BitVector indicating which fields of the container changed
As you can see this alone would not be sufficient to recreate the
scenegraph on the remote side, so when transmitting the changelist over
the network additionally the contents of all modified fields of are sent
so that the remote side also has the data that was modified. This last
part is handled by the RemoteAspect.
Also, the format of the changelist is considered an implementation
detail so it can change if needed.
> Q5. In comparison with graphics primitives, what kind of benefits can
> we get by sending the scenegraph chages over the network? network
> bandwidth?
basically yes, after the first synchronization (where the initial
scenegraph has to be transmitted) the amount of data required for
transmitting changes is usually much smaller. For example if you only
change the point of view, only the modified matrix has to be transmitted.
The dissertations of Marcus Roth and Dirk Reiners contain analysis and
details for these aspects of OpenSG, however they are in German and
therefore (probably?) not much help to you.
Cheers,
Carsten
------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, &
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users