Introducing Voxelform - voxel terrain (Marching Cubes) with real-time deformation.

Hi All - I’d like to introduce my new Voxelform scripting package, now available on the Unity Asset Store, and provide a public forum for questions and answers.

Voxelform 2.0 was released Dec 21, 2011
For more information and playable demos, check out the website: http://voxelform.com

Features:

  • Designed to be a flexible, customizable, part of your project.
  • New: Includes two demo scenes: A simple run-time editor demo, and a simple FPS controller game demo.
  • Heavily documented source with XML code docs for tool tip support.
  • Marching Cubes algorithm at the core, provides efficient dynamic organic terrain.
  • Sculpt the terrain on the fly, any way you see fit.
  • Easy access to voxel data, and easily scripted externally.
  • New: Voxel data source is fully customizable via an interface.
  • New: Voxel structure with “factory settings” includes support for volume, material index, and neighbor info.
  • New: Use voxel type information for multi-material support with material palettes.
  • New: Material palettes (for use with voxel terrain) support a theoretical maximum of 65,536 Unity Materials.
  • New: Hidden regions within multi-material welds are culled before Marching Cubes processes them.
  • Chunk based design.
  • Flexible voxel chunk sizes.
  • Chunks can be any shape or size.
  • Create as many chunks as you can safely fit into memory. Note: Mono has a limit.
  • No wait time for initial building of the chunks. Chunks load in, and away from you as you play.
  • New: Single frame loading allows the entire voxel terrain to be loaded on the first frame, but incurs a delay.
  • Chunks past a certain distance become disabled, and then re-enabled as the observer moves.
  • A queuing system keeps chunk processing well balanced over multiple frames.
  • All background tasks are successfully load balanced on the main thread.
  • Your clients will not need a multi-core processor to run your game.
  • New: 15 built-in volumetric shaders with built-in material examples for each will save you time.
  • New: Built-in shaders provide diffuse, normal, and specular mapping for triplanar texturing.
  • Easily simulate granite, marble, regular stone, stratification, and more, or roll your own shaders.
  • Built-in methods for saving, and loading raw terrain data.
  • Built-in methods for Improved Perlin, and Simplex Noise to create fractal geometry.
  • Solid (volumetric) texturing.
  • Solid fractal texturing.
  • Triplanar texturing.
  • New: Complete code overhaul with improved flexibility, and additional helper methods.
  • New: Editor menu items for saving, loading, creating, and editing voxel terrain.
  • New: Experimental (beta) voxel terrain editor (editor extension requiring Unity Pro) is included but not required.

Known Issues:

iOS is under investigation, but not currently supported.

Background and Overview:

I was inspired to create this after getting sucked into Minecraft for a couple months. Initially, I wanted to do the obvious thing and recreate Minecraft with all the goodies that everyone thinks it ought to have. But after a little thought, realized it would be so much more fun to implement a deformable voxel based terrain system instead. The result is a month of research and development and many late nights glued to the computer.

My intent with Voxelform, is to save you that time and effort, and to provide a very fun, efficient and reliable set of tools to get you off the ground running. The project is well documented on multiple levels and is intended for heavy customization. To that end, I’ve tried my best to help you understand the basics of what you’re looking at and provide suggested reading to understand the marching cubes algorithm.

The project should be helpful and entertaining for novices and advanced users alike. It’s definitely a scripting package, and it’s intended for programmers (intermediate C# skills recommended), but there’s something there to enjoy for everyone at every level.

I really can’t wait to see what the community does with this. The possibilities are endless!

If you have any questions, please feel free to either ask them here or send me a private message. I’m a one man operation, but will do my best to help in whatever way I can. If you feel that documentation is lacking in any area, please let me know and I’ll do my best to correct the situation.

Thank you so much for taking a look and for your feedback. It really means a lot.

  • Mark Davis

Awesome!

I played with your demo for 3 hours non stop.This is a must have and seriously addicting ^^ :slight_smile:
Keep up the good work!

It’s cool but I get terrible frame rate on my macbook pro

Can you have multiple materials on the Voxel Terrain?

ie - grass on top, stone on the sides?

Would love to say that too but on my 2011 MBP (2.2ghz stock) its that fast that sculpting is a prob ^^

Mine is 2.66GHz Core 2 Duo and is a few months old
4GB DDR3
OSX 10.6.7

Using chrome

When I press jump there’s a half second delay before you move, granted editing the terrain is pretty fast but I can only do straight lines because turning and moving is so slow

WOW, that is amazing! Love it !!

Question: can you change the resolution of the terrain? it seems quite “chunky”. Or perhaps implement a multi-resolution mesh approach where you get very fine detail mesh up close but further away terrain remain low res?

No problems on my Mac Pro; it’s extremely fast.

–Eric

Really good performance on my end. Considering I have a lowly Radeon 3300 integrated GPU. If there screen effects were off I would get over 60fps easily. VERY cool, keep it up!

Heyyyyy…I knew it was coming… much awaited solution… and nicely done… congrates!!

Amazing, and fun.

Thanks so much for all your feedback today, on the forum and via private postings. I have to say, the Unity Community is really an outgoing quality group of people. Also, I’m so glad to hear that so many are enjoying it or @kerters, getting sucked in for 3 hours! Awesome! :slight_smile:

@spinaljack - Sorry to hear it’s not working as well as you’d like. There are a number of options for tuning the performance based on the needs of your minimum spec machine. I’ll see about putting together a 3rd demo, that’s a bit lighter weight.

@Jaimi - Yes, perhaps with a triplanar shader. It’s now on the to-do list, but you can swap in your own custom shaders if you’d like. I targeted the volumetric shaders first because they lend themselves to nice looking deformable terrain, but I’m aware that there are plenty of folks who would like to use this for regular static terrain with overhangs and caves.

@dreamora - Awesome! Perhaps the demo needs scroll-wheel drilling power adjustment! :slight_smile: One more to-do item.

@I am da Bawss - Definitely. The resolution can be easily changed. There’s a scale (uniform) property in the VoxelTerrain object’s Inspector pane. You can scale a terrain of any number of voxels and chunks to any size you’d like, completely from within the Inspector. For better resolution, you would lower the scale and increase the number of chunks. It could in theory, be used to organically melt sugar cubes in a liquid, create the ultimate butter slicing sim, or create a very large WoW quality terrain with detailed caves. Note: If anyone does try making a multi-voxel cube, this is documented, but be sure to leave at least one layer of voxels empty for each edge. This is because surfaces form where conceptually, a threshold occurs between values above the isolevel and below it.

Thanks again everyone!

I am very interested in making a regular static terrain (large) with this. Will it be possible to build and edit the terrain in the Unity editor? Also having multiple materials-textures would be a must. :slight_smile:

One question, did you consider anything other than marching cubes? Because you’re not going to get any sharp edges with this (perhaps for the edge of a vertical cliff?). But it’s still a nice tool.

All I see is a bright white light and as I move my mouse there are some yellow blobs on the screen… :frowning:

Awesome and fun. Great tool.

It would be great to have multiple materials setup by height, slope or falloff angle.

Oh sweet. runs very well for me!

I would like to know that too :slight_smile: Anyway, impressive product for sure!

It’s looking grate.
If you publish it i will prototype around withe this (only if it hast a fair price :slight_smile: )
Don’t have a project so far that i could use this on but i will find something.