Search Unity

Voxel Forge 1.3: Approved

Discussion in 'Assets and Asset Store' started by Jacob-Aldridge, Aug 21, 2014.

  1. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    Hi everyone! I have recently released a great tool for Unity that I call the Voxel Forge. It is a vertex painted based voxel modeling utility. It allows you to rapidly create assets/models within Unity just by painting voxels directly onto an object, which can be saved to as an .asset file and the meshes attached to a game object (there is a tool that can do this for you too).

    Feel free to give it a look. Feedback is more than welcome! Thanks for taking time to check it out!

    Shot2.png

    Voxel Forge
     
  2. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    Recently we have been working on quite a few things relating to the Voxel Forge. We have two new tutorials to help you get started (with more to come) and have been working on the first update v1.1. Here are the release notes for the update, which is pending approval in the store, but should be live within a few more days. Our website has been updated with a few new features, one to include a demo of the screenshot above. We are trying to regularly update our blog/facebook pages with all our updates to keep interested parties informed. Thanks for tuning in!

    View Demo

    v 1.1
    • Added a new VoxelColor class. This automatically converts the old color scheme in the Voxel class to this new one.
    • Removed the Green highlight from the selected sub-object. Was too confusing with the Cyan highlight to note which was under the Voxel Cursor.
    • Reworked some of the Mesh generation to reduce the number of vertices. Duplicates have been eliminated. Futher work to be done in 1.2.
    • Monkeys. Lots of Monkeys.
    • Added a total count of Vertices and Voxels on the Parts header.
    • Added custom color pallet. Can quickly add colors with a name or rename them later. Use the name button to select it and hold down control (or command key) to overwrite the color.
    • Tools will now affect all objects the drag tool (volume area) covers.
    • Added a VertexCounter behaviour that can be attached to a game object and will add up all of the vertices and triangles on itself and all children. Useful for trying to keep track of your vertex counts while in the editor.



     
  3. SirStompsalot

    SirStompsalot

    Joined:
    Sep 28, 2013
    Posts:
    112
    It's been great to use so far. It definitely has been speeding up my development pipeline. Thanks for this guys!
     
  4. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    Thanks a lot for input SirStompsalot! It was great to talk with you and discuss what we can do to improve Voxel Forge. Look forward to seeing what you build with it!

    We have been working hard on version 1.2 which brings a lot of great updates to the editor. The most powerful one is the mesh simplification, which greatly reduces the number of triangles and vertices used in the final mesh. Take a look at our weekly blog post for more details!

    Blog
     
  5. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    Version 1.2 has been submitted to the asset store and is awaiting approval. There are a lot of good features added to this version. Special thanks to SirStompsalot for some extra testing with 1.2. Here are the release notes and thanks for tuning in!



    v 1.2
    • BUG: Fixed creating a new Voxel Forge object from a New Game Object throws an exception. The first time you selected this, it would cause a console error to show because the new color system was not initialized properly for new objects.
    • Created a mesh simplification algorithm to reduce the number of triangles and vertices used in the final mesh saved in the .asset file. This can be previewed by enabling the Preview Final Mesh mode in the Options toolbar.
    • Added a tool to select all voxels by the current color for the current object.
    • Added the ability to name an object directly from the editor GUI.
    • Added a view of the current coordinate of the voxel cursor on the main toolbar.
    • The monkeys have been fired. See bug #1 above.
    • BUG: Fixed tools affecting multiple objects would include all objects, even ones that have been hidden.
    • Added a special shader to use a normal map to provide special lighting effects to each "voxel" in the saved meshes.
    • Added two new tools for the Face Toolbar. You can now enable/disable normal map tiling on final mesh faces so that it will not tile the normal map over that quad. Any voxel within a quad that has this marked will enable/disable it for the whole quad. More work will go into this at a later date, but it is functional for now. Note: These tools can only be used while in the Final Preview Mesh mode.
    • Added in new Materials to allow for Light Mapping, Normal Mapping, Light Mapping with Normal Mapping, Full Alpha with Normal Mapping.
    • Added in a Active Tool text to see what tool you are currently using.
    • Disabled the Move Pivot tool when editing the root object.
    NOTE: Light Mapping with Normal Mapping does not currently work due to Unity limitations. We are currently looking to other ways to make this happen.
     
  6. SirStompsalot

    SirStompsalot

    Joined:
    Sep 28, 2013
    Posts:
    112
    Jacob-Aldridge likes this.
  7. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    Hi Jacob,

    I was told about your tool recently and it looks very interesting. I am trying to work out if/how it could be used in conjunction with Cubiquity, which is my own voxel engine for Unity3D.

    Now, I haven't used you tool so my understanding may be wrong. But it seems that you basically provide an editor extension which allows users to design voxel models, and then you bake them to prefabs. Can you also use you tool in-game? And do you have to convert the models to prefabs, or can you use the voxel models directly in-game?

    Cubiquity is a powerful voxel engine which supports millions of coloured voxels existing at a time, and volumes can be modified in real-time in game mode. It's pretty nice for destruction effects, etc. However, I haven't yet put much effort into editing tools, and so users have to import them from external sources or generate them procedurally.

    Is it possible and/or useful to get access to the Voxel Forge voxel data (rather than the prefab), so that it could be converted to Cubiquity data? I can't quite tell if our systems are competing or complimentary (but I think the latter ;-) ).
     
  8. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    Hi David!

    Your understanding is fairly accurate. We provide a way for people to design voxel models within Unity and then bake the mesh into an asset file and also create a game objects with the appropriate mesh filters/renderers using those saved assets. Currently we don't have an interface for using the editor in a game setting, but it's something we'd like to do in the future. Our initial goal was to have a Unity editor so we could create our own models.

    The voxel data is simply stored in a MonoBehaviour and can easily be manipulated at run time and have the subsequent meshes rebuilt. We haven't tested this really, but in theory there is no reason why it would not work. This is also something we'll do further work on to allow for voxel meshes to be updated at run time.

    I took a look at your evaluation version of Cubiquity to see what kind of ability there would be to support copying over the voxel data to your volume database and I don't think it'd be very hard. You store your data in a similar fashion to ours and we could write an extension to export our data into your format. If you'd like to send me a message at jacob.a@starleaflabs.com we can work together to come up with a solution that works for the both of us.

    I think our tools cover different aspects of the voxel spectrum, where yours is about building terrain volumes and ours is about model generation. Thanks for getting in touch with us!
     
  9. SirStompsalot

    SirStompsalot

    Joined:
    Sep 28, 2013
    Posts:
    112
    I'd be very excited to see the two systems work together somehow. I for one am really eager to see existing meshes updated at runtime, as I'm sure Jacob knows. ;)
     
  10. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    The 1.2 version has been approved and is now available on the Asset Store! The new Mesh Simplification is worth the download alone!
     
  11. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    Shot2.png Version 1.3 has been published to the Asset Store and is available right now! Major performance updates, real time rendering, and import of .vox and .qb files. Download your copy today and start building!

    Update Notes - v 1.3.0
    • Added the ability to import .vox and .qb files to your selected sub-object. There are two options available in the Options toolbar that allow you do define a max number of voxels per sub-object to prevent breaking the 65000 vertex mesh limit.
    • Created a Voxel Data Renderer component to render your data real time.
    • Added the ability to deconstruct a Voxel Data through each voxel.
    • A monkey snuck back in and purposefully changed words in the previous release notes. He has been dealt with.
    • Added a button to the top to show the bounding boxes of the meshes.
    • Cleaned up some of the Undo code for performance.
    • Only calculate the duplicate vertices and mesh simplification when baking the final mesh.
    • Massive performance update. This includes changes to the Voxel data structure, which should automatically update.
    • Rearranged the toolbar to better use a thinner inspector window.
    • Moved the voxel, vertex, and triangle counts off the Name of an object and put it in a sub menu to help with clutter.
    • Changed "Save Mesh" to "Bake Mesh to Save Location (.asset)".
    • Changed "Create Game Object" to "Create Game Object from Baked Mesh (hierarchy included)"
    • Added the tool "Export Data to JSON", which can be used with real time mesh rendering.
    • Added the tool "Create Real Time Game Object" to create a real time object with the hierarchy intact and the extra renderer necessary to generate the object in real time. This requires you to export the data to .json and place it within the Resources folder.
    • Updated the Shaders to write to the depth buffer properly and allow for effects like SSAO and Depth of Field.
    • Changed the Direction enum to VoxelDirection to not interfere with other Assets like NGUI.
    • Added a Version text to the Options toolbar.
    • Added a progress bar for baking meshes. Especially useful for large voxel creations with multiple children.
    • Removed the ProfileTimer class as that was used originally for debugging when the internal Unity profiler couldn't give the necessary info.
    RealTimeRendering.png
     
    Last edited: Feb 7, 2015
  12. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    633
    Hi! Great asset! :D I was wondering if this was possible yet? I would like to place voxels on my terrain in-game.
     
  13. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    Hi BlueIvy! Thanks for your interest here! RealTime rendering does currently work in 1.3. What kind of functionality are you looking to work with? Can you give me an example of what you are looking to do?
     
    blueivy likes this.
  14. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    633
    I wanted to build voxel structures on non voxel terrain, my terrain is made with world composer. Is that possible?
     
  15. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    Yes, you should be able to accomplish that. You will have to write your own interface into the real time editor, but there is basic functionality to add/remove voxels into an object. Contact me privately and I can send you an example scene where there is the bare bones working properly. You can expand upon it from there as well as request other features if you need them.
     
  16. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    633
    Ok, I sent you a PM :D Also is this picture showing that voxels can be destroyed?
     
  17. Jacob-Aldridge

    Jacob-Aldridge

    Joined:
    Feb 26, 2009
    Posts:
    120
    Yes, that was the intention really of the real time voxel editing was that I wanted to be able to destroy an area of voxels and have them affect the model.