sorry, type mistake: [You've] (Dirk) replied one of our mails saying just
that, that the planes are defined at tracker space, at that point everything
seemed to be fine and make sense.
Thanks
On Wed, Mar 10, 2010 at 12:24 PM, Pablo Carneiro Elias <pablo.c...@gmail.com
> wrote:
> Hi All,
>
> thanks for this reply Dirk,
>
> After analysing ProjectionCameraDecorator::getViewing() we got a little
> confused about how to use the user node at that decorator.
>
> The problem is: we thought that user was only used to calculate frustrums,
> and since all planes are set in tracker space (and so does the user node
> transformation),
> it should work.
>
> On Mon, Mar 1, 2010 at 12:50 AM, Dirk Reiners <dirk.rein...@gmail.com>wrote:
>
>>
>> Hi Pablo,
>>
>> On 02/26/2010 12:03 PM, Pablo Carneiro Elias wrote:
>> > Hi Dirk, thanks.. I've found the problem.... user beacon must be a child
>> of
>> > camera beacon.. !
>>
>> ah! Well, it doesn't have to be, but if you are moving the camera the user
>> beacon has to move, too. So yes, in general putting it as a child of the
>> camera
>> beacon is the easiest solution.
>>
>
> well, we found that getViewing() uses the user node to place the camera.
> So, if the user node is not a child of camera beacon, the camera transform
> will not be taken into account in order to calculate
> view matrix, isn't? So, assuming that we need to place it as a child of
> camera's beacon, it lead me to one more question: since the camera has a
> real position in world space, that tracker would have to be in the same
> metric system of my world so it can work, doesn't it?
>
> ::getViewing()
> {
>
> if(pUser == NULL)
> {
> ... // use decoratee camera to calculate view matrix...
> }
> else
>
> {
> pUser->getToWorld(result);
> result.invert();
>
> }
>
> }
>
> looking at ::getProjection(), we saw that the user is sent to camera space:
> ...
>
> Matrix cam,user;
> camera->getBeacon()->getToWorld(cam);
> if(pUser == NULL)
> {
> FWARNING(("ProjectionCameraDecorator::getProjection: no user!\n"));
>
>
> user = cam;
> }
> else
> {
> pUser->getToWorld(user);
>
> }
>
> cam.invert();
>
> cam.mult(user);
> Pnt3f viewer(cam[3]);
>
> ...
> ... // calculate frustum using planes defined in tracker space.
>
>
> so it also suggests that, indeed, user should be placed as a child of
> camera's beacon. But then how can screen and user transform be in an
> arbitrary coordinate system?
>
>
> Glad you found it!
>>
>> Dirk
>>
>>
>> ------------------------------------------------------------------------------
>> Download Intel® Parallel Studio Eval
>> Try the new software tools for yourself. Speed compiling, find bugs
>> proactively, and fine-tune applications for parallel performance.
>> See why Intel Parallel Studio got high marks during beta.
>> http://p.sf.net/sfu/intel-sw-dev
>> _______________________________________________
>> Opensg-users mailing list
>> Opensg-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/opensg-users
>>
>
>
> thanks!
>
> Pablo
>
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users