PDA

View Full Version : Displacement + Cloth FX



We-Co
02-04-2008, 08:38 PM
Hello, I’m doing a animation that involves flowing pants, and when I animate the pants with Cloth FX I usually set the “Subdivision Order” to “Last”. I also done a displacement map on the pants and when applying the displacement map I have the “Subdivision Order” set to “After Bones”.

You can see my problem here; if I have the Cloth FX setting’s set to the usual, then the Displacement won’t work, and vice-a-versa. Is there a way I can do both?

serge
02-05-2008, 07:40 AM
Heh, well there you go. Don't know if you read my thread here (http://www.newtek.com/forums/showthread.php?t=78993)? It's about why displacement disappears when subdiv order is set to "last". The answer is: it just does, and it's always been like that. A reason might be that there are hardly any situations where you would want this, but it seems like you have one of those few cases.

Mind you, this only goes in case you want your displacement to occur along the normals of the object. Displacing in a direction (X/Y/Z) does work when the order is set to "last". But since it's not working for you I guess that this is not what you want. I wouldn't know a solution (saving the displacement as a mdd and blending it with ClothFX also won't work).

pooby
02-05-2008, 07:49 AM
Use Mddpointer node for the mdd
Set nodal order to after morphing
Set objecy Subd order to after bones
apply your Displacement with NormalDisplacment (LW's own is rubbish but there's a better one available somewhere)
then it should work.. Well It definately WILL work, as Ive been doing this for months

serge
02-05-2008, 08:30 AM
Awesome! Thanks so much Pooby!

I have a question though, since I'm trying to understand what's going on here. I wouldn't have expected the ClothFX MDD to work when Subd order is set to "after bones" (since it was created with the order set to "last"). Can you explain this?

Another question: why don't you like Lightwave's NormalDisplacement?

pooby
02-05-2008, 09:15 AM
http://lynx.aspect-design.de/plugins/normal_displace_info.htm

this is the other one.. LWs is slow and buggy. I can't remember the exact details as I havent used it for years, but believe me, this one is the one to use.



I have a question though, since I'm trying to understand what's going on here. I wouldn't have expected the ClothFX MDD to work when Subd order is set to "after bones" (since it was created with the order set to "last"). Can you explain this?


The scan is made before the SUBd happens, as the SubD is last, so the cloth scan's data is stored in un-subdivided form

So, because you are applying it before the subdivision again (in Nodal with the mdd loader and the order set to before bones) it's fine.

serge
02-05-2008, 11:03 AM
I understand. Thanks again. :thumbsup:

Cageman
02-05-2008, 12:26 PM
http://lynx.aspect-design.de/plugins/normal_displace_info.htm

this is the other one.. LWs is slow and buggy. I can't remember the exact details as I havent used it for years, but believe me, this one is the one to use.

Why not use the normal displacement in Nodal instead? Or maybe it wouldn't work because MDD Pointer is used there and no control over the displacement order inside Nodal interface?

Greenlaw
02-05-2008, 01:04 PM
Pooby wrote
(LW's own is rubbish but there's a better one available somewhere)

The following info won't help for this situation, but as far as the native LW displacement plug-in goes, it does have one very useful feature I have used from time to time that isn't possible in the others: Morph Map displacement.

What this has allowed me to do is add normal displacement animation on top of other displacement through a morph target. For example, I made a tapeworm-like monster for a feature once that has undulating edges. By making a morph of the creature displaced on Y, and a sliding mask, I was able to create a ripple/undulation secondary animation effect even as the creature was animated through morph-through-bones, keyframed bones, and cloth dynamics. Using any other displacement method caused the ripples to go in only a specific axis. I also used this method in our Need for Speed spot several years ago with the popping 'ribs' of transforming 'monster' car, and also to flatten the bottom of tires as they spun, just like real tires but without using dynamics.

While the Lynx normal displacement plug-in does do a better job for straight normal displacement, it doesn't have this morph displacement feature found in the LightWave version.

Now, bear in mind this was before the node editor came out, but as far as I know, and other artists I've shown this trick to, it was the only way to do this trick back then. I haven't tried to do this sort of thing with the new nodal system yet, but if anybody has an idea for how to do this, I'd love to hear it.

DRG

pooby
02-05-2008, 01:30 PM
Why not use the normal displacement in Nodal instead? Or maybe it wouldn't work because MDD Pointer is used there and no control over the displacement order inside Nodal interface?


That's exactly the reason. If you could subdivide in there, whenever you wanted and by however much you wanted, it would mean you'd only need Nodal. As it is, you have to use the different displacements to fudge it, but it works ok.

Cageman
02-05-2008, 01:48 PM
So, a subdivision order Node would solve the problem? A node with inputs listed in Subdivision Order dropdown? Would be cool if NT could develop such a thing! :)

pooby
02-05-2008, 01:53 PM
It would be fantastic, especially if you could plug a weightmap or UV map into it to control the amount of subdivision in certain areas of the mesh..

serge
02-05-2008, 02:02 PM
... I haven't tried to do this sort of thing with the new nodal system yet, but if anybody has an idea for how to do this, I'd love to hear it.
Wouldn't this work with the technique that Pooby described earlier? When you have the mdd file of the basic motion you can layer your normal displacement on top of that. (And, the result you can scan to mdd again, and layer another normal displacement on top, and so on.)

serge
02-13-2008, 05:26 AM
There's a workaround for using Nodal normal displacement on top of a ClothFX mdd. It's a bit more work to set up, but if you need nodes for normal displacement this will work:

Load the object and set the Subd Order to "after morphing". Load the ClothFX mdd file with the MDD Pointer node. Set Node Displacement Order to "after morphing". Now you have the same ClothFX motion but on an object with the Subd order not set to "last". Make a new ClothFX mdd scan. Load this mdd through ClothFX (set playback to "local"). You can now add Nodal normal displacement. Set the Node displacement order to "Before World Displacement".

I also found that you can raise the Subpatch level. You'll get an error message (ClothFX node match error), but you can ignore that. You need to set the Subd order to "after displacement".

Greenlaw
02-13-2008, 09:04 PM
Wouldn't this work with the technique that Pooby described earlier? When you have the mdd file of the basic motion you can layer your normal displacement on top of that. (And, the result you can scan to mdd again, and layer another normal displacement on top, and so on.)

Possibly, but that does sound like a lot more work. The nice thing about this technique was that it was simple: I just applied the plug-in, added the texture/morph settings, and it worked. Then I just animated the rig as desired, no scanning/rescanning necessary.

DRG

Greenlaw
02-13-2008, 09:29 PM
I should have added that the native plug-in is pretty fast when using it for Morph Map displacement. However, when used as a regular normal displacement plug-in, well, that's what the Lynx plug-in is for I guess. :)

Morph Map displacement is probably the only thing I would use the native LW Normal Displacement plug-in for, and it does do it quite well. In the two jobs I mentioned, it worked exceptionally well.

I just wanted to point out that it has at least one very useful feature that I haven't seen in other Normal Displacement plug-ins, including the Lynx plug-in, and to me at least, it's not 'rubbish'.

Both are very useful, just in different ways.

DRG