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

Reply via email to