You can get Voxel Farm now. For more information click here.

Tuesday, May 2, 2017

Plugin Status

I'm happy to see our team of excellent developers at chez Voxel Farm has made quick and large improvements to our plugins for Unreal Engine 4 and Unity 5.

The UE4 plugin is now a proper UE4 plugin, not just an example for integration anymore. This opened a whole new set of possibilities. In a very short time, we were able to put together this video from different scenes and interaction modes within UE4:

The new Voxel Farm UI makes it quite simple to add Voxel Farm to any existing or new project. There is a button that will do that for you, requiring you to just point to the target project:

The plugin already offers blueprint access for typical tasks like block edition, voxelization and physics. The threading model is much better, resulting in a smoother experience.

There is a new demo for UE4, now including the plugin:

If you want to get a feeling of how the plugin is used in UE4, these topics will help.

If you are thinking Unity gets no love, you would be wrong. Most of our recent efforts went into the Unity plugin. I will cover this in my next post.


  1. Wait, wait, wait...

    At 2:20 you destroy the floor and the floor wire reveals that the explosions have a sphere topology, rather than approximate the explosions to the voxel often used low resolution grid.

    Please explain what kind of sorcery is this!

    Also, wanted to ask, with all this complexity of having to transform voxels to polygons at the end of the rendering pipeline, isn't it possible to create a polygon engine that works as voxels? I mean, isn't the overhead cost of transforming voxels to meshes as expensive as making a polygon engine that behaves as voxels?

    1. Excellent questions.

      The voxels here capture a surface. The surface can have any shape, and a sphere is a particular case. These spheres are no different than the terrain beside them, which is also smooth. The surfaces could also not be smooth, like you see in the blocky destruction demo.

      Voxel to polygon is much faster than polygon to voxel. So if you want to operate with voxels, you would be better starting with voxels. If you stay as polygons, you would be doing constructive solid geometry. This is quite tricky to do at interactive rates when the meshes get complex.

      And there is the other issue which is voxels are by nature amenable to parallelism. This is because one voxel is not connected to their neighbor. Pretty much like pixels, they can be isolated into chunks that can be dispatched to parallel processing. With meshes is trickier, because each element in a mesh is connected to other elements, so all elements are potentially relevant to the operation you want to perform.

    2. That was pretty clear.

      Thanks for your time!

    3. Miguel, the voxel/polygon transformation question was one I had lurking ever since your video where you carve shapes out of a pillar on a steep mountain and the physics just does the right thing. I confess I'm not stellar at math/geometry in general and visualization engines in particular, so my question may be redundant. If so I apologize and thank you for reading it.

      My question: When a voxel-modeled portion of the world becomes disconnected from its origin and starts tumbling, does its coordinate system rotate with it, or is its shape transformed within the global coordinate system? If the coordinate system rotates with each disconnected model, what happens when models come in contact with each other? Are they then re-mapped to a shared coordinate system? Are polygons only generated for visualization or do they have other purposes?

      Thank you for all your educational posts and videos. You've been reminding me why I got into tech in the first place. :)

    4. Polygons are used for more than rendering. Physics, for instance, is simulated using polygons. The operation that discovers detached fragments also runs over polygons.

      The detached fragment is a mesh, and it has its own coordinate system. Right when it becomes detached, it matches the world's system. Then, as it moves and rotates, its system ends up having different values.

      The examples we have shown so far keep fragments as meshes forever. They do not come back into voxels.

      If a fragment is large enough, it could be voxelized back when it stops moving. At this point it would lose its coordinate system and the mesh would become part of a larger mesh.

    5. That is awesome. I'm a fan of hybrid systems like that. It's like transitioning between Cartesian and polar coordinates when doing so is worth performance and accuracy the trade-offs. Thanks for the clarification!

  2. This comment has been removed by the author.


There was an error in this gadget