Easy Soap Film Shader

comments 5
Tutorials
Featured Video Play Icon

By far the most frequent question we received after our minimal surfaces tutorial was “how do you build that bubble shader?”. The wait is over – in this tutorial we’ll go over how to build a plausible soap film shader in Houdini’s Mantra and Octane standalone.

After going into detail what thin film interference is (this is the main phenomenon causing those rainbow-like colors on a soap bubble), we’ll take a look at how soap films behave in real life before attempting two methods to build actual shaders based on these observations. If you’re interested in doing a soap film shader the “proper” way – there’s this brilliant paper on soap bubbles by Andrew Glassner.

EDIT:
thinfilm_checkbox_01
It occurred to me that I did not mention to check the “Thin Film Refraction”-Checkbox in Mantra’s Classic Shader. You should definitely do that 🙂

Download Project Files (.orbx / .hipnc)

Share on FacebookTweet about this on TwitterPin on PinterestEmail this to someoneShare on LinkedInShare on Google+

5 Comments

  1. Haven’t watched the entire tutorial yet, but I have to say you guys are the best teachers out there, love those real world examples and the way you explain the stuff.

    Thanks again

  2. Viduttam says

    Simply brilliant! Loved the science behind it! Thanks for the lucid explanation!

  3. Great tutorial guys, thanks for sharing.

    Sharp presentation and you are pushing the boundaries of knowledge each time. Simply love it!

    Cheers!

  4. Craig Speakman says

    I know you only publish bi-weekly.. but it doesnt stop me from checking every day.. Ive learned a lot from your tutorials.. Legends!

  5. Michele Spaliviero says

    Hi Moritz,
    thanks for the awesome tutorial, unfortunately I don’t have H16, so, instead of the classic shader I used a mantra surface, I went inside the node, and I tried to replicate what you did, but I stumbled upon this problem: I cannot connect the output of the “uvxform” node to the uv input in the “texture” node, because the texture node does not have a “uv” parameter!
    How could I solve this?

    Michele

Leave a Reply

Your email address will not be published. Required fields are marked *