Fri, Jan 3, 12:05 PM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2025 Jan 03 8:14 am)



Subject: How are deltas calculated?


Conniekat8 ( ) posted Tue, 24 March 2009 at 11:36 PM · edited Thu, 02 January 2025 at 7:18 PM

I don't mean how do I make an INJ REM file, but mathematically?

Is is is a simple matter of a linear difference in XYZ coordinates in the direction of normals, or some other way?

I'm having an issue where if I tweak the rigging in a figure (move couple of bones), my morphs no longer function right. Looks like they shift off center by a little bit...  But not in a body part where the bone moved.

I can't wrap my head around it.  Any tips?

Hi, my namez: "NO, Bad Kitteh, NO!"  Whaz yurs?
BadKittehCo Store  BadKittehCo Freebies and product support


pjz99 ( ) posted Wed, 25 March 2009 at 12:02 AM

Morphs are applied after bone deformations, else drastic morphs might make parts of a figure's geometry lie outside of falloff zones.  I'm pretty sure all points moved by a morph travel in a straight line from their origin to the coordinates specified by the delta for that point, having nothing to do with normals.  A bone, by itself, can produce a deformation in its own bodypart, and its children (else moving the forearm e.g. would not move the hand as well) and in its parent. 

Body parts more than 1 up from that bone's parent should not be affected by moving a given bone, unless JCMs are being invoked by moving that bone.  If moving a bone produces a deformation in a different bodypart that is not a neighbor, then it seems very likely to me that a joint-controlled morph is causing that.

My Freebies


Conniekat8 ( ) posted Wed, 25 March 2009 at 12:45 AM

Yea, that sounds like the stuff I thought I knew too... the problem that I'm encountering now seems to defy it.

For example, Rig A and Rig B have identical meshes. It's a dress/skirt with body handle bones (but no meshes for actual handles).

Rig A has good rigging, Rig B has morphs/deltas, and a rig with a problem that caused me to revert to Rig A (something with DS to Poser compatibility and back)

Theoretically, I was sure I could create INJ files from Rig B, and inject them into Rig A  (as I said, identical meshes, no grouping differences). When I do this, morphs are offset a bit.

...and I can't use original OBJ's to add morphs to Rig A - it has something to do with DS rigging tools and Morph Loar Pro. I haven't gotten to the bottom of that part yet.... so I was trying to circumvent troubleshooting Morph Loader Pro, and just use INJ's to take my morphs from Rig B to Rig A. 

...I hope what I wrote is making sense, I've been struggling with this for last couple of days, so I'm worn out.

If anyone is using Morph Loader Pro, there's a thread where I'm trying to find out more about that issue here: http://forum.daz3d.com/viewtopic.php?p=1745434#1745434

Hi, my namez: "NO, Bad Kitteh, NO!"  Whaz yurs?
BadKittehCo Store  BadKittehCo Freebies and product support


Conniekat8 ( ) posted Wed, 25 March 2009 at 12:51 AM

oh, and I neglected to mention, it's a skirt bodyhandle bone that was adjusted - child of hip. No JCM's in that area, they're all in the upper body, Abdomen, chest, neck, shoulder and forearms. Chest and abdomen JCM's appear to have shifted more then shoulder and forearm JCM's (which are almost spot on)

I dunno if that info is of any use.

Hi, my namez: "NO, Bad Kitteh, NO!"  Whaz yurs?
BadKittehCo Store  BadKittehCo Freebies and product support


kawecki ( ) posted Wed, 25 March 2009 at 1:02 AM

Deltas are the difference between morphed and original X Y Z vertices.
Deltas are stores as a table
index dx dy dz
index dx dy dz
........................
Where indez is the vertice number of the body or prop part and dx = xmorphed - x original.
Index is a long integer and dx, dy,dz are floating point numbers.
If dx and dy and dz becomes too small, near zero or zero dx, dy,dz are not stored in the table
You can clean and optimize a morph target removing useless deltas that are too small.

Stupidity also evolves!


Conniekat8 ( ) posted Wed, 25 March 2009 at 1:49 AM

Quote - Deltas are the difference between morphed and original X Y Z vertices.
Deltas are stores as a table
index dx dy dz
index dx dy dz
........................
Where indez is the vertice number of the body or prop part and dx = xmorphed - x original.
Index is a long integer and dx, dy,dz are floating point numbers.
If dx and dy and dz becomes too small, near zero or zero dx, dy,dz are not stored in the table
You can clean and optimize a morph target removing useless deltas that are too small.

Theoretically then it sounds like I could copy deltas from one cr2, and paste them into another (with same geometry), and not get any shifts. 
The deltas that are giving me grief haven't even been rounded off yet. Well, darn!

Hi, my namez: "NO, Bad Kitteh, NO!"  Whaz yurs?
BadKittehCo Store  BadKittehCo Freebies and product support


EnglishBob ( ) posted Wed, 25 March 2009 at 5:52 AM

How did you make the morphs? I seem to recall reading somewhere that Poser 7's morph tool can place the morph channel in an unusual place so that it applies before rigging movements. If that's what you used I'll try to search it out. 


EnglishBob ( ) posted Wed, 25 March 2009 at 6:28 AM

Attached Link: V4 too-high underarm cut -- Morph Fix -- Beta Testers Needed [DAZ forum]

Ok, I found it anyway, for the benefit of anyone who may be wondering.

Quote - Poser7's morph tool creates the morph as the last entry in the list for a particular bodypart, before the joint rotations instead of after as morphs usually are... making it useless.

Why? Because morphs that are created on the mesh before the joints break at the seams, and result in shapes wildly different from whats needed as a standard morph made after the joints.

 


pjz99 ( ) posted Wed, 25 March 2009 at 8:54 AM

I don't really get how this problem is manifesting for you.  In my experience, adding a posting handle to a skirt's Hip - if you group the skirt as everything below the waist is all Hip - really should only produce any deformation at all in the Hip (not even the abdomen).

My Freebies


markschum ( ) posted Wed, 25 March 2009 at 12:05 PM

You can get nasty shifts if you moved the geometry in modeller . The vertices will then load to the original object but show an unwanted movement. 


Conniekat8 ( ) posted Wed, 25 March 2009 at 1:51 PM

Quote - How did you make the morphs? I seem to recall reading somewhere that Poser 7's morph tool can place the morph channel in an unusual place so that it applies before rigging movements. If that's what you used I'll try to search it out. 

Morphs are made in Zbrush, imported in D|S via MorphLoaderPro. Deltas exported via Dimension 3D's Poser File Editor.

New cr2 has all except one body handle bone is identical to the old cr2, but yet when I inject the morphs I just exported from the old cr2, they act goofy.
When I inject the very same deltas back in the original cr2, they don't act goofy (no shift)

I thought for a moment maybe deltas are in some way dependent on the skeleton... like center of gravity for the bones or some silly thing. I didn't think they were, but thought I'd double check.

I'm finding more and more since last night that I may have encountered a bug, actually couple of them.  I resolved one of them last night see here: http://forum.daz3d.com/viewtopic.php?t=109315 .  

Now, I'm thinking maybe injecting deltas back into the cr2 may have some dependency on order of how the bones are written inside the cr2, rather then based on names or hierarchy alone.   This is injecting them back in, in DS. I didn't get around to trying it in Poser yet.

Hi, my namez: "NO, Bad Kitteh, NO!"  Whaz yurs?
BadKittehCo Store  BadKittehCo Freebies and product support


Conniekat8 ( ) posted Wed, 25 March 2009 at 1:53 PM

Quote - Ok, I found it anyway, for the benefit of anyone who may be wondering.

Quote - Poser7's morph tool creates the morph as the last entry in the list for a particular bodypart, before the joint rotations instead of after as morphs usually are... making it useless.

Why? Because morphs that are created on the mesh before the joints break at the seams, and result in shapes wildly different from whats needed as a standard morph made after the joints.

 

Interesting thread - Thanks for digging that out :)

Hi, my namez: "NO, Bad Kitteh, NO!"  Whaz yurs?
BadKittehCo Store  BadKittehCo Freebies and product support


Conniekat8 ( ) posted Wed, 25 March 2009 at 2:01 PM

Oh, darn, I already deleted the inj files I used last night...   I'll have to try some more experimenting later, see if I can get to the bottom of the shifted morphs.

By the way, I was getting similar looking misalignments when I dragged and dropped deltas from one cr2 into another (via poser file editor). or if I did INJ/REM.
I went via INJ/REM way because there were too many delta sections in different body parts to drag and drop.

Quote - PJZ wrote: I don't really get how this problem is manifesting for you.  In my experience, adding a posting handle to a skirt's Hip - if you group the skirt as everything below the waist is all Hip - really should only produce any deformation at all in the Hip (not even the abdomen).

You're right, by all logic there should be no shift. Geometry didn't change, and the only change in the cr2 is one skirt bone edit... Puzzling.  The morph deltas actuallt didn't shift in the skirt (hip) part, but in other, totally unrelated body parts. Very puzzling.

Hi, my namez: "NO, Bad Kitteh, NO!"  Whaz yurs?
BadKittehCo Store  BadKittehCo Freebies and product support


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.