Feather Tools

As an intern at SideFX I created a series of tools for doing feather FX, the toolset includes a feather generator, a feather groom tool and wing tool.
I'll continue to update this project as I continue to develop it. 

Tool Design Challenge

Feathers are a unique fx challenge in that they call for large datasets to be manipulated at speeds that provide fast feedback for artist, rendering and animation control input.

Pipeline Consideration

The approach generates feathers first, derives accurate low res representations for animation, grooming and lookdev and at render time replaces the low res with the hi res feathers saved to disk. This pipeline is meant to optimize rendering and lookdev, as feathers no longer have to be generated at render time, they only have to be deformed.


Feather Generator allows you to create unique feather structures and shading, by allowing the artist to have a high degree of control (independent controls per side of feather for assymetry, ruffling, tip shape, etc.)


Here, I created a wing that was rigged to open and close, and had a variety of feather shapes and pattern.

When creating feathers with the Feather Generator, I would advise to first set the stem parameters. After that the length of the barbs, the bending, the clumping, the noise, the secondaries if needed, the shader. The geometry is packed by default so make sure to change Declare Materials parameter in the Rendering->Render tab of the mantra node to Save All Materials.


Please feel free to comment here or contact me at trzankofx@gmail.com to report bugs or request enhancements.
And special thanks to Paul Hollingworth, for letting me use his photographs for reference!

CREATED BY

TIGHE RZANKOWSKI

7+ year Houdini experienced FX TD currently working in the Synthetic Data industry. Formerly an intern at SideFX and an FX TD at The Mill NY, RISE Berlin and ILP Stockholm. Working remotely from Berlin, Germany. Dual citizen able to work in the USA and EU.

More from Tighe Rzankowski

コメント

  • MealeaYing 7 年, 2 ヶ月 前  | 

    This looks amazing and is the sort of thing that is precisely why I'm starting to learn Houdini.
    Thank you very much!

    Cheers,
    Mealea Ying

  • craigs 7 年, 2 ヶ月 前  | 

    link to feather hda generator doesnt seem to be working

  • Tesla_s_fan 7 年, 2 ヶ月 前  | 

    it seems unable to download the HDA

  • AlchemistRS 7 年, 2 ヶ月 前  | 

    Thanks,
    FYI the download link is doubled just delete the url starting from # back.

    • xmaniac3d 4 年, 12 ヶ月 前  | 

      hi AlchemistRS i wonder if you still have the feather asset, it seem the asset is not available and i wonder if you can share with me. if so i really appreciate . my mail is avt5000@hotmail.com

  • trzanko 7 年, 2 ヶ月 前  | 

    The link is fixed! Sorry about that :D

  • annoy4nce 7 年, 2 ヶ月 前  | 

    Great work, thank you very much!

    • trzanko 7 年, 2 ヶ月 前  | 

      Thanks! np

  • Aizatulin 7 年, 2 ヶ月 前  | 

    awesome work and very impressive, now I can create parakeet feathers ;), thank you for this great tool!

    • trzanko 7 年, 2 ヶ月 前  | 

      Thanks so much! Nice! Please share when they're done!

  • Eagle66 7 年, 2 ヶ月 前  | 

    Thanks, very cool.... It needs a noise or turbulence for structure parameter and a dirt map for shading - it's to clean as you look at your reference image.

    • trzanko 7 年, 2 ヶ月 前  | 

      Thanks! It does have a noise feature built in though, admittedly I didn't push the ruffed up textured look very hard in the renders.

  • anon_user_89151269 7 年, 2 ヶ月 前  | 

    Didn't test this yet, but it looks pretty good!

    • trzanko 7 年, 2 ヶ月 前  | 

      Thank you McNistor!

  • iahmedabdelnaby 7 年, 2 ヶ月 前  | 

    Very impressive, Thank you.

  • carstenk 7 年, 1 ヶ月 前  | 

    Neat! A few ideas:
    It would be cool if it could spit out mesh geo that is suitable/well formed for simulation (cloth etc. - (maybe even with procedural material property assignments like stiffness etc).
    Could also be handy if one could define feather shape directly via a simple cage geometry, rather than indirectly by adjusting all the shape influencing parameters.

    Again, nice work!

    • trzanko 7 年, 1 ヶ月 前  | 

      Thanks carstenk.

      Multiple levels of resolution is already implemented in version 2. There's render quality, preview quality and proxies for simulation. The proxy resolution has built in u attributes for stiffness variations. It'll be out soon I promise!

      That's been mentioned a few times to provide a interface for drawing the feather shapes rather than adjusting all the shape parameters. While it'd be nice, there'd have to be some serious analysis going on to set all the other parameters given an image. Initial length could more easily be done this way but setting two ramps isn't that bad imo.

      Thanks a lot and keep a look out for version 2 which will have the resolution levels and the grooming tools!

    • trzanko 7 年, 1 ヶ月 前  | 

      On second though you could very easily set the shape with a drawn curve, booleaning out the points not contained within the shape. I'll work that into the version2 to accept a curve into the asset for that type of workflow.

  • kinglaw 7 年 前  | 

    I'm new to Houdini bear with but when I import the tool into my scene nothing is happening there's nothing in the viewport or the node editor window how can I use this? help please

  • kevinsavuwa 7 年 前  | 

    awesome stuff

    • trzanko 7 年 前  | 

      Thanks so much!

  • MikeStewart 6 年, 11 ヶ月 前  | 

    Great work!
    Please, how can I colour the feather! I tried to play with the shader tab but nothing has changed...
    Can we use an external image as a shader! if yes, how...

    Thanks a lot,

  • anon_user_03349703 6 年, 6 ヶ月 前  | 

    Awesome work! I love it!!

    Thanks for share!

  • thexon 6 年, 5 ヶ月 前  | 

    thanks for sharing

  • thexon 6 年, 4 ヶ月 前  | 

    Thanks

  • DASD 6 年, 4 ヶ月 前  | 

    Very nice work. Thank you for sharing!
    1. Is you Path Attrib Tool available somewhere?
    2. You can optimize your Vex code by using @numpt instead of npoints(0). ;D
    3. Do you have plans for publishing version 2 (or whatever version you are at now)?

  • trzanko 6 年, 4 ヶ月 前  | 

    Thank you! There will be a version 2 released soon that includes a grooming workflow.

    • DASD 6 年, 4 ヶ月 前  | 

      Is the Path Attrib Tool part of that? As I see it, it would be a useful standalone tool.

    • DASD 6 年, 4 ヶ月 前  | 

      Also, Inspired by your work, I looked at a real feather that I found today. I was surprised to find out two things:
      1. The main barbs all had secondary barbs. Neighboring main barbs were interconnected tightly (almost like Velcro) and so the they formed a kind of sheet. This sheet had no holes, it might be a bit translucent, but for the most part it could be described with a fully opaque double-sided shader on a plane.
      Meaning a great abstraction would be to make planes between the main barbs and have a procedural shader on there showing a sheet of interconnected secondary barbs. Clustering between barbs is very subtle and holes in the Velcro-like sheet are very rare. I suspect in nature birds probably try to groom away such holes on flight feathers.
      For most levels of detail (unless its a macro view), the main barbs should probably really just be polygon sheets.
      2. The main stem, had a concave ridge on one side.

      On another note, have you compared the performance of the findattribute method to compiled foreach loops?

  • crissy 6 年, 2 ヶ月 前  | 

    Thank you for that great tool.

    One question, i try to bake (createMesh)
    and get the following Error.
    Have someone an idea?

    Error: (/obj/geo1/featherGenerator1) Node failed to cook

    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/xOrd.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/px.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/py.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/pz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ty.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/rx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ry.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/rz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sy.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/xOrd.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/px.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/py.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/pz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ty.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/rx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ry.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/rz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sy.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/xOrd.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/px.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/py.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/pz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ty.
    ...

  • JacobFX 6 年, 1 ヶ月 前  | 

    awesome

  • jakehamill 5 年, 9 ヶ月 前  | 

    Hello! I'm fairly new to Houdini and am wondering how I can attach an image to the shader and apply to the geometry. I tried adding an image texture to a principled shader and attaching to the geo node but it didn't work. I'm not sure where I would point the geometry to a texture map in the render parameters of the feather tool. Any help is greatly appreciated.

  • nichimen-75 5 年, 8 ヶ月 前  | 

    Hi,
    does it work in Houdini 17? :-)

    • trzanko 5 年, 8 ヶ月 前  | 

      Yes it certainly should

  • sudip_vfx 5 年, 2 ヶ月 前  | 

    I am unable to download. Where is the link?

  • anodin 4 年, 9 ヶ月 前  | 

    So Cool setup ! But i can't find the link too.
    Is it integrate inside Houdini ?

  • Fidel_is 4 年, 6 ヶ月 前  | 

    https://sites.google.com/view/fidfxtd/digital-assets
    created a basic feather implementation too. download it using the link above.

    • lavrenovlad 2 年, 4 ヶ月 前  | 

      Ty mate!

  • jeff-backbone 4 年, 2 ヶ月 前  | 

    There is no link. This post is clickbait.

  • mannyw 3 年 前  | 

    Hey were can we buy this?

  • hadgraphics 2 年, 7 ヶ月 前  | 

    HI, how i can fix feathers directions with guides grooms ???

  • SANTHOSHKRITNA 2 年, 3 ヶ月 前  | 

    Hi... how can i apply texture to the feather, and turn off the shader ? can you help me with this

Please log in to leave a comment.