Thursday, August 14, 2014

Appetite for Destruction

We continue to work non-stop on the physics for Voxel Farm. It has to be that way, physics is a huge component of what we are trying to build.  All the pretty things we can help you create must also come down. 

In earlier videos you saw things breaking apart. Now we can do it at a much larger scale, also with all sort of flying fragments and debris. We are taking a page from Michael Bay on this one. We want enough stuff blowing up to make you run for cover under your desk.

Still a long way to go, but I am very happy with our latest results. Have a look for yourself:


An interesting point for me in the video is the creation of the chair. It shows how physics can be an intuitive way of making objects for your world:


These objects you could rotate, position and scale at will. It would be very similar to a traditional mesh prop.

15 comments:

  1. I hope you are planning to add structural integrity. Would be a wast of the physics engine without it however I understand calculations can be hard. Maybe you can contact an engineer? I am a first year and had a course on how to calculate if structures are gonna fail. You can do that using publicly available knowledge and I think it would be possible to integrate those calculations into your engine.

    ReplyDelete
    Replies
    1. Should be possible. It can be hacked. When you do it for a real life project like a bridge or a building you want to get this right. For entertainment it just needs to be plausible. That makes all the difference. BTW we have one civil engineer and one architect on the team. But they are not working on this.

      Delete
  2. Looks very fun! I can't help but think that a little bit of friction might make the destructions feel more realistic. That said, would you mind opening up and entertain us with fanciful opinions of incorporating simple stress mechanisms that will allow improperly supported geometry to deform/break?

    ReplyDelete
    Replies
    1. Yes, it is kind of simple. There are voxel thinning algorithms that can help you compute a skeleton for an arbitrary volume. This skeleton represents the topology of the object, by navigating this graph you would know quickly when something becomes detached for instance. It can also help you compute how much stress there is on each link of this graph. If the stress is too high you could decide to break the link. I hope this makes sense...

      Delete
    2. I come from a background of FEA and messing around with animation skeletons in high school. All of this makes a lot of sense! I love the idea of using an algorithm to construct skeletons based on the voxel geometry. You would probably want to iterate the skeleton stresses until they change less than a certain amount. This cutoff should help reduce processing load.

      Delete
    3. Right. Also I think we can exploit the fact we can run this kind of analysis at a lower resolution. It is too early to tell, we are still researching this.

      Delete
  3. I think the optimum solution would be similar to how auto meshing solutions for FEA can have dynamic resolutions, going detailed whenever your model details shrink in size. In this way your skeleton will be attached to groups of voxels determined to be a solid body at a sing point at that masses centroid. Then as your aspect ratios shrink closer to the skeleton additional nodes are added at the centroids of each subsequent group of voxels.

    ReplyDelete
  4. Are you running this on same HW like year ago? BTW I wish good luck ;)

    ReplyDelete
    Replies
    1. Nope, my old machine died two weeks ago. This video was captured in an ASUS laptop with and i7 and a GTX 670M

      Delete
  5. Can we get the same kind of vid/demo on trees? I've never seen you do any kind of destructive physics with the trees.

    Are there any plans to add any kind of encapsulated objects for tree voxels? Or are they always going to remain simply generic voxels in the shape of trees?

    ReplyDelete
  6. Saw the Voxel Farm destruction demo shown at SOE Live.

    I'm in the Landmark beta.

    My question:

    We've had rotatable selections in Landmark for a few weeks now. But to rotate an intricate "voxelmanced" selection any degree but 90 will destroy it. I assume that's because the "world grid" remains fixed, and the math required to translate a sharp piece 37 degrees, and reposition "roaming vertices," is too much.

    But what I'm seeing in the destructability video is freefalling, free spinning, pieces with extremely sharp edges and corners that aren't affected at all. As if *their* grid/mesh is disconnected from the world grid/mesh.

    Taking the example of a chair, it's built from what appears to be single "cubes". And then you rotate it and kick it off the dias. This is not possible in Landmark. (Just rotating the chair on a single axis, to anything but 90 degrees would destroy it.) Is that because the grid/mesh resolutions are different? Is what we see in the Voxel Farm video a higher resolution than what we have in Landmark, and that allows the greater fidelity we see? (And allows the system to keep the sharp points and edges intact?)

    P.S. And the dynamic water... nice.

    ReplyDelete
    Replies
    1. It is not about resolution, like you said the free spinning pieces are disconnected from the main grid.

      Delete
    2. Thanks for the reply.

      Hmm. I assume since they showed this at SOE Live (did they show the chair, or only the building?) they're considering adding this to Landmark, and then our rotating selections will also become disconnected?

      It'd be very cool, and I imagine it's kind of expected (Soon) to have a chair that you can move around. A castle throne room say.

      I'd imagine, though, the engine would quickly come to it's knees calculating all these separate grids if they are maintained independently of the world from then on out.

      Delete
    3. Remember seeing something in this blog does not necessarily translate to seeing it in Landmark. You should get your news from the Landmark folks.

      Some of these features may be possible only in a single player, or small scale multiplayer game. MMOs are a different beast.

      Now back to your question: In principle having these objects hanging around is not that different than having them as static voxels attached to the world, "living" in the main grid. You would need to know the orientation and scale of the object, aside from that it would be more or less the same amount of data.

      I think the key is in avoiding these objects to become too small, and also make it so only one object can be at one place (like in the real world).

      Delete
  7. just catching up on your blog so i decided to start with this as i am most passionate about seeing these heavy objects falling start to deform the land and do dmg to other structures they hit and leaving trenches scrape marks as they slide down the hill

    ReplyDelete