v_m Posted March 19, 2008 Share Posted March 19, 2008 Hi. I'm trying to add fur to an animated character and my problem is that when adding an Edit node between Copy and Fur, to style the fur, when I deform the geometry all the edited hairs point in one direction, and don't follow the geometry normals anymore. So I'm loading the FurTextureMap example from Houdini Help and there is an Edit node there, exactly like mine... and when I deform the grid, their edited hairs follow the surface just fine, but if I add some more edits on that same Edit node, my edits have the above mentioned problem... anyone any ideas? Thanks in advance! VM Quote Link to comment Share on other sites More sharing options...
Marc Posted March 19, 2008 Share Posted March 19, 2008 Make sure the 'recompute point normals' checkbox is turned off.... the bane of my existence . If that's not it, then post a hipfile... Quote Link to comment Share on other sites More sharing options...
v_m Posted March 20, 2008 Author Share Posted March 20, 2008 Hi Marc, thanks for replying! Recompute Point Normals was indeed on, but this doesn't fix the problem. I'm uploading a hip file with a simple example of a sphere rotated by bones, you can also deform the sphere, but even a simple rotation messes up the fur. The edit is applied to a few points at the tip of a few hairs, just scrub though the timeline and see what happens with the edited hairs, vs the non-edited ones. Also, as I said before, uploading the Houdini FurTextureMap Example, and adding a deformer to the grid, this weird thing happens that the already existing edits in the Edit node follow the deformed surface just fine, but if I add some more edits on that same node, my edits don't follow the surface correctly. I tried adding facet or point or Attrib Reorient (which btw I'm not sure exactly how to use in this fur context...), but for the sake of this simple example, I cleaned up the network to it's minimum. Thanks again for helping me! VM fur_edit_test.hip Quote Link to comment Share on other sites More sharing options...
Marc Posted March 21, 2008 Share Posted March 21, 2008 Hey VM Yeah I can see why that wouldn't work . The edit SOP will apply the transforms based on the position of the point at any given time, so if you move the point, then the relative transforms stored in the SOP will get thrown off. There's two ways to approach doing something like this (well, there may be more... I can only think of two right now ). Firstly, if the surface that you're copying onto is only being transformed then you'll need to copy the hairs onto the non-transforming base geo, do your edits and then extract the transforms from the moving geo and apply them to the copied hair. But it will need to be done after all the edits. Secondly, if the surface is deforming... as it probably will be, via bones or something. Then you'll need to capture the guide hairs with the bones and deform them accordingly. Again, there might be a better way but those are the two that spring to mind immediately. Cheers M Quote Link to comment Share on other sites More sharing options...
v_m Posted March 25, 2008 Author Share Posted March 25, 2008 wow, thanks Marc, capture hair guides with bones? have to try that out... meanwhile I used a comb, which doesn't offer the same flexibility, but it's easier to... comb short fur at least. the comb is inserted before the skin deformations, but i still have fur guides/normal not following 100% the skin (they do follow, but more like 60%...). I did pay attention to avoiding normals being recalculated, as much as I could... I don't understand what's happening yet, but I will have to dig some more into it. thanks again for helping me! Quote Link to comment Share on other sites More sharing options...
Marc Posted March 25, 2008 Share Posted March 25, 2008 sure, no problem. If you get really stuck again then post what you have and we can take a look. M Quote Link to comment Share on other sites More sharing options...
v_m Posted March 27, 2008 Author Share Posted March 27, 2008 (edited) well, capturing fur along with geometry works fine, but I haven't managed to find a way to paint weights, I'm trying to see if I can paint the deforming geometry separately and then get that information somehow transfered to the hairs... any ideas? also, is there an elegant way to subdivide the geometry for rendering, and have the fur stick to the subdivided version, or should I just add subdivision to the geometry - and look at my scene evaluating very slowly? thanks again!! Edited March 27, 2008 by v_m Quote Link to comment Share on other sites More sharing options...
v_m Posted March 27, 2008 Author Share Posted March 27, 2008 (edited) wohoooo, managed to transfer capture data with attribute transfer I didn't think it would be this easy. but now I have another problem, I need to transfer blendshape deformations on my fur setup as well... Edited March 27, 2008 by v_m Quote Link to comment Share on other sites More sharing options...
edward Posted March 27, 2008 Share Posted March 27, 2008 Here's how to do it using the AttribReorient attribute. Unfortunately, the center hair pointing straight up isn't working too well, but everything else is fine. fur_edit_test.hip Quote Link to comment Share on other sites More sharing options...
v_m Posted March 28, 2008 Author Share Posted March 28, 2008 thanks a lot edward, your example does work on that sphere, the thing is, I'm not sure yet why (but I'm digging), in a different scene where I'm trying to use it, it doesn't. I saved all my animation as a suite of bgeos, hopefully to get rid of whatever obscure problem I might have in the rig, and I'm using your fur network, where I simply replaced your rest and deformed geometry state with my bgeos. yet... the edit I made on the fur keeps its position and doesn't follow the geometry. so, here are my questions, because I don't understand your network too well... why the Default and Value of the attribcreate are 0 0 0 1? what does that 1 mean? why are you creating another attribute before the edit and what's it doing? (or in other words, what is that new 'orient' attribute?) thanks again!! VM Quote Link to comment Share on other sites More sharing options...
edward Posted April 23, 2008 Share Posted April 23, 2008 Hmm ... somehow missed this post. The orient attribute is a quaternion so (0, 0, 0, 1) just means no rotation. The Edit SOP will use the "orient" attribute if you have Use Orient Attribute turned on in its parameters. However, the copy sop will always use the orient attribute if it sees it, which we don't want it to. So we rename it to "orient_init" until just right before the Edit SOP. I'm not sure why you couldn't get it to work though. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.