Hi all,
I have been checking out osgAnimation in the past few days, and one
thing that hasn't been clear to me is whether it supports animation
mixing or blending, and how. For example, if a character goes from
standing to walking, then walking to running, can I set it up so that
the transition between these animations is smooth? Supposing I have a
walk cycle and a run cycle animations set up correctly of course.
Next question, where could I find an example of this (assets and
possibly code - though with a good explanation I can work the code out
myself I'm sure)? I've found one walking character here:
http://creators.xna.com/en-US/sample/skinnedmodel
but he has only a walk cycle. Could anyone point me to an example model
that would have multiple animations set up so I can look at how it's
been done and try it out? Preferably in Collada or FBX format.
On the subject of models, does anyone know of any place (web site) where
I could buy skinned and animated models of characters? I presume such a
resource exists, but I wanted to know if people had a specific one to
recommend.
Finally, osganimationhardware nathan.osg is giving me problems. It
crashes after showing the first frame in State::setVertexAttribPointer()
called from RigGeometry::drawImplementation() - stack trace below.
I'd really like to be able to see the hardware skinning. With the
character at the link above, osganimationviewer (software skinning I
presume) runs well but the update time is close to 16ms per frame on my
pretty recent machine. I'm thinking if that time is spent updating the
vertex arrays for the skinning, there might be a chance the hardware
skinning would reduce that? Obviously using a lighter mesh would too,
and I won't be using that exact mesh in our project, but anything that
can help us maintain a good frame rate is welcome.
Thanks in advance,
J-S
--
______________________________________________________
Jean-Sebastien Guay [email protected]
http://www.cm-labs.com/
http://whitestar02.webhop.org/
Stack trace for crash when osganimationhardware nathan.osg
msvcp90d.dll!std::_Debug_message(const wchar_t * message=0x660de5c0,
const wchar_t * file=0x660de608, unsigned int line=764) Line 24 C++
osg66-osgd.dll!std::vector<osg::GLBufferObject::BufferEntry,std::allocator<osg::GLBufferObject::BufferEntry>
>::operator[](unsigned int _Pos=61) Line 764 + 0x17 bytes C++
osg66-osgd.dll!osg::GLBufferObject::getOffset(unsigned int i=61)
Line 209 + 0x1d bytes C++
> osg66-osgd.dll!osg::State::setVertexAttribPointer(unsigned int
unit=11, const osg::Array * array=0x058dbaf0, unsigned char
normalized=0) Line 1153 + 0x11 bytes C++
osg66-osgd.dll!osg::Geometry::drawImplementation(osg::RenderInfo &
renderInfo={...}) Line 1046 C++
osg66-osgAnimationd.dll!osgAnimation::RigGeometry::drawImplementation(osg::RenderInfo
& renderInfo={...}) Line 94 + 0xf bytes C++
osg66-osgd.dll!osg::Drawable::draw(osg::RenderInfo &
renderInfo={...}) Line 907 + 0x13 bytes C++
osg66-osgUtild.dll!osgUtil::RenderLeaf::render(osg::RenderInfo &
renderInfo={...}, osgUtil::RenderLeaf * previous=0x09a567e8) Line 63 +
0x19 bytes C++
osg66-osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo &
renderInfo={...}, osgUtil::RenderLeaf * & previous=0x09a567e8) Line 475
+ 0x19 bytes C++
osg66-osgUtild.dll!osgUtil::RenderStage::drawImplementation(osg::RenderInfo
& renderInfo={...}, osgUtil::RenderLeaf * & previous=0x09a567e8) Line
1353 C++
osg66-osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo &
renderInfo={...}, osgUtil::RenderLeaf * & previous=0x09a567e8) Line 420
+ 0x17 bytes C++
osg66-osgUtild.dll!osgUtil::RenderStage::drawInner(osg::RenderInfo &
renderInfo={...}, osgUtil::RenderLeaf * & previous=0x09a567e8, bool &
doCopyTexture=false) Line 925 C++
osg66-osgUtild.dll!osgUtil::RenderStage::draw(osg::RenderInfo &
renderInfo={...}, osgUtil::RenderLeaf * & previous=0x09a567e8) Line
1192 + 0x1b bytes C++
osg66-osgUtild.dll!osgUtil::SceneView::draw() Line 1426 + 0x37 bytes
C++
osg66-osgViewerd.dll!osgViewer::Renderer::draw() Line 491 + 0xf
bytes C++
osg66-osgViewerd.dll!osgViewer::Renderer::operator()(osg::GraphicsContext *
context=0x00262998) Line 734 + 0xf bytes C++
osg66-osgd.dll!osg::GraphicsContext::runOperations() Line 750 +
0x33 bytes C++
osg66-osgd.dll!osg::RunOperations::operator()(osg::GraphicsContext *
context=0x00262998) Line 138 C++
osg66-osgd.dll!osg::GraphicsOperation::operator()(osg::Object *
object=0x00262998) Line 53 + 0x19 bytes C++
osg66-osgd.dll!osg::OperationThread::run() Line 413 + 0x26 bytes
C++
osg66-osgd.dll!osg::GraphicsThread::run() Line 41 C++
ot12-OpenThreadsd.dll!OpenThreads::ThreadPrivateActions::StartThread(void *
data=0x05899904) Line 113 + 0xf bytes C++
msvcr90d.dll!_callthreadstartex() Line 348 + 0xf bytes C
msvcr90d.dll!_threadstartex(void * ptd=0x058bc160) Line 331 C
kernel32.dll!74c53677()
[Frames below may be incorrect and/or missing, no symbols loaded
for kernel32.dll]
ntdll.dll!770a9d72()
ntdll.dll!770a9d45()
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org