Search Unity

Voxeland - Voxel Terrain Tool

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

  1. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Lacuna Corp, paulojsam,turning "Infinite" toggle in settings will make terrain generated on-the-go. The generated size of such a terrain could be far more than 512, but only the small part of it (within "Build Distance" value) will be displayed. Terrain has 4*4 km data and build range of 100 works pretty well on average pc.

    cjrussel14, right now I'm focused on Unity 5, but I've got requests to make Voxeland 4 for Unity 4.6, so most probably I'll undertake it.

    hopeful, got your screen and specs, will try to find out what's that. Could not reproduce it yet on any pc my colleagues or me have access to.
     
  2. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    The first black artifact I see is when the demo starts, if I pan about 30 degrees to my right. So if the tunnel light that is featured in the opening frame is in the center of the screen, then the artifact is on the mountain slope near the upper right corner.

    UPDATE: I noticed my graphics driver was old, so I updated it, but no change in the demo.
     
    Last edited: Mar 23, 2015
  3. sefou

    sefou

    Joined:
    Aug 30, 2011
    Posts:
    287
    Hi wright ,
    i use win8.1 , Ati radeon with graphic driver updated.
    here these artefacts :








     
  4. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    Just curious, @sefou, do you see a black square in the area I've indicated near the start?
     
  5. LacunaCorp

    LacunaCorp

    Joined:
    Feb 15, 2015
    Posts:
    147
    I get around 90-100FPS on a 512 terrain, with 1024 textures and normal maps being used. This is in the editor as well, so it's really fast at runtime. The only time Voxeland is slow is in the editors, but once it loads up it's great for performance.
     
    colinfizgig likes this.
  6. sefou

    sefou

    Joined:
    Aug 30, 2011
    Posts:
    287
    hi hopeful,

    sure ; this :

     
  7. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    Yup, that's the one!
     
  8. colinfizgig

    colinfizgig

    Joined:
    Feb 20, 2015
    Posts:
    9
    yeah I added two fields to the editor window that allow me to generate the ray for editing so I can apply it to anything. In my case its an arm you'll hold out in front of you. Works well. I seem to have a memory leak in my hacked build for 5. It plays well at first but the frame rate progressively degenerates. I'm still trying to debug the issue. When do you think you'll release version 4? It looks amazing!
     
  9. colinfizgig

    colinfizgig

    Joined:
    Feb 20, 2015
    Posts:
    9
    that development build is amazing! so smooth.. no breaks! or stutters! I was editing and walking at the same time.. Best terrain generator I've seen bar none. Please tell me it'll be available soon so I can pimp it out with 5 stars!
     
  10. colinfizgig

    colinfizgig

    Joined:
    Feb 20, 2015
    Posts:
    9
    for what its worth I'm not seeing the black patches on my system (Win 7, Nvidia gtx 960 ) could it be an ATI problem? I'm also running in forward rendering path.
     
  11. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    I have the pleasure to inform you that all the bugs found in v.4 were fixed (I'd like to thank sefou and hopeful for testing my numerous build) and new version was sent to Unity. Usually it takes about a week for review, then it would be available on Asset Store.
     
  12. colinfizgig

    colinfizgig

    Joined:
    Feb 20, 2015
    Posts:
    9
    This is fantastic news. Thanks so much for your dedication to this awesome tool.
     
  13. rpg_gamer

    rpg_gamer

    Joined:
    Nov 28, 2012
    Posts:
    214
    Hi there, I am having some trouble getting voxeland to generate infinite terrains. "Infinite" is checked on the voxeland terrain, but only one 512x512 chunk of terrain gets generated, when the character in the demo walks to the edge of that terrain, it doesn't load any other chunks like it should, (is just one large cube of voxel terrain).

    I was under the impression voxeland supported "infinite" terrain, by loading up more chunks within the player view distance correct? If i'm missing something, I didn't quite see it in the docs..

    Thanks!
     
  14. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    That's right. The demo on this page demonstrates new upcoming version 4, which has dynamic terrain generation. This version is ready and waits for Unity review. Everyone who bought v.3 can get free upgrade soon.

    Dynamic terrain generation and dynamic terrain build should be distinguished: terrain build just prepares already generated terrain for display, it does not creates any terrain data, just meshes (it is a blue gauge in demo). Generation creates new terrain data, applies noise and erosion, which could be never shown to player until the chunk with this data is build (it is "please wait" message in demo). Voxeland v.3 can handle almost infinite terrains by building only the part of it - but this part should be generated manually. That 500*500 cube is a generated terrain, to generate more see "Generator" foldout.
     
  15. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276

    New Voxeland v.4 is now available on Asset Store. Enjoy )​
     
  16. cjrussel14

    cjrussel14

    Joined:
    Jun 20, 2014
    Posts:
    69
    hoping for 4.6 compatibility :)
     
  17. sefou

    sefou

    Joined:
    Aug 30, 2011
    Posts:
    287
    Voxeland v.4 work perfectly with Unity 4 6 3.
     
  18. sefou

    sefou

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

    how to control individually each triplanar tile ?



    Thanks.
     
  19. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    sefou, Unity Asset Store has now a compatibility check: it allows you to download only those assets that were submitted from the same or older Unity version that you have. Voxeland v.3 was submitted with Unity4, while v.4 was submitted with Unity5. Such a policy confuses a lot, I know, and I don't even see a way to remove an older version from Asset store.

    So yoг are using previous version of an asset - that's why it works so perfectly with older Unity. V.4 does not have Materials foldout, all material settings set in type. And it uses per-type triplanar tile, it is unique for each texture.

    Important: to get the latest version of Voxeland asset download it from Unity 5 Asset Store. You will get v.3 when download asset from Unity 4.6
     
  20. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    Wow, just checked out the demo, sweet!
     
  21. Nuclear-Mosquito

    Nuclear-Mosquito

    Joined:
    Aug 30, 2013
    Posts:
    4
    I saw this being used by a level designer for Subnautica. Looks like an awesome tool. Is there a trial version for this? I'd like to buy it, but I don't know if it has all the features I want from a voxel engine.
     
  22. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Don Gray, thanks )
    Nuclear Mosquito, I saw Subnautica's terrain out of the corner of my eye, I've got the impression that it's fine. Are you going to switch? :) Check my PM
     
  23. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    New version (v4.01) with few minor fixes is available on Asset Store
     
  24. AlexGT

    AlexGT

    Joined:
    Apr 11, 2015
    Posts:
    1
  25. colinfizgig

    colinfizgig

    Joined:
    Feb 20, 2015
    Posts:
    9
    I'm running into a difference in rendering in shadows between Forward and Deferred rendering. Shadows are very dark in forward but render as expected in deferred. This wouldn't be a problem except I'm using the Leap Motion controller which overlay's its image in deferred mode. (I'll see if I can change this functionality), but I'm wondering if the plugin should render the same in forward or deferred? The shadows are extremely harsh and black in forward and nothing I do in terms of lighting will change that.

    As far as my testing with voxeland in general. This latest version is absolutely fantastic. On good quality render settings with Medium shadows and 2x antialiasing, I'm getting 860fps without vsync on in Unity 5 with realtime GI and Shadows.

    I highly recommend this asset to anyone wanting realistic voxel terrains.. or even just very cool well done terrains!

    for those looking to compare performance here's my system stats.

    Windows 7
    nvidia GTX 960
    8gigs Ram
    Intel i7 920 @2.67GHz

    Thanks again Wright for the amazing work and continued support.

    Edit: I figured out the Leap video in Deferred Rendering problem. There's a plane the video is displayed upon for each eye in the Oculus Rift Setup. So I just disabled each plan and now the image is clear. So don't waste your time trying to get the terrain to render shadows the same in the Forward rendering path. Unless you think its important.
     
    Last edited: Apr 11, 2015
  26. kzaurckichz

    kzaurckichz

    Joined:
    Nov 5, 2013
    Posts:
    52
    Hello people of the Voxeland planet !
    I am making a multiplayer space sim with seamless planet entry and I needed a terrain generator for my planets.
    Unity standard terrain as well as other terrain assets do not work for me since we can not apply a rotation on the terrain to go around the planet.
    I bought this asset and after messing with it it works perfectly except two things that I think should be easily fixable on my side.

    1. If I put the Voxeland GameObject inside an empty GameObject, When rotating this parent gameobject after the generation it works but if I rotate it before completing the generation the rest of the terrain generates on global axis on top of existing rotation of other terrain chunks which is really weird.
    Is it possible to make it generate the terrain on the local rotation instead of the global ?

    2. Can`t seam to be able to Bake to Assets. It says :
    Couldn't add object to asset file because the Material 'Voxeland_Chunk0' is already an asset at 'Assets/New folder/Voxeland_Chunk0.mat'
    UnityException: Creating asset at path Assets/New folder/Voxeland_Chunk1.mat failed.

    Thank you for your help.
     
  27. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    AlexGT, Voxeland uses resemble algorithm to generate ambient occlusion. But it does not use this approach for the direct lighting as this algorithm cannot display bump maps.
    To cast ambient occlusion shadows Voxeland uses not only propagate algorithm, but a slightly more complicated method of initial ambient light cast and blur. Maybe someday I'll make myself to write a similar article about Voxeland ao.

    coinfizgig, thanks for your report, ambient really darkens in forward rendering path. This is important, I will fix this for the next version.

    kzaurckichz, Voxeland object could not be rotated, as well as standard Unity terrain. And speaking about baking error this is fixed, but will be available only in next version. If you need a quick fix you can comment out lines 811 and 812 of VoxelandEditor.cs (starting with if... and AssetDatabase...). It is a legacy from older versions of Voxeland and is not used in v.4. However if time is not critical it is better to wait for the new version.
     
  28. kzaurckichz

    kzaurckichz

    Joined:
    Nov 5, 2013
    Posts:
    52
    How do you define the offset at which the terrain generates procedurally ?
    Let me explain :
    I can set a seed so the terrain generates exactly the same way every time.
    If I walk too far a new chunk generates and follows the same logic and will attach perfectly with the first one.
    If I want to Appear directly at a specific chunk instead of the first generated chunk, how do I do it ?

    For example the chunks are 300 blocs long, if I set the offset position to 300 instead of zero, I'd like to immediatly generate the next chunk directly instead.

    If this can't be done, then I must think there is at least a way to do it with premade heightmaps so that I can choose my heightmap based on where I am on the planet.
    But the heightmap texture option doesn't seam to work, I get errors and a really weird map, also how do I define the x and z proportions relative to the chunk, is it to be used for an entire map and how do I set the size ? Or is it supposed to match One chunk ?

    Basically for my planet terrain system I can live with a completely flat terrain if I simply rotate the universe around it instead of rotating the planet itself, but I need a way so the map stays consistent with where I am on the planet, and also it needs to stay consistent between different players since it is a multiplayer game.
    I don't even need the voxel but it's a bonus if I want to use it some day..

    Thank you.
     
  29. bobobaribu

    bobobaribu

    Joined:
    Mar 6, 2015
    Posts:
    4
    Hi there,

    Very nice work on this asset, specially in v4, well done!

    Questions:
    1) Are you planning on having implementable generation via a script? (Ex: Create a class that derive from BaseGenerator in a script and drag it in the generator inspector)
    2) Same with the Block types, have some implementable block type to be able to customize block types behavior?

    The main reason these features would be nice is to avoid to have to work directly in your code to change generation and block types behavior to be able to maintain updates of your versions.
     
  30. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    kzaurckichz, you can teleport in any point in the scene immediately, and terrain will generate and build chunks at your new location. There is no need to generate all the way from your old location sequentially.
    And when you will travel back by land newly generated land will weld accurately with the old area.
    Texture load available only on limited terrains, where auto-generation does not work.

    bobobaribu, currently I'm working on generator plugin that will work both with Voxeland and standard Unity terrain, and I will try to make it expandable via scripting.
    But speaking about block types - they are heavily wired with Voxeland chunk building algorithms, and I cannot imagine features that could be implemented using side scripts. Most probably that script expanding there will not work. Thought, what block features would you like to script?
     
  31. kzaurckichz

    kzaurckichz

    Joined:
    Nov 5, 2013
    Posts:
    52
    I'm sorry but you did not answer any of my two questions correctly, perhaps you didn't undestand me well.

    1. "How do you define the offset" By that I mean how does your system knows which chunk offset to generate ?
    Is it the player`s Global Absolute Position ? Is it the player`s position relative to the chunks global or local position ?
    Because I am not using Unity like any other game since it a space sim and that I am making planets bigger than single precision floating point positions, thus I am floating origin methods and the Universe is actually moving around the player, so I need to figure a way to make it work with your terrain system by defining this offset somehow maybe in a script...

    2. "how do I define the x and z proportions relative to the chunk" for heightmaps, how does the actual matching work ?
    And also I get errors in the console, I followed the documentation which was simply saying that it needs to be Limited size and it was, and also about the correct texture options..

    Here is the error I get (every frame after clicking on Generate) :

    IndexOutOfRangeException: Array index is out of range.
    Voxeland.Chunk.CalculateTerrain () (at Assets/Voxeland/Scripts/Main/Chunk.cs:561)
    Voxeland.Chunk.Process () (at Assets/Voxeland/Scripts/Main/Chunk.cs:89)
    Voxeland.VoxelandTerrain.Display (Boolean isEditor) (at Assets/Voxeland/Scripts/VoxelandTerrain.cs:677)
    Voxeland.VoxelandTerrain.EditorUpdate () (at Assets/Voxeland/Scripts/VoxelandTerrain.cs:332)
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorApplication.gen.cs:268)
     
  32. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Voxeland uses absolute camera position in world coordinate system.

    One pixel of heightmap matches 1 block of voxels.

    I've just tested heightmap loading and could not reproduce the bug. To make sure that you are using the latest Voxeland version please update it from Unity 5 Asset Store.
     
  33. kzaurckichz

    kzaurckichz

    Joined:
    Nov 5, 2013
    Posts:
    52
    I have the latest version.
    Maybe the bug is due to the fact that my heightmap is not the same size in pixels as the number of blocks...
    If that's what's causing the errors, maybe you should specify it in the documentation, as well as how it is matched.
    Thank you.
     
  34. gastrop0d

    gastrop0d

    Joined:
    Jun 7, 2014
    Posts:
    2
    I've been experimenting with the latest version of Voxeland in Unity 5 and am having difficulties with the ambient lighting:



    Is there a way to add the ambient levels to Voxeland?
     
  35. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    kzaurckichz, terrain and heightmap resolution may not match, and even in this case heightmap should be loaded. Please send me your scene with Voxeland object only and your heightmap at mail@denispahunov.ru

    gastrop0d, in order to use voxeland ambient switch rendering path to deferred lighting. Ambient with forward rendering will be available with next update.
     
  36. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,327
    I tried the version 4 webplayer and there are still hiccups when sculpting the terrain but they are less noticeable, so congrats for optimizing.

    Are voxel volumes bound to camera distance or can this be turned off?

    I'd like to use voxel volumes as normal objects, so wish to translate and scale them non uniformally, will things break?
     
  37. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Voxeland has two display modes: one for infinite terrain, which builds chunks in around the camera, and one for limited terrain. In last case chunks are building around terrain center.

    As well as standard terrain, voxeland objects could not be rotated or scaled.
     
  38. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,327
  39. catalys

    catalys

    Joined:
    Dec 29, 2014
    Posts:
    6
    Did someone manage to make a biome generator though?
     
  40. bobobaribu

    bobobaribu

    Joined:
    Mar 6, 2015
    Posts:
    4
    Thanks for the fast reply,

    It's good news for the generator, I'll watch for updates ;)

    For the block types I wanted to implement water block types, but I might have another idea on how to do it and I can always use the prefab events/scripts. I wasn't properly understanding the difference between Data and Blocks. I was thinking of Events triggers (OnCreate/OnCollide...) and possible different collision adjustments. But I'm still learning how to use your terrain so it might not be an important feature for the amount of work.

    PS: Area is limited to 10k? (crashed around POS:x:0,z:10000) Can you just describe how are managed the boundaries?

    B[o
     
  41. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    That's strange. Theoretically terrain size is limited to 50 km, and this value could be increased on demand (however its not in settings yet). I'll check it.
     
  42. BalazsBalazs

    BalazsBalazs

    Joined:
    Oct 7, 2013
    Posts:
    8
    Great job, I will buy soon. :)
     
  43. BalazsBalazs

    BalazsBalazs

    Joined:
    Oct 7, 2013
    Posts:
    8
    I have a question about the pack:

    If I like to use this in multiplayer with infinity setting, the new sectors will be same on all client, if I use same seed code?
    (I know, that after on the generated sector I need synch all user modifications, but the basic generated terrain is always same with same seed?)
     
  44. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Yes, the generator output depends only on position and generator settings (including seed). This means that area generated at any time on any computer will be absolutely identical with the area with the same coordinates.
     
  45. cochtl

    cochtl

    Joined:
    Apr 14, 2011
    Posts:
    4
    I got this plugin the other day and it rocks! It has been super handy so far but I do have some requests:

    Would be possible to include a few brush types to further enhance the sculpting process?

    -A brush with settings to change the length, width and height of the brush itself. Basically a rectangular brush. This would be super useful to create broad thin surfaces like walls or platforms to walk on, or to add in geometry volume to a large area than what is currently possible.

    -A brush that only applies texture material settings to the selected area and nothing else. It is kind of awkward to ‘paint’ in textures once an area is sculpted or defined out. Basically a paint brush that paints in material blocks but not height volume data.

    -Being able to subtract geo volume from an area and applying the current block material to the newly subtracted area at the same time. It’s cool to add in geometry and paint texture materials with each ‘brush stroke’, I’d just like to see this applied to subtraction as well.

    -Being able to set an option to constantly update sculpting geometry on the voxeland surface. I think this would be beneficial to smoothing especially, but being able to quickly create a mass of geo and not having to constantly click on the sculpt button would make things even faster.

    Thanks and let me know what you think or what is possible!
     
  46. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    I'm thinking of a more useful thing, that will include such functionality - a stamp brush. Ability to create wall, platform or anything you want, and then clone it anywhere you want. However don't know when and how exactly it will be released, just thoughts for the future.

    Is placing block with Ctrl+Shift is what you mean?

    Sounds very simple to implement, but actually it isn't. It should be done with two iterations: one bigger brush sets blocks of a certain type, and a smaller brush digs a hole in them. It does not fit into brush system, so I think it will not be available in close future.

    Yeah, this thing also does not fit in brush system, but I've got many requests to implement it. I plan to explore this topic after I finish fixing bugs.
     
  47. cochtl

    cochtl

    Joined:
    Apr 14, 2011
    Posts:
    4
    I had no idea ctrl+shift did that ;)

    The stamp brush would be amazing to see/try out though!

    I sort of got used to constantly clicking brushes to build out areas. I just imagined myself doing lots of micro'ing in SC2 and zoned out for a bit.

    Here's what I got started on this weekend. This is actually a whole layout for half a zone area for a sidescoller game but this screen shows a small cavern area for now:

     
    hopeful likes this.
  48. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Really great use of Voxeland. Textures, lighting are great, but the most awesome thing is that your game is not another minecraft clone. I'm looking forward for the new screens from your project, and I'm eagerly insert them in Voxeland screenshots section with your logo - with your permission, of course.

    @all users: it would be interesting to know something about your projects using Voxeland. Please feel free to post your screens, info, or videos
     
  49. J_Troher

    J_Troher

    Joined:
    Dec 2, 2013
    Posts:
    42
    The only thing I didn't like about voxeland was the fact that when you begin generating a new area, it isn't seamless. It stops you and tells you to Please Wait. Granted not for long.. But still. I had sync'ed the terrain perfectly in multiplayer. But it became annoying when someone else would generate terrain, and in accordance of sending it to you would cause you to go through the same loading pause as them.

    A way around this would be a limited terrain, which Is what I wanted in the first place. But as per the documentation, the heightmap import button was never there for me. So I wasn't able to do that.

    :/ Other than that it was perfect. Though I could never get the import heightmap button to show up. Would have loved to just generate one big island with it. Oh well.
     
    Last edited: Apr 30, 2015
  50. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Heightmap import is now a part of the terrain generation process, so you can apply noise, erosion, grass or prefabs to the newly generated terrain. See "Generator -> Texture" menu section.