H20 Feather generation findings and questions.

   2176   10   0
User Avatar
Member
1265 posts
Joined: March 2014
Offline
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?

Attachments:
paintFeatherInterpolate.v001_STOP.hip (8.4 MB)

Werner Ziemerink
Head of 3D
www.luma.co.za
User Avatar
Member
1265 posts
Joined: March 2014
Offline
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.

Attachments:
feather_interpolate_test.hip (8.2 MB)

Werner Ziemerink
Head of 3D
www.luma.co.za
User Avatar
Staff
644 posts
Joined: Aug. 2013
Offline
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.
Kai Stavginski
Senior Technical Director
SideFX
User Avatar
Staff
644 posts
Joined: Aug. 2013
Offline
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.
Kai Stavginski
Senior Technical Director
SideFX
User Avatar
Member
2 posts
Joined: April 2016
Offline
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.
User Avatar
Member
1265 posts
Joined: March 2014
Offline
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.

Attachments:
paintFeatherInterpolate.v001_crash.hip (7.8 MB)

Werner Ziemerink
Head of 3D
www.luma.co.za
User Avatar
Staff
644 posts
Joined: Aug. 2013
Offline
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.
Kai Stavginski
Senior Technical Director
SideFX
User Avatar
Staff
644 posts
Joined: Aug. 2013
Offline
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
Kai Stavginski
Senior Technical Director
SideFX
User Avatar
Member
2 posts
Joined: April 2016
Offline
Hello Kai, thank you for the response, I´ll try to test the newest build
User Avatar
Member
1265 posts
Joined: March 2014
Offline
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?
Werner Ziemerink
Head of 3D
www.luma.co.za
User Avatar
Staff
644 posts
Joined: Aug. 2013
Offline
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)
Kai Stavginski
Senior Technical Director
SideFX
  • Quick Links