MiikaHweb Blog -> Archive

iWave + Dynamic Paint!

Feb-13-2011    19 Comments

A couple of days ago I was playing with Blender ocean simulator modifier. While it's able to generate realistic wave motion, it's not able to interact with other objects.

Then I got an idea: what if I integrated a simple wave simulator with Dynamic paint!

So I ran across iWave algorithm by Jerry Tessendorf. I also discussed this with ZanQdo (Daniel Salazar) who was already implementing iWave for Blender through Python. We agreed that Dynamic Paint could be the best way to go, because it allows easy object interaction and is able to output textures as well as displacement.

iWave is a simple algorithm for simulating 2D water surface ripples/waves and their interaction with obstacles.

Now after a few days I already have a very basic iWave integration:

What you see here is an iWave surface interacting with Blender objects via Dynamic Paint. You should also note that it's just a normal mapped plane, so it's very fast to render!

Unfortunately, there is still lots of work to do before I can release a public test version... :s

Edit: An alternative wave algorithm, has been added to Dynamic Paint instead.

Posted by MiikaH at 13:03

Category:Blender, Development
Tags: Blender, Dynamic Paint, Waves

(Comments, questions or discussion about this post.)

Gottfried Hofmann
Feb-13-2011 16:48
This looks very promising :)
Andreas Galster
Feb-13-2011 18:23
You are awesome! You are just reading my mind I'm planning a short movie right now and there was supposed to be a scene where I needed exactly this effect and I was wondering if I need to change the environment due to production issues. Seems like I won't have to :)! Thanks!
Finnish Arman
Feb-13-2011 19:35
Jätkä on kyl oikeesti niin kovis ettei meinaa sanotuks sanoa. :o
Feb-13-2011 22:00
Awesome!!! That's just what I had in mind when I asked for a turbulence feature to simulate the v-shapped ripples behind a boat. Your dynamic paint system is really a brilliant idea and tool for blender. thanks a lot.
Feb-14-2011 04:26
bravo excelente
Big Fan
Feb-14-2011 04:54
Thats very good indeed.
You sure are having a great run of ideas.
Dynamic paint is a great addition to the Blender tool set.
Feb-14-2011 06:06
This is amazing work you are doing Miika,
Dynamic paint was awesome already... and implementing Jerry Tessendorf's and ZanQdo's work with it... Jaw dropping... Yoyu are always pushing the envelope

Thank you for all of your work.


Feb-14-2011 09:13
I was wandering if OceanSim and Dynamic paint could somehow interact - and, boom, here it is!
Andreas Galster
Feb-14-2011 10:53
You seem to be going in the same direction as Farsthary did :). You're bringing one awesome feature after another to Blender. I hope you'll get rewarded with a job in that field if needed :)!
Feb-14-2011 11:02
Awesome feature!
Feb-14-2011 12:31
Great work! :D
Shaun Wilson
Feb-14-2011 15:49
Wow! That is absolutely incredible. Nice job, especially after only such a short time. Really looking forward to a public release. Thank you for sharing.
Sam Schad
Feb-14-2011 15:59
I was reading some computer graphics magazines this month, and realized what a blessing it is to have people passionate about Blender. Thanks again, Miika, for contributing.

Might I suggest that you get in touch with Matt Ebb, and maybe figure out a do a sponsored sprint for the completion of the code? Something just one step further than what you are already doing for donations? Great way to keep things moving, and you get some money for you effort. Your time is worth so much....
Feb-15-2011 07:08
Sheer brilliance! Blender 2.5/2.6 is going to be the utlimate 32 app with input from people like you
Feb-15-2011 13:49
I don't know the iWave algorithm in particular, but I know a little bit about 2D wave simulation. It is great to see something like that implemented in Blender, especially in combination with dynamic paint!

But for me it seems like you're doing a two step simulation: first the dynamic paint is calculated with a shrink effect, which is then used as input for the wave simulation. Of course I don't know if it is truly like that, but this is how it looks like... or why are there still waves generated after the object has moved on? Anyway... if you paint directly into the velocity values, that shouldn't happen. It'd be the best if wave simulation would be an alternative to the spread, drip and shrink effects.
Feb-15-2011 14:16

No shrink effect there. It's actually a whole new canvas type, so no traditional effects are even available on iWave mode. :)

Why it's generating waves after object has moved on: I dunno. As far as I can tell it seems to be the only major issue with this iWave algorithm. I have been tweaking it and have managed to slightly reduce, but not completely remove those.
Brian L.
Feb-15-2011 20:58
Thank you! Just, thank you!
Amy M
Feb-16-2011 16:25
Amazing!! Thank you! Can't wait to get it!
Feb-17-2011 16:20
Very cool that's it's just a normal map! Can't wait to try it. Peace.

Write a comment:
Name: *
Verification Code: *verification image (?)
Message: *

By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2020