Re: [osg-users] order of PreRender camera with respect to the main camera

2014-10-27 Thread Trajce Nikolov NICK
Hi Robert,

this is really good idea .. Haven't thought of  Thanks again

Nick

On Mon, Oct 27, 2014 at 11:52 AM, Robert Osfield 
wrote:

> HI Nick,
>
> If you Camera that is following the main camera requires the same view
> matrix then could you not simply set the Camera::ReferenceFrame to
> REALATVE_TF so that it inherits the view and projection matrix from above?
>
> Robert.
>
> On 25 October 2014 08:35, Trajce Nikolov NICK <
> trajce.nikolov.n...@gmail.com> wrote:
>
>> Hi Robert,
>>
>> below is my frame code, and this seam to fix it. But, just a question,
>> shouldnt the main view matrix be updated by the camera manipulator prior to
>> any other update (I have attached UpdateCallback to the pre render camera
>> and these seam to be called before the main camera update which results in
>> frame delay)?
>>
>> if (_viewer.valid())
>> {
>> static bool firstFrame = true;
>> if (firstFrame)
>> {
>> _viewer->frame();
>>
>> firstFrame = false;
>> }
>> else
>> {
>> _viewer->advance();
>> _viewer->eventTraversal();
>> _viewer->updateTraversal();
>>
>> if (_reflectionCamera.valid())
>> {
>>
>> _reflectionCamera->setViewMatrix(_viewer->getView(0)->getCamera()->getViewMatrix());
>> }
>> _viewer->renderingTraversals();
>> }
>>
>> }
>>
>> This way it works, it gurantee the pre render camera has the updated view
>> matrix
>> With this update callback it is with delay
>>
>> class FollowMainCameraNodeCallback : public osg::NodeCallback
>> {
>> public:
>> FollowMainCameraNodeCallback(osg::Camera* camera)
>> : _camera(camera)
>> {
>>
>> }
>>
>> virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
>> {
>> osg::Camera* thisCamera = dynamic_cast(node);
>> if (!thisCamera) return;
>>
>> thisCamera->setViewMatrix(_camera->getViewMatrix());
>>
>> .
>> _reflectionCamera->setUpdateCallback(new
>> FollowMainCameraNodeCallback(_viewer->getView(0)->getCamera()));
>>
>> Nick
>>
>>
>> On Fri, Oct 24, 2014 at 5:31 PM, Trajce Nikolov NICK <
>> trajce.nikolov.n...@gmail.com> wrote:
>>
>>> thanks Robert
>>>
>>> Nick
>>>
>>> On Fri, Oct 24, 2014 at 5:19 PM, Robert Osfield <
>>> robert.osfi...@gmail.com> wrote:
>>>
 Hi Nick,

 The update of the CameraManipulator happens at the end of
 VIewer::updateTraversal().  The default Viewer::frame() implementation()
 runs the event and then update traversal.

 Your own application can override any of the viewer.frame() or
 updateTraversal/eventTraversal() methods so if you want to take control and
 do things in a different from standard you can do.

 Robert.

 On 24 October 2014 16:13, Trajce Nikolov NICK <
 trajce.nikolov.n...@gmail.com> wrote:

> Hi Community,
>
> I am facing the same problem for long time and always have to "hack
> it". I have prerender camera that has to follow the main camera. My
> pre-render camera is always a frame behind the main camera which is 
> updated
> by a CameraManipulator.
>
> The update of the Pre-Render camera is done with UpdateCallback that
> simply copy the ViewMatrix of the main camera, but it seam that the main
> camera is updated afterwards.
>
> What is the order of these updates? I was expecting the main camera is
> updated from the CameraMainpulator and then everything else (including the
> Pre-Render cameras), but seam it is not the case?
>
> Any hints on this?
>
> Thanks a bunch as always!
>
> Nick
>
> --
> trajce nikolov nick
>
> ___
> osg-users mailing list
> osg-users@lists.openscenegraph.org
>
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>

 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org

 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


>>>
>>>
>>> --
>>> trajce nikolov nick
>>>
>>
>>
>>
>> --
>> trajce nikolov nick
>>
>> ___
>> osg-users mailing list
>> osg-users@lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>
> ___
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>


-- 
trajce nikolov nick
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] order of PreRender camera with respect to the main camera

2014-10-27 Thread Robert Osfield
HI Nick,

If you Camera that is following the main camera requires the same view
matrix then could you not simply set the Camera::ReferenceFrame to
REALATVE_TF so that it inherits the view and projection matrix from above?

Robert.

On 25 October 2014 08:35, Trajce Nikolov NICK  wrote:

> Hi Robert,
>
> below is my frame code, and this seam to fix it. But, just a question,
> shouldnt the main view matrix be updated by the camera manipulator prior to
> any other update (I have attached UpdateCallback to the pre render camera
> and these seam to be called before the main camera update which results in
> frame delay)?
>
> if (_viewer.valid())
> {
> static bool firstFrame = true;
> if (firstFrame)
> {
> _viewer->frame();
>
> firstFrame = false;
> }
> else
> {
> _viewer->advance();
> _viewer->eventTraversal();
> _viewer->updateTraversal();
>
> if (_reflectionCamera.valid())
> {
>
> _reflectionCamera->setViewMatrix(_viewer->getView(0)->getCamera()->getViewMatrix());
> }
> _viewer->renderingTraversals();
> }
>
> }
>
> This way it works, it gurantee the pre render camera has the updated view
> matrix
> With this update callback it is with delay
>
> class FollowMainCameraNodeCallback : public osg::NodeCallback
> {
> public:
> FollowMainCameraNodeCallback(osg::Camera* camera)
> : _camera(camera)
> {
>
> }
>
> virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
> {
> osg::Camera* thisCamera = dynamic_cast(node);
> if (!thisCamera) return;
>
> thisCamera->setViewMatrix(_camera->getViewMatrix());
>
> .
> _reflectionCamera->setUpdateCallback(new
> FollowMainCameraNodeCallback(_viewer->getView(0)->getCamera()));
>
> Nick
>
>
> On Fri, Oct 24, 2014 at 5:31 PM, Trajce Nikolov NICK <
> trajce.nikolov.n...@gmail.com> wrote:
>
>> thanks Robert
>>
>> Nick
>>
>> On Fri, Oct 24, 2014 at 5:19 PM, Robert Osfield > > wrote:
>>
>>> Hi Nick,
>>>
>>> The update of the CameraManipulator happens at the end of
>>> VIewer::updateTraversal().  The default Viewer::frame() implementation()
>>> runs the event and then update traversal.
>>>
>>> Your own application can override any of the viewer.frame() or
>>> updateTraversal/eventTraversal() methods so if you want to take control and
>>> do things in a different from standard you can do.
>>>
>>> Robert.
>>>
>>> On 24 October 2014 16:13, Trajce Nikolov NICK <
>>> trajce.nikolov.n...@gmail.com> wrote:
>>>
 Hi Community,

 I am facing the same problem for long time and always have to "hack
 it". I have prerender camera that has to follow the main camera. My
 pre-render camera is always a frame behind the main camera which is updated
 by a CameraManipulator.

 The update of the Pre-Render camera is done with UpdateCallback that
 simply copy the ViewMatrix of the main camera, but it seam that the main
 camera is updated afterwards.

 What is the order of these updates? I was expecting the main camera is
 updated from the CameraMainpulator and then everything else (including the
 Pre-Render cameras), but seam it is not the case?

 Any hints on this?

 Thanks a bunch as always!

 Nick

 --
 trajce nikolov nick

 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org

 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


>>>
>>> ___
>>> osg-users mailing list
>>> osg-users@lists.openscenegraph.org
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>
>>>
>>
>>
>> --
>> trajce nikolov nick
>>
>
>
>
> --
> trajce nikolov nick
>
> ___
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] order of PreRender camera with respect to the main camera

2014-10-25 Thread Trajce Nikolov NICK
Hi Robert,

below is my frame code, and this seam to fix it. But, just a question,
shouldnt the main view matrix be updated by the camera manipulator prior to
any other update (I have attached UpdateCallback to the pre render camera
and these seam to be called before the main camera update which results in
frame delay)?

if (_viewer.valid())
{
static bool firstFrame = true;
if (firstFrame)
{
_viewer->frame();

firstFrame = false;
}
else
{
_viewer->advance();
_viewer->eventTraversal();
_viewer->updateTraversal();

if (_reflectionCamera.valid())
{
_reflectionCamera->setViewMatrix(_viewer->getView(0)->getCamera()->getViewMatrix());
}
_viewer->renderingTraversals();
}

}

This way it works, it gurantee the pre render camera has the updated view
matrix
With this update callback it is with delay

class FollowMainCameraNodeCallback : public osg::NodeCallback
{
public:
FollowMainCameraNodeCallback(osg::Camera* camera)
: _camera(camera)
{

}

virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
{
osg::Camera* thisCamera = dynamic_cast(node);
if (!thisCamera) return;

thisCamera->setViewMatrix(_camera->getViewMatrix());

.
_reflectionCamera->setUpdateCallback(new
FollowMainCameraNodeCallback(_viewer->getView(0)->getCamera()));

Nick


On Fri, Oct 24, 2014 at 5:31 PM, Trajce Nikolov NICK <
trajce.nikolov.n...@gmail.com> wrote:

> thanks Robert
>
> Nick
>
> On Fri, Oct 24, 2014 at 5:19 PM, Robert Osfield 
> wrote:
>
>> Hi Nick,
>>
>> The update of the CameraManipulator happens at the end of
>> VIewer::updateTraversal().  The default Viewer::frame() implementation()
>> runs the event and then update traversal.
>>
>> Your own application can override any of the viewer.frame() or
>> updateTraversal/eventTraversal() methods so if you want to take control and
>> do things in a different from standard you can do.
>>
>> Robert.
>>
>> On 24 October 2014 16:13, Trajce Nikolov NICK <
>> trajce.nikolov.n...@gmail.com> wrote:
>>
>>> Hi Community,
>>>
>>> I am facing the same problem for long time and always have to "hack it".
>>> I have prerender camera that has to follow the main camera. My pre-render
>>> camera is always a frame behind the main camera which is updated by a
>>> CameraManipulator.
>>>
>>> The update of the Pre-Render camera is done with UpdateCallback that
>>> simply copy the ViewMatrix of the main camera, but it seam that the main
>>> camera is updated afterwards.
>>>
>>> What is the order of these updates? I was expecting the main camera is
>>> updated from the CameraMainpulator and then everything else (including the
>>> Pre-Render cameras), but seam it is not the case?
>>>
>>> Any hints on this?
>>>
>>> Thanks a bunch as always!
>>>
>>> Nick
>>>
>>> --
>>> trajce nikolov nick
>>>
>>> ___
>>> osg-users mailing list
>>> osg-users@lists.openscenegraph.org
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>
>>>
>>
>> ___
>> osg-users mailing list
>> osg-users@lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>
>
> --
> trajce nikolov nick
>



-- 
trajce nikolov nick
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] order of PreRender camera with respect to the main camera

2014-10-24 Thread Trajce Nikolov NICK
thanks Robert

Nick

On Fri, Oct 24, 2014 at 5:19 PM, Robert Osfield 
wrote:

> Hi Nick,
>
> The update of the CameraManipulator happens at the end of
> VIewer::updateTraversal().  The default Viewer::frame() implementation()
> runs the event and then update traversal.
>
> Your own application can override any of the viewer.frame() or
> updateTraversal/eventTraversal() methods so if you want to take control and
> do things in a different from standard you can do.
>
> Robert.
>
> On 24 October 2014 16:13, Trajce Nikolov NICK <
> trajce.nikolov.n...@gmail.com> wrote:
>
>> Hi Community,
>>
>> I am facing the same problem for long time and always have to "hack it".
>> I have prerender camera that has to follow the main camera. My pre-render
>> camera is always a frame behind the main camera which is updated by a
>> CameraManipulator.
>>
>> The update of the Pre-Render camera is done with UpdateCallback that
>> simply copy the ViewMatrix of the main camera, but it seam that the main
>> camera is updated afterwards.
>>
>> What is the order of these updates? I was expecting the main camera is
>> updated from the CameraMainpulator and then everything else (including the
>> Pre-Render cameras), but seam it is not the case?
>>
>> Any hints on this?
>>
>> Thanks a bunch as always!
>>
>> Nick
>>
>> --
>> trajce nikolov nick
>>
>> ___
>> osg-users mailing list
>> osg-users@lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>
> ___
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>


-- 
trajce nikolov nick
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] order of PreRender camera with respect to the main camera

2014-10-24 Thread Robert Osfield
Hi Nick,

The update of the CameraManipulator happens at the end of
VIewer::updateTraversal().  The default Viewer::frame() implementation()
runs the event and then update traversal.

Your own application can override any of the viewer.frame() or
updateTraversal/eventTraversal() methods so if you want to take control and
do things in a different from standard you can do.

Robert.

On 24 October 2014 16:13, Trajce Nikolov NICK  wrote:

> Hi Community,
>
> I am facing the same problem for long time and always have to "hack it". I
> have prerender camera that has to follow the main camera. My pre-render
> camera is always a frame behind the main camera which is updated by a
> CameraManipulator.
>
> The update of the Pre-Render camera is done with UpdateCallback that
> simply copy the ViewMatrix of the main camera, but it seam that the main
> camera is updated afterwards.
>
> What is the order of these updates? I was expecting the main camera is
> updated from the CameraMainpulator and then everything else (including the
> Pre-Render cameras), but seam it is not the case?
>
> Any hints on this?
>
> Thanks a bunch as always!
>
> Nick
>
> --
> trajce nikolov nick
>
> ___
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] order of PreRender camera with respect to the main camera

2014-10-24 Thread Trajce Nikolov NICK
Hi Community,

I am facing the same problem for long time and always have to "hack it". I
have prerender camera that has to follow the main camera. My pre-render
camera is always a frame behind the main camera which is updated by a
CameraManipulator.

The update of the Pre-Render camera is done with UpdateCallback that simply
copy the ViewMatrix of the main camera, but it seam that the main camera is
updated afterwards.

What is the order of these updates? I was expecting the main camera is
updated from the CameraMainpulator and then everything else (including the
Pre-Render cameras), but seam it is not the case?

Any hints on this?

Thanks a bunch as always!

Nick

-- 
trajce nikolov nick
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org