More Physics

by - 2012/01/21 49 Comments Artwork, Production

Here’s a quick follow-up post on physics.

I’ve spent a lot of time doing various rigid body and smoke tests, just to get comfortable with physics in Blender.

I also tried to stress test the tools by using large amounts of active rigid body objects. That last clip with the round church tower collapsing consists of just bellow 10 000 active objects simulated by Bullet via the game engine. Both Bullet and Blender handled that many objects surprisingly well!

  1. budip says:

    asemm apik iki…

  2. Gianmichele says:

    This is really interesting. Soooo…what is working and what require works for you?

    • kjartan says:

      eeh.. sorry, I’m not sure if I understand the question.. What is working with the dynamic system? What needs to be improved? is that what you were asking?

  3. fernando chagas says:

    I’m anxious to see the completion of the project Mango. The forecast is for the second half of this year?

    • kjartan says:

      hi Fernando. You can see current timeline under “timeline” in the menu above. Premiere and online launch is planned for august/september this year

  4. horace says:

    nice tests!

    i would like to see a compination of smoke and bullet physics. :) is that possible?

  5. captainkirk says:

    That’s awesome. I don’t suppose you could write a tutorial on how you did it?

  6. lucky says:

    Very good tests, quite exciting to watch it at the beginning of the project. I’d like to know more about the crashing tower, did you use plugins?

    • kjartan says:

      I used the Fracture Tool addon, it’s included with blender. The dynamics are controlled with a few game logic tricks, like timers and collision triggers. It’s a bit difficult to explain in detail.. but anyways, my point is it was all made with existing tools.

      • lucky says:

        Ok I see thanks for replying!

      • dejdara says:

        How you made that fracture tool was able to shatter more compicated object than cube, susan etc? I have big problem with some models, i think it’s becase they have too complicated mesh and fracture addon make big nothink. It’s working working working and when blender unfreeze… nothing changed.

        • kjartan says:

          @dejdara – Fracturing works a lot better now that we have Carve, Blenders brand new boolean system. But it will still fail in a few cases. It often helps to run a “W/Remove Doubles” and recalculate the normals with “Ctrl+N”. Also you should make sure the mesh don’t have any open holes.

  7. Physics Guy says:

    Hi Kjartan,

    the explosion looks really impressive. What kind of resolution did you use for the smoke simulation?

    I’ve been looking into rendering realistic explosions recently. I’m especially looking for a realistic way to include the lensing effect caused by the shockwave. I made a very simple first attempt
    (http://vimeo.com/35090029). I know that the colormap on the fireball is quite bad, the point of the render is the shockwave.
    In this case, I rendered the shockwave by placing the background image in the scene and placing a transparent sphere between the image and the camera.

    What I would like to be able to recreate is what you can see in http://www.youtube.com/watch?v=go9Xd_r21B4

    Here you see that the explosion is always contained within the shockwave (the good bit start around 40 seconds into the video). Initialy, the smoke and flames expand against the shockwave and look more like a rigid object with a flaming texture slapped on the outside. Only when the shockwave has expanded far enough away, can the smoke and fire develop freely. It would be interesting if the smoke domain could be animated during the smoke sim, but as far as I understand, smoke cannot interact with dynamic objects.

    Do you have any alternative ideas?

    • kjartan says:

      I used a resolution of 80 and 6 hi-res divisions with FFT.
      If I was making a shockwave I would probably use the Displace effect under Distort in the compositor. Do you know how to use it?

      • PhysicsGuy says:

        I thought about using the distort node, but what I think that will do, it just create a step at the horizon, whereas the real lensing effect makes the horizon bend upward in a little spike, due to severe spherical aberration. Or perhaps I should cut a halfcircle out of the image, run only that halfcircle through a lens distort node and just paste it onto the original image. Is that what you had in mind?

    • Psy-Fi says:

      You can also probably use the weight proximity modifiers + the shockwave sphere mesh to generate particles on the emitter based on the generated expanding weight group. This way you could get particles only inside the sphere. I haven’t actually tried this though so it may just not work that way.

      • PhysicsGuy says:

        But having only particles inside the shockwave isn’t enough right? The smoke domain isn’t limited to where the particles are. Or am I missing your point?

  8. Rafster says:

    I really like the falling building. It would be awesome to see pyroclastic flow, that huge cloud of dust and debris that you see as a building comes crashing down.

  9. FelipeDR says:

    Very nice!
    Have you tried a tool of fracture based on voronoi diagram?
    I think it would be more realistic in the case of the tower, some parts do not break at once, like thinking particles.

  10. Benjamim says:

    In the glass you used game engine or particles and explode?
    Could you give me more information?
    Thanks

    • kjartan says:

      hi Benjamin. I used rigid bodies in the game engine and recorded that motion into keyframes. I also did something called object swapping (or least that is what I call it). That basically means I swapped the unfractured/fractured glass right before it is hit by that crane.

      • Benjamim says:

        The object swapping is done in Game Engine?

        • kjartan says:

          No. I just animated the “restrict renderability” button in the outliner. I did it by:
          1. first animating the renderability for one object,
          2. then using “ctrl+L/Animation Data” to copy that animation over to the other objects
          3. make that animation local to the individual objects by pressing “U/Object Animation”
          4. recording the game engine physics
          and finally you have to tweak the keyframes so that the objects hiding/revealing happens where you want it to happen

          phew! that was a bit difficult to explain..

          • Benjamim says:

            Thanks, that’s amazing, I’m testing here.
            But I wonder if it was a skyscraper with many windows to break.

  11. matthew/mofx says:

    Awesome, hopefully with Mango Production, the physics, particles and simulations will get some much needed improvements. Great stuff so far, can’t wait to see it evolve.

  12. Mario says:

    Check out these videos.
    http://www.youtube.com/watch?v=O7JTWfTNPeI&feature=related
    http://www.youtube.com/watch?v=clm1bcvtZDU
    http://www.youtube.com/watch?v=hDBsSht1_VA
    http://www.youtube.com/watch?v=LPsW9cVPMgw&feature=related

    They no longer have their site, but they were good at representing stress points and extra elements such as sheetrock and rebar on their simulations. Would be nice to have in blender, especially adding weight maps for the stress points.

  13. “Both Bullet and Blender handled that many objects surprisingly well”

    This is not true according to my tests, especially with stacked rigid bodies like those.

    Do you have recommended physics settings for better performances?
    Or is your hardware just top notch?

    • kjartan says:

      My system: intel i7-2600k CPU and 8 gigs of RAM. Blender did of course slow down considerably. But what I meant by “surprisingly well” was that this specific scene on my computer was responsive and stable enough for me to work on.

      Actually the thing in blender that slowed down the most on that project was not the 3d View but the Outliner. For some strange reason :P

  14. Albert H says:

    I’m curious – with all the fun with demolition, is there anyway we could get Bullet Physics integrated into the main Blender tools?

    That’s kinda ambiguous… so I’ll explain. :)

    Currently, you guys use the Fracture Tools plugin to make this all work, right? That means it uses the Game Engine to run the simulations, which can be slow depending on the hardware.

    My question is this: can you guys possibly (during the development of this movie, and inevitably Blender itself) integrate all of this into the Blender physics tools so that running a simulation does not occur in the game engine? (Like the particle and soft body physics) It would be a lot less resource intensive to do (no GPU necessary!), and would open some interesting possibilities! ;) (And also so that my computers with crappy Intel GFX can run the simulations too :P)

  15. Aditia says:

    The explosion look so much realistic…WOW. I smell some explosion and destruction in the movie as well :)

  16. john smith says:

    what was the res of the smoke sim?

  17. andré piriquito says:

    When will new tests?

    • kjartan says:

      I’ve spent this week doing things that might not seem very interesting. Like learning Ubuntu! But I’ll try to have something cool to show in a week or so. Not promising anything though.

  18. Ryan Davis says:

    Can you add diversity in the size of debris? All debris is about the same size. Adding tiny particles to the destruction would do wonders. Smoke and tiny particles will help a lot.

  19. FelipeDR says:

    Do you intend to implement new functionality to Blender to collapse and destruction?
    With the current version of Blender is possible to create buildings collapsing like in the movie 2012?

  20. congcong009 says:

    just wanna know, is there any possible to share these test blend files? The pic you uploaded for the setting could not be open here. :)

  21. Pandu Aji says:

    Damn! Love this physic!

Leave a Reply

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

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>