Re: DAG depth causing problem?
John Rohlf (jrohlf++at++tubes)
Wed, 23 Aug 95 18:14:33 PDT
>
> Hello...
>
> I'm trying to build an articulated human figure in Performer, and I
> haven't been having the best luck. My problems _appear_ to be related
> to having a very deep scene graph, but I'd like to confirm that.
> Specifically, when I load the whole scene up, I get a series of
> messages like:
>
> Performer Notice: Using 60Hz video rate on screen 0
> ERROR #49 too many matrix pushes: ERR_PUSHMATRIX
> ERROR #49 too many matrix pushes: ERR_PUSHMATRIX
> ...etc...
> ERROR #49 too many matrix pushes: ERR_PUSHMATRIX
> ERROR #49 too many matrix pushes: ERR_PUSHMATRIX
> Bus error (core dumped)
>
> The full scene graph at its deepest point is on the order of 100
> nodes deep (around 30 joints, going up the spine and down into the
> fingers, each with an SCS to transform to the joint location, a
> DCS for the joint, and an SCS to transform back into the next segment
> space). Since there are a bunch of articulated parts depending on
> previous articulated parts, a simple flattening isn't appropriate.
The transformation depth is indeed too deep. Our max depth is
64. The GL's is 64 or 32 which is too little for you in either case.
What you can do is collapse the SCSa->DCS->SCSb into a single
DCS by setting the DCS matrix to: SCSb * DCS * SCSa.
This makes things a bit more complicated for you but I highly
recommend this since it will increase your performance
as well.
This archive was generated by hypermail 2.0b2
on Mon Aug 10 1998 - 17:51:49 PDT