Search - User list
Full Version: H20 Feather generation findings and questions.
Root » Houdini Lounge » H20 Feather generation findings and questions.
Werner Ziemerink
Good day.

I have been playing around with the Feather tools, and here are some findings and issues from an artists position.

1. It would be great if we could use the surface N and tan of the guides to calculate barborient on the fly. Not the hardest to build myself, but it should be an option. I have submitted a RFE

2. I still can't get feather interpolation to work. The example files Jonas posted works for me, but as soon as I tinker with it, interpolation stops. There should be a much easier way to generate the feather template arrays. Most artists would battle with vex to get this to work. When you do, it breaks as soon as you tweak a bit. See attached file. This is a tweaked version of an example file.

3. It is easy to lose settings throughout the process. Width, Cd and curveu seems to die along the way because you have to make sure to carry it over multiple nodes.

4. Feather color is a bit of a mission at this stage. The main areas if interest for me would be Cd over the length of the feather (bottom to top), Cd over the bardr and barbl. This is easy enough.
After groom, Cd transfer from geo to feathers to blend in values. If you are not careful, you will end up with all the color on the shafts and nothing on the bards. This issue happens in some cases if you apply Cd to Condensed feathers. They need to be uncondesed, and this is super slow on full groom birds with 10k feathers. I am sure better workflows will evolve over time.

5. I think there should be an easier way to use the wing feather resampled curves as kineFX bone chains. This would help to fold wings after a basic guide deform. It can be done currently, but with lots of effort. Capturing is difficult, as these feathers are packed close together. If one bone per feather was used, not problem. Packed capturing can work, but what if you need two or three bones over each feather to rotate them to fold around the body. Currently this process is complex.

6. I have 64Gb ram with a RTX 2070 Super graphics card.
These feathers kills my pc as soon as I jump into Solaris. The procedural works, but sucks up memory. Be careful if you work on full grooms.

On a related note. I am having a very hard time to get Texture Mask Paint to work over UDIMs. After giving my geo the correct tile attributes, it worked, but it loses maps from time to time. This forces me to repaint masks from time to time. Like I said before, this does not work for feather interpolation on my side, but I know it's error/lack of knowledge on my side.

So far I like the system a lot. There is room for improvement, and I know Kai is working hard to streamline this. Well done mate. You did an amazing job and I can't wait to see how this grows.
Also, huge thanks to Jonas for the example files. They help a lot during the learning experience.

I will add more to the conversation as I learn more, and I hope to see some in depth tutorial videos from SideFX soon.



What do you guys think?
Werner Ziemerink
I gave feather interpolation another go. This time it worked. This setup feels a bit easier without having to create feather arrays in wrangles.

I found that having UDIM's, works with the TextureMaskPaint but not with the ScatterInTextureMask node. I will submit this as a bug.

Here is my test file if anyone else wants to have a look.

It's basic but it works.

Let me know if there are better ways to do any of this please.
KaiStavginski
Werner Ziemerink
2. I still can't get feather interpolation to work. The example files Jonas posted works for me, but as soon as I tinker with it, interpolation stops. There should be a much easier way to generate the feather template arrays. Most artists would battle with vex to get this to work. When you do, it breaks as soon as you tweak a bit. See attached file. This is a tweaked version of an example file.

Do you mean that it fails because its too difficult to create correct input right now? Or have you seen the Feather Template Interpolate node break, even when you thought the arrays should be correct?

In the first file you posted, the skin input of "build_template_arrays" is connected to the curve output of "guideinit1". Connect that to the second output of "guideinit1" and the scene works for me.
KaiStavginski
I'll fix some issues with attribute transfers in uncondense and match uncondensed, feather template interpolate soon (Your 3.). Please let me know any specific issues you're having.

1. and 4. are slightly bigger items that I'll also hope to address in daily builds for H20. Texture Paint and Scatter in Texture Udim issues also fall into this category.

5. is a (very) likely candidate for the next point release.

I want to investigate 6., but not sure how much can be done there yet.
Antonio Lado2
Hi, i ´ve been doing some testing myself, and the biggest issue i found is when it comes to mirror your groom. The thing is that assigning an attribute to the guides defining the side and doing the same in the definition of the template and using the mirror barbs in the feather interpolate looks like it is ok, but if i try to resample and make a feather surface the side that is the result of the mirror always appears as if the normals are inverted and also if i try to deintersect them half of the feathers move inwards instead of outwards. Don´t know if there is an easy fix for this, but i´ve been struggling with this and can´t find any answer to it.
Werner Ziemerink
Thank you for your quick response Kai. Much appreciated.

I don't know how I missed that on the first file. I fixed the connection and it works.
It does crash anytime I try to increase the hairgen count. Not sure if it happens on your side, but here is my file saved before the crash.

I am having a great time with the feather tools and will submit anything broken or RFEs.

Thanks again.
KaiStavginski
Antonio Lado2
Hi, i ´ve been doing some testing myself, and the biggest issue i found is when it comes to mirror your groom. The thing is that assigning an attribute to the guides defining the side and doing the same in the definition of the template and using the mirror barbs in the feather interpolate looks like it is ok, but if i try to resample and make a feather surface the side that is the result of the mirror always appears as if the normals are inverted and also if i try to deintersect them half of the feathers move inwards instead of outwards. Don´t know if there is an easy fix for this, but i´ve been struggling with this and can´t find any answer to it.


Hey sorry I missed this earlier. I'll do some testing, I think I've also seen something weird going on with Feather Deintersect there.

The mirroring workflow has become a bit easier in the meantime. With recent builds you shouldn't have to assign sides on the groom anymore, you can now use "Auto-Assign Side". Just set the side on the template. For templates that don't need mirroring, you can set them to center.
KaiStavginski
KaiStavginski
It does crash anytime I try to increase the hairgen count. Not sure if it happens on your side, but here is my file saved before the crash.

I believe this should be fixed in 20.0.535
Antonio Lado2
Hello Kai, thank you for the response, I´ll try to test the newest build
Werner Ziemerink
Kai, I could not get the new parting line algorithm to work with feathers.
Can you perhaps post an example of how this is supposed to work?
KaiStavginski
Werner Ziemerink
Kai, I could not get the new parting line algorithm to work with feathers.
Can you perhaps post an example of how this is supposed to work?

That's a bit worrying, does it work with the old one? (Either old build or disabled via the env var) ?

In theory there should be no change necessary on your part moving to the new algorithm, except maybe make sure that you have point normals on parting lines. (Should do by default with the Guide Partition SOP)
Gagui
KaiStavginski
The mirroring workflow has become a bit easier in the meantime. With recent builds you shouldn't have to assign sides on the groom anymore, you can now use "Auto-Assign Side". Just set the side on the template. For templates that don't need mirroring, you can set them to center.

Hello, where I can find a guide to that mirroring workflow?
I can't find anything about mirroring feathers in the documentation.

I have a baked wing groom and I need a proper way to do a mirror without uncondesing the feathers.
If I simple mirror the guides the feathers look messed up. I suppose I need to mirror all the barb attributes too, but I don't know how.

Could you give me an example or point me to some info about that?

Thanks!!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB