Jump to content

[SOLVED] Fur density controlled over several UV tiles


iamyog

Recommended Posts

Hi,

Working on some fur, I'm trying to control my fur density through painted maps. Easy thing with the dedicated density map of the Fur object.
It all worked fine so far but on the latest geometry I got, UVs are now separated on 2 tiles to get more definition on special areas of the character.
My problem is that the fur object only accepts one map, that will correspond to only a tile and I guess will be repeated for the other thus applying wrong density values on geometry unwrapped on the 2nd tile.
Through a COPnetwork I took my two 4k maps and layed them down next to each other into a 8k x 4k one. My idea was to use such expression op:../CHAR_wrapper/COPnetwork/OUT in the Fur's density map field.
I had weird results but after rendering this new map out (as a .rat) and used it as density map, my fur seems to react but uncorrectly.

The problem I see is that this 8k x 4k map is now used as a square one stretched into the original 0,1 UV coords.

In my character wrapper, I've got groups that allow me to get points that need UV tile 1 or 2.
What I liked to do to is to be able to specify which tile for each group, or be able to "unstretch" my generated map so it covers both UV tiles.

 

Any idea/workflow would be really helpful as I might not be considering this problem from the right angle

Thanks in advance
(and since it's my first post here : thanks for all the informations I found on odforce so far :))

Edited by iamyog
Link to comment
Share on other sites

OK, as usual when you are looking for something and finally decide to ask for help, some solution appears magically a few minutes later.

 

I figured out a way to do it by adding a vopsop in my Character node.

I'm basically only comparing the U value and according to the result, get the color information from the corresponding density texture map.

This value is then transfered to a furdensity attribute I created beforehand and that will be read by the fur object later on.

See the vopsop network screenshot attached.

 

It works and also allows me to repaint manually where some fix are needed.

The only thing is that I wonder how heavy this method is and if there is anything lighter to compute, if you have any experience regarding fur, let me know :)

 

Thanks

post-10914-0-38657600-1388750293_thumb.p

Link to comment
Share on other sites

  • 9 months later...

Hi iamyog,

 

I'm a new Houdini user, trying to research this solution, which is rather out of my depth, for a good friend who is tied up finishing another job right now.

 

Would you be kind enough to post a simple example of your solution in action?  So I can try to figure it out?

 

I can follow the logic in your description and image but I'd really like to pick it apart.

Thanks heaps

H

Link to comment
Share on other sites

bring the UV and after that put down a translate /or transform  and move that UV to the corresponding uv space,   like 0,1 to 1,1 or 2,1  and then add all those.  that will give you a big map of all the UVs, that you can then plug into something else like a texture.

Link to comment
Share on other sites

  • 2 weeks later...

Dear iamyog,

 

Sorry it's taken a while to get back to you but life has been rather busy since arriving back from my week away.

 

Thanks a lot for your example file, in which we can see that you have solved the issue.  However it appears that the fact that you CREATED your UVs within Houdini gave you access to the attributes needed.

 

Our UVs have been imported from ZBrush and therefore we aren't able to pass the offset information up the chain within Houdini.

 

This has become our main focus of the production now, so we're creating a workaround that seems quite promising.

 

I really appreciate your kind help though.

 

Best wishes

 

Hazy

Link to comment
Share on other sites

^Excuse me for poking my nose but couldn't you simply promote the UVs on your mesh to a point attribute ? Or is there another reason why you can't use the ones made in Zbrush ?

 

Hi,

 

and thanks for your question which shines a light in an interesting direction for my further research.  My problem lies in the fact that I've only been trialling Houdini for a couple of weeks, so I'm still mired in the fog of unfamiliarity, so my task, outlined above, which probably has several simple solutions, has been beyond my grasp.

 

We've solved the issue by importing a second character with a whole body UV set and using those to generate our fur, while our main render mesh has two UV tiles.

 

Thanks again

 

H

Link to comment
Share on other sites

the reason that you don't see the uvs attributes or cant pass them along, since they come from another application,  I am pretty sure they come as primitives attributes,   there for you might need to use attribute promote, and move the uv attribute from primitive to points.

 

then the shader will be able to pick it up

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...