|01 January 2013||#1|
Join Date: Apr 2003
Bone rotation and floating point problems
recently I worked with some long bone chains in 3dsmax 2012 and noticed a strange possibly floating point accuracy related problem: I created a long bone chain, copied it several times and moved it to new positions. Then I then rotated the chains with all bones selected and using the local pivots as rotation centers to curl the chains up. At first all chains behaved symmetrically, but after a file save/reload one chain reacted differently than the other chains to rotations. The problem does seem to affect combined rotations that use x and y axis rotations.
Here's an image showing the problem after having rotated the chains simultaneously by a certain amount around z and y axis:
As I was suspecting floating point related problems to cause the error I tried the following:
- altered the position and rotation of the start bone of the defective chain -> in rare cases the problem is gone until the next reload
- used maxscript to copy the initial rotation controller values of every bone from one reference chain to all others -> no effect
- deleted the defective chain and replaced it by a new copy of the reference chain -> no effect
- used a rotation list controller to zero out rotations before curling up the chains -> no effect
- used a rotation list controller to zero out rotations before curling up the chains AND using the same rotation controller for all bones -> rotations are symmetrical now, but individual chain and bone rotations are now impossible
Is there a way to avoid or work around problems like this?
Hey ant! Just to notify you. The aardvark strikes again, even again and again if necessary!
|01 January 2013||#2|
Join Date: Sep 2003
Thread automatically closed
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
Note that as CGTalk Members, you agree to the terms and conditions of using this website.
|Thread Closed share thread|