Hey All. I'm trying to get the DQ ICE Op working on a rig, but am hitting walls with global scaling. The DQ seems to support scaling of the deformers just fine. But doesn't seem to be able to handle global scaling of the rig.
the rig scales up & down fine, as it should, but when rotating controls. It's as if the rotations being applied aren't being scaled down.
Anyone else come across this? how did you solve it?
Dual Quaternnion & Global Scaling
-
- Posts: 91
- Joined: 19 Dec 2012, 18:16
Re: Dual Quaternnion & Global Scaling
well I can get things working with either Global Scaling, or deformer scaling. But not both.
the built in XSI DQ ice node gives me deformer scaling, but not global scaling. And I managed to hack an old "Bone based deformation" ice node to give me global scaling, but not deformer scaling. lol.
Does anyone have this working?
the built in XSI DQ ice node gives me deformer scaling, but not global scaling. And I managed to hack an old "Bone based deformation" ice node to give me global scaling, but not deformer scaling. lol.
Does anyone have this working?
Re: Dual Quaternnion & Global Scaling
well, first of all, scaling always seems to be issue with DQ thing. Original paper simply does not considers scaling or shearing, I think this is mentioned explicitly. In other apps, like Maya or Blender, also there are issues ( nicely to say), when it comes to scaling.
If this SI ICE node has same mechanism as it was before four years, there is a sort of trick inside node, to do scaling before any calculation. Output of matrix node is converted to SRT, scale is done, then it is converted back to matrix. SRT is, of course, always global, but, when parent is scaled, my wild guess is, deformer's position comes out of expected state ( related to saved static kine state).
I think (not in front of SI, now), there is a way to workaround this, perhaps by compensating the parent scale in compound ( to do reverse scale), after calculations related to deformers, before doing anything with point position. Then, at the end of calculation, applying the parent scale on all point positions at once. BUT, this might cause issues if there is another deformation operator later in stack, somehow linked to the SRT of deformers (at least, that's how I imagine this, right now).
So long story short, if you can re-envelope your mesh, to desired parent scale, I'd say, do it.
If this SI ICE node has same mechanism as it was before four years, there is a sort of trick inside node, to do scaling before any calculation. Output of matrix node is converted to SRT, scale is done, then it is converted back to matrix. SRT is, of course, always global, but, when parent is scaled, my wild guess is, deformer's position comes out of expected state ( related to saved static kine state).
I think (not in front of SI, now), there is a way to workaround this, perhaps by compensating the parent scale in compound ( to do reverse scale), after calculations related to deformers, before doing anything with point position. Then, at the end of calculation, applying the parent scale on all point positions at once. BUT, this might cause issues if there is another deformation operator later in stack, somehow linked to the SRT of deformers (at least, that's how I imagine this, right now).
So long story short, if you can re-envelope your mesh, to desired parent scale, I'd say, do it.
Who is online
Users browsing this forum: No registered users and 18 guests