Hello Carlo,
Carlo Orru wrote:
> Hi everybody,
> I'm working on a simple clustered application, where the Server has a
> user-defined RenderAction and the Client has the pieces of information
> about the initial state of the geometry to be sent to the Servers
> (including transformations such as translations).
>
> Here is what my application does:
>
> Client side:
> - Create a Cube
> - Create a Torus
> - Create a Cone
> - Apply a translation to the Cube
> - Apply a translation to the Torus
> - Apply a translation to the Sphere
> - Pass the scene to the Server
>
> Server Side:
> - Define a custom RenderAction
> - For every node in the graph containing a Geometry Core:
> - Get the previous translation matrix from the current node's
> parent's Transform Core
> - Define a new rotation matrix
> - Multiply the two previously obtained matrices
> - Apply the result matrix to the current node's parent's
> Transform Core
>
> I found out that the Server loses the initial translation data for every
> node, since it gets overwritten during the last described step and the
> Client sends it only once in the very beginning.
yes, this is intentional. The cluster only transmits changes to keep the
amount of data that has to be transmitted under control.
> So my questions are:
>
> 1 - Is there a way for the Server to render the scene applying further
> transformations to it without losing the initial state of the scene (the
> transformation matrices) passed by the client ?
I guess you'd have to keep the initial transformation matrices on the
side, i.e. in some data structure you use for that purpose.
Or maybe you could use a second aspect on the server side and only sync
the initial state to it, but that would make looking up that initial
state rather difficult as you'd have to look into a different aspect
than the one you are working on.
The basic idea behind the cluster is that RemoteAspects are, just like
local aspects, independently modifiable copies of the scene. In this
sense you are attempting something that does not align well with that
idea. Why do you need the servers to work on something different than
the client ? What are you trying to achieve ? Maybe we can come up with
another way of doing it ?
> 2 - Does the Server-side data modifying interfere in any way with the
> Client ?
That depends a bit on how you are implementing things. If you use the
RemoteAspect directly you have full control over the direction and point
of time when changes are transmitted.
With the ClusterWindow or MultiDisplayWindow changes are transmitted
from the client to the servers, so there should be no interference.
Hope it helps,
Carsten
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users