Texture Map on Karma Hair Shader

   2307   10   2
User Avatar
Member
50 posts
Joined: March 2012
Offline
I was trying to use a texture map with Karma Hair Shader but unfortunately Failed to receive the resulting texture to the fur.
I highly appreciate it if someone guides me the correct method to apply texture maps in the Karma Hair shader.
User Avatar
Member
130 posts
Joined: Jan. 2015
Offline
I think you have to use the ray import node.

https://www.sidefx.com/docs/houdini/nodes/vop/kma_rayimport.html [www.sidefx.com]

And use the ray:hituv to get uv, not sure if it works with the xpu mode tho.
Edited by Heileif - July 3, 2023 16:08:39
User Avatar
Staff
475 posts
Joined: May 2019
Offline
gregjenings
I was trying to use a texture map with Karma Hair Shader but unfortunately Failed to receive the resulting texture to the fur. I highly appreciate it if someone guides me the correct method to apply texture maps in the Karma Hair shader.

The 2nd component of the default texture coordinates maps from one end of the curve to the other.
The 1st component stays at 0.

See attached scene + image.

So you can't get 2D texture mapping using the texcoord node. The reason is that with a 1-dimensional curve there is no sense of a rotation, so its hard to define a stable UV mapping. This is the same for both CPU and XPU.

We have addressed this somewhat in the next (major) version of houdini, where its possible to access a coordinate frame that is defined by input primvars. So keep an eye out for that.

Cheers
Edited by brians - July 4, 2023 20:31:07

Attachments:
curve_test_v25.hip (178.7 KB)
curve_v_coordinate.PNG (833.3 KB)

User Avatar
Member
50 posts
Joined: March 2012
Offline
Thank you for your explanation. Though it might sound like quite a novice question to ask, I would appreciate it if someone could explain to me how to achieve the masking effect demonstrated in this video https://youtu.be/NP_XuROiipU?t=1579, [youtu.be] specifically starting at around 26 minutes and 27 seconds.

I am trying to implement this technique with various Fur Shaders and would greatly benefit from any insights or guidance you can provide. Your expertise would be invaluable in helping me understand and replicate this masking effect. Thank you in advance for your assistance!
User Avatar
Member
82 posts
Joined: June 2020
Offline
Assign each hair strand a random value from 0-1. Check if that random value is greater than (or less than) the value of some float mask of your choice. Use the returned true/false value (0 or 1) to mix between colors.
User Avatar
Member
511 posts
Joined:
Offline
Hi there,
What does one have to do to get Karma to render texture maps on hair? As in when UV's transferred from skin, aka the most common/basic use.
I have tried "uv" attribute on prims or points, different names in case the treacherous renaming might be happening behind my back, etc... nothing works to apply a texture on my furry creature other than baking Cd attribute.
Is this how it's supposed to be?

Thanks
S
User Avatar
Member
82 posts
Joined: June 2020
Offline
What does one have to do to get Karma to render texture maps on hair?
If I remember correctly, Houdini by default transfers the skin uvs to the fur primitives. I vaguely remember having to promote the uvs from prims to verts for it to work nice in Solaris/Karma. I could be remembering wrong but may as well give it a shot.
Edited by freshbaked - Sept. 11, 2023 17:57:10
User Avatar
Member
433 posts
Joined: April 2018
Offline
Karma should see the UVs automatically. Note that when using Hair Generate in Houdini it does NOT transfer the skin UVs by default. You have set Attributes & Appearance > Source Attribute Transfer > Vertex Attributes to "uv."

You can check if UVs are present in Solaris by opening the Scene Graph Details pane and looking for "primvars:st." That's the USD name for "uv."

Edited by BrianHanke - Sept. 11, 2023 20:32:33

Attachments:
groom.png (1.2 MB)

Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
511 posts
Joined:
Offline
Thanks Brian,
Is that a primitive or point uv attribute?
We use custom hair tools, so I am manually doing the Solaris compatibility layer. That is I fetch the uv from the skin with a raysop or xyzdist to the root points, then promote them to primitive, and tried to convert back expand to the points. It all works fine if I colour the points in SOPs which is what I resorted to doing.
Also, I'm not using a kma_Hair shader, it's good ol Vops.
I will set up a sample scene when I get half a chance.

Cheers!
S
User Avatar
Member
433 posts
Joined: April 2018
Offline
It's a primitive attribute. Have you tried using Guide Skin Attribute Lookup to transfer the UVs? Not sure if it would work in your case, but thought I'd mention it.
Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
50 posts
Joined: March 2012
Offline
Hi freshbaked,

I wanted to kindly request if you could assist me by providing a file. I'm not an expert in Houdini, and having access to a sample file would be tremendously helpful for my learning process. Your generosity in sharing your expertise would be greatly appreciated.

Thank you in advance for considering my request.
  • Quick Links