Hi,
on my project I have to know, which time was elapsed since last frame - and
this time should be constant on each node, which implement an callback. Because
of this I have implemented an GameTimer, on which you can call "nextFrame" and
between each call of "nextFrame", the return value of "elapsedTime" is constant.
But I ask me: Why I have implemented this? Because osg calculate currently all
values I need - but don't save them.
So my suggestion is to extent the frameStamp class by a method
setDeltaFrameTime(...) (+getDeltaFrameTime) and set the value in
Viewer::advance. So you write instead of:
Code:
if (getViewerStats() && getViewerStats()->collectStats("frame_rate"))
{
// update previous frame stats
double deltaFrameTime = _frameStamp->getReferenceTime() -
prevousReferenceTime;
getViewerStats()->setAttribute(previousFrameNumber, "Frame duration",
deltaFrameTime);
getViewerStats()->setAttribute(previousFrameNumber, "Frame rate",
1.0/deltaFrameTime);
// update current frames stats
getViewerStats()->setAttribute(_frameStamp->getFrameNumber(),
"Reference time", _frameStamp->getReferenceTime());
}
Code:
_frameStamp->setDeltaFrameTime(_frameStamp->getReferenceTime() -
previousReferenceTime);
if (getViewerStats() && getViewerStats()->collectStats("frame_rate"))
{
// update previous frame stats
double deltaFrameTime = _frameStamp->getDeltaFrameTime();
getViewerStats()->setAttribute(previousFrameNumber, "Frame duration",
deltaFrameTime);
getViewerStats()->setAttribute(previousFrameNumber, "Frame rate",
1.0/deltaFrameTime);
// update current frames stats
getViewerStats()->setAttribute(_frameStamp->getFrameNumber(),
"Reference time", _frameStamp->getReferenceTime());
}
Btw: In this method is a typo: "prevousReferenceTime" instead of
"prev_i_ousReferenceTime"
Thank you!
Cheers,
Heiko
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=36607#36607
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org