Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Voxeland - Voxel Terrain Tool

Discussion in 'Assets and Asset Store' started by Wright, Jun 25, 2013.

  1. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    I do have the same issue on DX 11. Would like to see it resolved :)
     
  2. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    aha, I see, it really exists. Something wrong with tangents, I guess. I'll find out and fix the bug. Thanks for the feedback!
     
  3. Taryndactyl

    Taryndactyl

    Joined:
    Jan 26, 2013
    Posts:
    16
    Is it possible to change resolution of the voxels, say, to add smaller details?
    And maybe add different editing shapes and sizes so it's not always a perfect cube?

    Also, anyone else who has this, if you're interested in helping me convert it to C# that would be awesome!
    An amazing engine, but I'm not a fan of UScript!
     
  4. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    These voxels are like pixels in a raster image. It is not possible to add pixels between pixels, and the same is in Voxeland. You can scale your terrain down to make voxels smaller, but they will be smaller all over terrain.

    I plan to make sphere-like brush along with a cube one.

    I guess you need C# version for calling voxeland functions from your C# scripts. You can do it without converting - you can call javascript functions from your c# files. The only requirement - Voxeland should be compiled first, so it has to be inside Standard Assets folder.
     
    Last edited: Sep 3, 2013
  5. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    So, i can use your tool for creation floating islands arround a procedural planet?
     
  6. Jake398

    Jake398

    Joined:
    Aug 31, 2013
    Posts:
    1
    I'm not sure if this has been asked yet, and if it is I am sorry but is it possible to make randomly generating terrain with this? If so how would you do it? This is a awesome tool too!
     
  7. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    ZJP, hmmm, maybe. Don't know how it is connected, however. "Voxeland terrain could be modified and updated both in editor and in-game in realtime" states that you can sculpt terrain not only in editor, but in a game in playmode. "A terrain collision mesh is generated along with a render mesh" says that terrain has a collider, which is generated with a visible mesh.

    Jake398, thanks! There is no terrain generating tool at this moment. Terrain has to be created manually now, like a standard unity terrain. But this tool is under development now, right this moment actually ) It will be ready to next version, so stay tuned!
     
  8. Tiki

    Tiki

    Joined:
    Mar 3, 2013
    Posts:
    299
    Hello,

    You're engine is superb, and so inexpensive, it was a great buy. Me and a small group of people I'm building are using this to speed up the process of creating our own voxel base for a game. I've already included your code for land generation and erosion, and I've been dissecting the code as best I can, as we are trying to create (essentially) a c# version. I may be interested in supplying you with the source for the C#, but we can talk about that later if we accomplish it.

    I have a question: Is there a particular place inside the code where we could simply insert coherent noise values from an array (i.e. Vector4 array with the 4th being the noise value), essentially allowing us to run our own algorithms through your lookup tables and render process?
     
    Last edited: Sep 6, 2013
  9. GXMark

    GXMark

    Joined:
    Oct 13, 2012
    Posts:
    514
    I purchased this great terrain tool. It has massive potential and although at the moment i'm working on other aspects of my game i am in the same thinking of converting it to c sharp. I wish the author of this product took the leap of faith and abandoned javascript. I think in the long run its going to be harder and harder to convert if its left too long.
     
  10. Tiki

    Tiki

    Joined:
    Mar 3, 2013
    Posts:
    299
    It seems there are a large number of us looking into converting it, likely it will happen by community hands. Although the JS isn't that bad thanks to some universal unity keywords.

    I have another question Wright, what is this equation determining? How does it work?

    z*sizeY*sizeX + y*sizeX + x
     
    Last edited: Sep 7, 2013
  11. GXMark

    GXMark

    Joined:
    Oct 13, 2012
    Posts:
    514
    Tiki - Not saying the javascript not written well.

    Was going to ask something around performance of this terrain engine. Does your fan or cpu work intensely hard when you run the demo scene, even though draw calls seems ok.

    If so, wondering if you have pinpointed the potential culprit routine causing this?
     
  12. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    Tiki, are you trying to set the blocks with a noise pattern, or you going to shift the final vertices of the mesh?

    VoxelandData uses one-dimensional array of blocks instead of three-dimensional. Three-dimensional one could not be serialized, and one-dimensional works even faster (according to what Eric5h5 said there).

    Another reason to keep Voxeland in javascript is backward compatibility. To switch to c# all js files should be removed and new cs files should be created. In this case all the users who got their scenes made and land created will get "Missing mono behavior" error, and I am not sure that a terrain data will remain.

    GXMark, when the terrain is not changed it behaves like a standard unity mesh (with a tiny overhead on drawing highlight). You can convert demo terrain to meshes with "bake" function and make a benchmark to verify this. Maybe your hardware works at full power because there is no v-sync, and the fps is not limited.
     
  13. GXMark

    GXMark

    Joined:
    Oct 13, 2012
    Posts:
    514
    Thanks for the advice i will check to see if this improves this issue.

    When is the next release date likely to happen?
     
  14. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    New octree data structure is ready, and the land generator is about finished. Next big task is to re-write ambient to exclude it from data and make it switchable off to speed up process (as far as I know many users do not need it). I plan to finish it this month.
     
  15. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    Interesting, so what are you doing with the octree? Is it for storage of the data or management of the meshes? In Cubiquity we store the voxel data as compressed chunks on disk (no octree) but we do use an octree for organizing the meshes in a hierarchy for occlusion culling and other purposes. Are you doing something similar here?

    Anyway I'll look forward to seeing it in action.
     
  16. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    Octree in Voxeland is used to store voxel data - it dramatically reduces the data size - up to 10x times. And the other octree positive feature - it gives an ability to work with data directly. No need to decompress data and waste memory for keeping decompressed array. You can get blocks directly from an octree. Love it )))
     
  17. Guideborn

    Guideborn

    Joined:
    Jun 15, 2013
    Posts:
    231
    Is anyone else having an issue where the voxel terrain automatically separates into small, adjacent pieces?
     
  18. Tagaris

    Tagaris

    Joined:
    Apr 21, 2013
    Posts:
    15
    I just recently purchased this asset and I'm very satisfied from what I've seen. I'm a mere hobbyist but you've got my greatest appreciation for this great package!

    Since it was mentioned before in this thread: A basic multiplayer feature was quite easy to implement into this engine (however I'm still looking into synchronizing save/load full maps on reconnect since so many buffered RPC requests are very slow when reconnecting while the game is running). I'm looking forward for the next update you mentioned, because a reduced data size is most propably very helpful when synchronizing save games over network.

    The very easy inclusion of prefabs as part of the landscape was the main selling point for me (compared to Ruaumoko). However, at the moment I'm struggeling on how to reimplement the selection/highlighting of custom meshs that can be seen in the demo. Does anyone know how I can make the highlight pointer select custom meshs again?
     
    Last edited: Sep 14, 2013
  19. Tiki

    Tiki

    Joined:
    Mar 3, 2013
    Posts:
    299
    Yes, I'm trying to set up a button that will generate terrain based on a noise array generated with libnoise.
     
  20. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    I just wanted to post that Voxeland looks really interesting but that Javascript is a dealbreaker for me. As my project has gotten larger and I've had to modify the code in all the assets I'm using, trying to mix Javascript and C# has just become too much of a chore. If there was a full C# version I would definitely check it out. I figure there are a lot of other devs out there who are also getting tired of the dependency issues mixing both languages who might be convinced to buy if there was full C# support.
     
  21. trudeaudm

    trudeaudm

    Joined:
    Apr 17, 2013
    Posts:
    116
    Can this be used to create spherical terrains? IE planets and asteroids?
     
  22. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    Tagaris, thanks! I will return highlighting prefabs collision aabb in next version.

    Tiki, it seems you are talking about automatic terrain generator feature. In new version it will be possible to create terrains using noise and erosion algorithms.

    makeshiftwings, right now I have no plans of c# version, but to much people asking it. I'll think about it, a bit later...

    trudeaudm, yes, you can create spherical terrains. You can set all border voxels to unfilled with "Cap sides" feature, this will close all side caps and turn your terrain to a cube instead of a plane. Then the corners of the cube could be digged to form your asteroid.
     
  23. slipmat

    slipmat

    Joined:
    Aug 28, 2013
    Posts:
    1
    Hi
    I was looking to create a solid 3d block and then tunnel into it to create a cave system..
    I down-loaded this App last night and after following the instructions all I can create is a flat surface and not a 3D block as in the tutorial video.
    I worked out that I needed to cap the sides but when i dig through the capped side, it's just hollow inside.

    Can you get me pointed in the right direction as to what I might be doing wrong ?

    Thanks
     
  24. sefou

    sefou

    Joined:
    Aug 30, 2011
    Posts:
    287
    Hi slipmat,

    for creating a solid 3d block , you must click Cap sides AND Cap bottom.
     
  25. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    slipmat, strange. That should work without any problems, I will check it this evening. Try increasing cap bounds. Set it to 4 instead of 3 - will a bug remain?
     
  26. cl-apps

    cl-apps

    Joined:
    Mar 16, 2013
    Posts:
    128
    Voxeland used to work perfectly on my iOS project but now I have upgraded to the latest version which looks amazing on Desktop now imports with a ton of javascript errors like:

    Assets/Voxeland/Scripts/Voxeland.js(647,14): BCE0005: Unknown identifier: 'i'.
    Assets/Voxeland/Scripts/VoxelandData.js(580,17): BCE0005: Unknown identifier: 'newBlocks'.
    Assets/Voxeland/Scripts/VoxelandData.js(582,17): BCE0005: Unknown identifier: 'newExists'.
    etc...

    Any ideas on how to fix this?
     
  27. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    slipmat, I've checked digging from sides and it seems to be working. Not a trace of a bug. Could you please send a screenshot and a detailed bug description?

    cl-apps, I'll look into it, I guess I know what causes the bug. If you dont mind - send me a log file (or quote the voxeland errors from it) as a pm or via email please. Thanks in advance!
    Log file could be found in ~/Library/Logs/Unity/Editor.log on mac
     
    Last edited: Sep 21, 2013
  28. cl-apps

    cl-apps

    Joined:
    Mar 16, 2013
    Posts:
    128
    Email on its way...
     
  29. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    Good news. A new big update is ready. I'm testing it and adding new features to documentations now, and it will be submitted to unity in a couple of days. New features:

    - new octree data structure. Data size is significantly reduced. Along with dynamic rebuild feature it gives a possibility to create large terrains. Please make a backup copy of your data file before switching to new version.
    - automatic land generator. You can create your own land using various noise and erosion algorithms.
    - pseudo-spheric brush shape. You can choose volume brush in shape of sphere instead of standart cube.
    - smoothing brush. Ctrl-clicking on terrain with volume brush will smooth terrain blocks.
    - new Additional Ambient algorithm. It works faster and does not need data to store ambient values. If you do not need Additional Ambient you can turn it off now to speed up chunk building a bit.
    - different type of mesh vertices normals: very crisp, crisp, mesh, smooth. "Crisp" normals take normals from an un-smoothed cubical land, "mesh" normals are generated as standard mesh normals, and "smoothed" smooths terrain vertex normals.
    - tangent fixes for better bumped textures display
    - you can choose if you want faces at the sides of your terrain ("Cap bounds") on terrain creation.
    - android and iphone build fixes (thanks cl-apps!)

    If someone would like to get an early access to take a look at a new version - let me know with pm or email. I will gladly give it to you in exchange for a future bug-report ))
     
  30. sefou

    sefou

    Joined:
    Aug 30, 2011
    Posts:
    287
    Great news. PM sended. ;)
     
  31. Bjoern_Christian

    Bjoern_Christian

    Joined:
    Oct 27, 2012
    Posts:
    2
  32. sefou

    sefou

    Joined:
    Aug 30, 2011
    Posts:
    287
    Hi Wright,

    with new update voxeland , i have this weird thing :

    directional light with hard/soft shadow

    Additional ambient On checked


     
  33. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    Thanks for feedback, sefou, I'll look for the cause of the problem.

    And I have a small request - to all who got 2.0 beta - could you please email bug reports. Just not to litter the thread with information about un-released version.
     
  34. shwa

    shwa

    Joined:
    Apr 9, 2012
    Posts:
    461
    Alot of those new features sound great.

    How much larger can the terrains be?

    auto land generation. Yes!
     
  35. Scooterman

    Scooterman

    Joined:
    Oct 1, 2013
    Posts:
    11
    Hi Wright,

    I'm too, thrilled for the new version, as memory allocation is one of my biggest concerns right now, but I have another question for you: It's possible to create and edit the terrain programatically in an axis that's not on x/z? I'm looking specifically for x/y (for a pseudo 2d game I'm working here, imagine that your z is my y right now).

    The reason for the question is that the chunks are splitted in x/z blocks so having a huge Y only creates only one mesh for that chunk, which is sub-optimal and ends with a lot of warnings.
     
  36. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    shwa, the biggest terrain I've tested is 4096*4096*512. It works and even could be auto-generated, but dynamic build works too slow for some reason. Now the only thing that keeps me from publishing a new version is large terrain performance.

    Scooterman, I did not expect someone will use swapped axises. The best advice in your case is rotate the terrain on 90 degrees by X axis, the only minus is that it will not work. The terrain could not be edited that way, and I'll add it to bug list that should be fixed in next version.

    And thanks everyone who pmed me and requested beta, I'll send you a new one after a while, right after I'll fix dynamic build lags.
     
  37. bocs

    bocs

    Joined:
    May 9, 2009
    Posts:
    412
    did you miss my PM?
     
  38. shwa

    shwa

    Joined:
    Apr 9, 2012
    Posts:
    461
    Hi Wright,

    " the biggest terrain I've tested is 4096*4096*512.
    It works and even could be auto-generated, but dynamic build works too slow for some reason."

    Good size. Is this a terrain that is pre built?

    What is dynamic build? as in on the fly while the user is in the world?

    tx
     
  39. Scooterman

    Scooterman

    Joined:
    Oct 1, 2013
    Posts:
    11
    Wright, I managed to make it work by rotating only the meshes.
     
  40. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    No, no, I see all the pms, but for now I am fixing the bugs that are known for this moment.
    shwa, terrain data (ie block structure) is made once for all the terrain, but terrain meshes are build only when the camera comes close to them. And this is the dynamic build.

    Scooterman, great! You've rotated only the chunk meshes, not the whole Voxeland, right?
     
  41. UberClocked Ent

    UberClocked Ent

    Joined:
    Jul 24, 2013
    Posts:
    1
    I've been following this tool for a few weeks now and so far like what I'm seeing. I do have to ask though, as to your current problems:

    It seems to me that in any voxel engine, loading chunks as the player nears is best. I noticed the engine effectively has a max map size. What is holding it back? Can you not simply completely unload all physics related to a chunk if the player is far enough away? I don't pretened to know how your engine works, but it seems that there is something being updated in far chunks that doesn't need to be.

    That said, your dynamic build problems. Have you tried asynchronous loading? I believe you can get away with loading data in another thread and just not touching it until a bool is unlocked. Or is it the collider generation you are having trouble with?

    I've had an interest in voxel engines for some time, due to the interesting techniques usually needed for a decent framerate. I built one myself once in XNA, but I couldn't get the help I needed to reduce data transfer to the shader. That said, I have implemented dynamic loading in it, so I can help with that. Maybe through discussion, solutions can be reached.
     
  42. HertzWhnIP

    HertzWhnIP

    Joined:
    Aug 11, 2013
    Posts:
    4
    Can you point me to a tutorial showing how I can synchronize Voxeland data between multiple networked players using a server? So if someone digs up an area on their client version that area is shown dug up on all other players as well.

    Thanks
     
  43. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    That is exactly what dynamic build do. And it does not update far chunks. Actually, when camera comes away far chunks are destroyed, so they could not be updated.
    I'm experimenting with calculating meshes in a separate thread. It can really give nice performance results.

    HertzWhnIP, I'll add scripting faqs to documentation. Briefly it is the matter of setting blocks with scripts - blocks are set by Voxeland.SetBlock or Voxeland.SetBlocks function - it should be done on packet receive. And the packet should be send from adding a call to our net component from Voxeland.SetBlocks function (or along with calling SetBlocks if you change blocks by script yourself).

    To all who sent pms: check out your inbox, there should be a link to new beta.
     
  44. mryan150

    mryan150

    Joined:
    Feb 21, 2013
    Posts:
    6
    A while ago, their was a part of the script that let us have discs, instead of spheres, I was wondering if you could add this back in, as it helped shape the terrain more than just having the sphere does. Also, Would it be possible to change the brush size modifier, to maybe have two sliders, one that changes the width of the shape, and one that increases the height, because when you increase the size now it adds to both, and sometimes I want to increase one or the other.
     
  45. sefou

    sefou

    Joined:
    Aug 30, 2011
    Posts:
    287
    Hi Wright,

    great update with Voxeland v2 ;everything work fine except this weird thing when I use Land Shader : Voxeland / TerrainAmbient Only

    Unity 4.2 use Direct3D 11.

     
  46. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,265
    New version is available for download (as some of you may see) - thanks Unity for fast review! Version 2 features:
    - new octree data structure.
    - automatic land generator.
    - new data features: resize, offset, merge with offset, save and load to txt file.
    - pseudo-spheric brush shape.
    - smoothing brush.
    - new Additional Ambient algorithm.
    - different type of mesh vertices normals: very crisp, crisp, mesh, smooth.
    - tangent fixes for better bumped textures display
    - you can choose if you want faces at the sides of your terrain ("Cap bounds") on terrain creation

    sefou, this shader is like terrain4, but it has grotesque ambient. It is used mainly for debug purpose, and I'd like to recommend you using terrain4 instead as ambient-only shader will not be available in future versions.

    mryan150, personally I don't think that it was useful and user-friendly algorithm, it was not a disk but some tecnically correct but amorphous form. Some considered it as a bug. I'll think about returning of a modified algorithm back.
     
    Last edited: Oct 9, 2013
  47. tiggus

    tiggus

    Joined:
    Sep 2, 2010
    Posts:
    1,240
    This looks very interesting, curious how easy would it be to do something like smooth roads using a brush and custom texture/substance?

    Edit: Just got this and it is great

    I see there is a substance archive included for creating tiling textures but despite modifying the x,y,and blend I still seem to get lines in my terrain. Can you share the substance source file so I can add the atlasing directly to the substances I am using?
     
    Last edited: Oct 9, 2013
  48. FatalNickle

    FatalNickle

    Joined:
    Jul 27, 2009
    Posts:
    37
    Where am I supposed to get updates? Ive had voxeland for awhile now, can't seem to find anywhere to update.. Developer doesn't email me back.
     
  49. tiggus

    tiggus

    Joined:
    Sep 2, 2010
    Posts:
    1,240
    For what it's worth there is a version released yesterday on the Asset Store.
     
  50. shwa

    shwa

    Joined:
    Apr 9, 2012
    Posts:
    461
    v2 demo scene crashed my mac osx 10.7.4 unity 3.5.7 pro.

    demo scene worked in unity 4 pro, but terrain kept rebuilding itself as i moved around in authoring.