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. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
  2. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Twoonebe, hey, have you tried resizing create window as I wrote in a previous post? What were the results?

    Devision4, KingCorona, nice compilation of cubical engines ) Voxeland really had an ability to place a non-smoothed blocks in v2 or v3, but it's just like hummering nails with a microscope - Voxeland is not a proper tool for that, it created a lot of overhead for creating smooth mesh and then moved vertices to their cubical positions. And there were no crisp normals on the edge anyway. So this function was removed to unbind new features.
     
    Last edited: Oct 29, 2015
  3. KingCorona

    KingCorona

    Joined:
    Oct 28, 2015
    Posts:
    5
    @Wright any idea on my previous question about getting block heights?
     
  4. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Oh sorry did not notice it. You can get terrain level at a current coordinate using voxelandTerrain.data.GetTopPoint(int x, int z) function. If you want to ignore some block types (like trees) in top point calculations, you can call GetTopPoint(int x, int z, bool[] exist), where exist.Length = number of your block types. It is an array determining if block type is filled and will be taken into account during calculations (true) or it is an air block and should be ignored when placed atop (false).
     
    KingCorona likes this.
  5. rpg_gamer

    rpg_gamer

    Joined:
    Nov 28, 2012
    Posts:
    214
    using this for a project on steam, and it's great so far. Do wish there was a biome plugin or support for a more diverse terrain.
     
  6. AdanGrotesco

    AdanGrotesco

    Joined:
    Sep 26, 2015
    Posts:
    33
    Hi, i recently bought voxeland. I read de documentation, but i haver a question. How is the best way to spawn prefabs on the terrain? Like rocks, enemies, etc.
     
  7. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Just add a new block type, turn off 'terrain' and turn on 'prefab' checkboxes in block type settings and assign a prefab. Each time you will set this block type you will spawn your prefab.
     
  8. AdanGrotesco

    AdanGrotesco

    Joined:
    Sep 26, 2015
    Posts:
    33
    Yeah, but i dont know how use this for spawn arround the world, like trees.
     
  9. KingCorona

    KingCorona

    Joined:
    Oct 28, 2015
    Posts:
    5

    You only have to look at the demo scene to figure that out @AdanGrotesco..
     
  10. Feeble1

    Feeble1

    Joined:
    Jan 20, 2014
    Posts:
    19
    Hello, I noticed that in the demo, you can place a tree prefab atop another tree prefab (sort of). Are you able to place prefabs onto prefabs on the x or z axis? Like could you build a bridge of board prefabs?
     
  11. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Prefab blocks could be placed anywhere in scene (as well as terrain blocks). You can make a bridge or some simple structure from prefab blocks, but keep in mind that each prefab is a separate object, and will consume one or more draw calls if static batching is not enabled.
     
  12. Webbstre

    Webbstre

    Joined:
    Mar 7, 2015
    Posts:
    41
    I'm new to this, but I'm curious as to the status of this asset. I notice the documentation link is broken. Is it still being regularly updated? How's the support? How does it handle infinite terrain generation (as people usually compare it to, Minecraft-style infinite worlds)? Can it go unlimited in any axis? Is there a save/load system in place? How easy/hard is it to add blocks, biomes, etc? It just looks really good, but I've seen a lot of other abandoned voxel-generated world assets in the store and it's started to scare me off.
     
  13. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Voxeland is far from being abandoned. Last update was less then couple of months ago (while the plugin exists for more then two years), and the new big update is scheduled for January - roughly - it will bring Map Magic integration which is not ready yet.
    Voxeland can generate an infinite terrain in X and Z dimensions (Y is limited at bottom by the zero level). Save and load could be done with Data.SaveToByteList and Data.LoadFromByteList. Blocks are easy to add (just by clicking "Add" button), but biomes are not supported.
    Here is a doc link, and as far as I can see it works. Maybe there is a wrong link specified somewhere - could you please pm me where it is?
     
  14. Webbstre

    Webbstre

    Joined:
    Mar 7, 2015
    Posts:
    41
    Oh awesome, it sounds like this is a really good package. It looks like the links are working again (maybe it was a temporary outage when I looked yesterday). It also sounds like you've got some seriously good features working already. Does it load everything in the Y dimension at the same time within a single chunk? Or is Y also split into chunks?

    Other questions: How flexible is the algorithm system for creating terrain? Could I (for example) add floating islands and complex cave systems? Is there any support for fluids (water, lava, etc) or gasses (smoke, explosive gas, etc)?
     
  15. danicrem

    danicrem

    Joined:
    Nov 9, 2014
    Posts:
    45
    Is there a pathfinding asset that works with voxeland?
     
  16. tbg10101_

    tbg10101_

    Joined:
    Mar 13, 2011
    Posts:
    192
  17. monoion

    monoion

    Joined:
    Dec 28, 2014
    Posts:
    6
    Hello, I am thinking about getting this package but before I do...

    I want to know if the vegetation placement is generated? Or if you have to add plants manually? - if it does generate for you then does it also rotate and scale the vegetation automatically? (for more natural variation)

    Does it use GPU for rendering the terrain?

    Is this voxel system good for projects requiring constant high frame rates? -like for oculus rift where a constant 75fps must be reached (I know Other things are to be considered here but how heavy is this voxel system on resources?)

    Is the voxel system able to be used for mobile? -(that will probably answer the previous question:)

    thank you in advance for your answers
     
  18. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Webbstre, Chunk is not split in height, it is generated once from chunk's bottom to filled top point. Generation algorithm is not so flexible as I would like, that's why I want to implement Map Magic support. And Voxeland creates only static terrain, with no support for fluids.

    danicrem, tbg10101_, I have not tested A* pathfinding with Voxeland, but I've heard positive feedbacks about it. Thanks for the tip.

    burning01, you can set grass on a certain coordinates manually as well as generate it automatically. Grass meshes rotated 90 degrees at random depending on mesh coordinates - just for variation. Furthermore, you can add several grass meshes per chunk type for more diversity.
    Voxeland builds terrain using CPU only.
    Mobiles are not Voxeland's target platform. I've heard that some developers were going to use Voxeland on mobile devices, but I don't know if they succeed.
     
  19. monoion

    monoion

    Joined:
    Dec 28, 2014
    Posts:
    6
    @Wright

    So no size changes ?
    Is that just for 2D grass mesh or for other 3D models such as trees or other kinds of 3D plants?

    ok so mobiles probably a no go, that's fine I'm releasing on windows anyway but I am trying to gauge the load that your voxel system will have -- I'm developing for the Oculus rift on windows which requires a constant 75fps framerate - which mounts up really quickly even when things are optimized well.

    Perhaps you can allow me a way to try your voxel system out before I purchase? or at least give me my money back after I buy if I cant get a decent framerate with it?
     
  20. doublegumbo

    doublegumbo

    Joined:
    Oct 24, 2013
    Posts:
    53
    Quick question - can you expose the amount of the 'build progress' bar and use it as a variable? I want to use it as part of my level loading bar GUI in my next game - I don't want to have people explore the level until build progress of my Voxeland object is complete.

    thanks
    -G
     
  21. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    The build progress is exposed. I can not say the exact variable name right now (I'm away from my pc) but it is used in VoxelandController script in demo to update gauge. 'Unbuild chunks count' or something like that. I'll edit this post when I'll get var name.

    Edit: queue of unbuild chunks is voxeland.gradualQueue and initial queue count is voxeland.maxQueue. So build progress is 1f * voxeland.gradualQueue.Count / voxeland.maxQueue.
     
    Last edited: Dec 8, 2015
    doublegumbo likes this.
  22. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Hi there, does this work with the u5 goodies like enlighten?
     
  23. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Voxeland shaders are based on Unity's standard material shaders, so they support all of the standard material features like GI. But keep in mind that Voxeland terrain chunks are big and complex meshes, so calculating light transport will take a significant amount of time, making real-time GI almost impossible. So the best Voxeland with Enlighten scenario is small terrain that should not change in playmode.
     
  24. cochtl

    cochtl

    Joined:
    Apr 14, 2011
    Posts:
    4
    Hey all, it's been a while, but I have been using Voxeland for pretty much all of the terrain areas in my sidescroller game tentatively called The Orb.

    Check it out!




    I do want to ask if anyone has exceeded using more than 4 materials on a voxel mesh and if you have experienced any issues going beyond that, because I made 5 on accident on a test scene and none of the shaders appear correctly on the voxel terrain : /

    Any thoughts?
     
    PolyMad, lazygunn and hopeful like this.
  25. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    cochtl, The Orb looks great, and for the first time I see Voxeland being used in sidescroller. And I really like the results.

    Btw are you using Unity 4? Unity 5 version of Voxeland can handle more than 4 textures without any problems, while Unity 4 version still has that limitation.
     
  26. monoion

    monoion

    Joined:
    Dec 28, 2014
    Posts:
    6
    How do you export the geometry as an .obj file? (im not interested in colour information)
    I cant find the options anywhere.
     
  27. Ricoman

    Ricoman

    Joined:
    Aug 13, 2012
    Posts:
    7
    So I bought Voxeland for my game and have to say I love it! Just a couple things I'd like to mention:

    1. The heightmaps don't seem to have much effect on the overall terrain generation. I've brightened the PNG file, whitened it, changed the ramps for brightness and contrast, but nothing seems to make the heightmap exert more influence over the terrain generation. I turned down the erosion control effects, turned them off, but I can't seem to make the heightmap show up in the final terrain. I made the PNG file readable/writeable, etc.

    2. I absolutely love the way Voxeland lets me tunnel away and carve my own caves, dungeons and caverns the way i want. Unfortunately, the terrain generator doesn't do as effective of a job as the Erosion Brush tool. Is there a way to convert the Voxeland mesh into a Unity terrain, then do the Erosion Brush tool on that Unity terrain?

    Sorry if these seem like simplistic questions, I'm more an asset creator than a programmer 8-S
     
  28. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    burning01, there is no built-in functionality for exporting objs, but you can use third-party scripts like this one: http://wiki.unity3d.com/index.php?title=ExportOBJ
    Just keep in mind that terrain should:
    - be limited
    - have LOD distance more or equal to terrain size

    Ricoman, thanks! Speaking of a heightmap: each color step (from 0 to 255) should raise terrain on one block by default, (so white texture should give a flat terrain at height of 256). Do you want to raise terrain higher, or you encountered a bug that does not allow raise terrain to that level?

    Erosion Brush shares the same erosion algorithm with Voxeland. Well, almost the same :) But I have to agree that EB offers more flexible way to edit terrain. I really like the idea of converting standard terrain to Voxeland, this can help new users to integrate voxel terrains to their currently existing projects, so most probably this feature will be implemented in one of the future versions.
     
  29. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    121
    Just got this and have a couple problems with it. Having large terrains are too slow (like 3000, or even 1000), so I've settled on using area=500 (chunk size=25) which is performant enough not to be waiting around on, and big enough to get bigger things on.

    The terrains dont seem properly though, and even seem to have height differences even though they are the same height (20 blocks to start), and all positioned at Y=0.

    Here's some shots. Vertical down:

    ceto_seam_0.JPG

    Horizontal view, the shadow is obvious, which means the heights are being changed even though all the parameters are the same in terms of sizing (chuck size, area size, transform positions):

    ceto_seam_1.JPG
    I've read the Readme.pdf that comes with the asset, but I dont see this described, but I did see in the forum that multiple terrains are supported, and I'm hoping that tiling is possible.

    I also tried this with taller terrains, and I similarly had seaming issues, with like a fault line or linear crater in between them.

    Actually, I had one more question too. Can I create an area with no blocks in it, and add in the initial blocks myself? I'm thinking of using this as a add-on to normal terrain, so I can make it more dynamic, but get the benefits of systems like Gaia to layer different terrain features I want onto a single terrain (like an island with a volcano on it).

    Actually, if I could import some kind of splat file as an initial height for all the blocks, that would be totally sufficient. Is that possible?

    -g
     
    Last edited: Dec 28, 2015
  30. tgienger

    tgienger

    Joined:
    Jul 18, 2013
    Posts:
    45
    Could Voxeland be used in addition to Unity's terrain? I have an existing terrain I'm adding caves to and this would be perfect if I could.
     
  31. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    ge01f, let me clarify: these are two different Voxeland objects?

    Actually Voxeland has a build-in multiple terrain support, but it should be done in a slightly different way: each terrain area is already a separate terrain with a separate data, grouped under one Voxeland object. So if you want to weld three (for instance) terrains you have to create one Voxeland and enable (i.e. generate) three areas.

    Btw if you are going to use large terrains you'd better consider infinite terrain option. So you can generate all of you 3000-units terrain, but it would be partly build only where the player is.

    You can import height file using height texture generator.

    tgienger, Voxeland is a separate terrain system, it has nothing in common with standard terrain. Internally Voxeland terrain is a bunch of standard meshes. It could not be welded with standard terrain, at least I don't know if anybody could achieve it.
     
  32. tgienger

    tgienger

    Joined:
    Jul 18, 2013
    Posts:
    45
    Yeah I know it's not standard terrain. I was hoping to use Voxeland to create overhangs and caves rather than using Maya.
     
  33. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    121
    Yes, I was using 2 different Voxeland objects, I didnt know I could generate multiple areas, I will give that a shot. Thanks!

    I would really like to use the infinite terrain option, the only issue I have is that I dont want the updates to terrain during play, so I want to export the terrain as a mesh. Right now the Infinite terrain doesnt allow this, and I find the terrain updates too distracting in playmode.

    It would actually be great to be able to create in infinite terrain mode, and then convert a section of it to static mesh. Im guessing the static mesh limitation had to do with infinite terrain being infinite, but I would be happy to have a finite portion of that area in a static mesh, which doesnt have any update issues during gameplay.

    Since my game doesnt have terrain deformation as a goal, for me Voxeland is most useful as an editor so that I can make more interesting terrain, and caves and stuff that unity terrain doesnt support and looks great.

    Also, I find that the mountains as Voxels are much better looking that unity terrain as there is a wide-scale POM type effect from a distance because of real geometry variation. Unity mountains always look a lot more flat and boring. Creating a static mesh gives me all the performance benefits, and a great looking terrain too, and the editor is really easy to flip back on once I want to edit again. It's a great workflow.

    I had one more problem where I was trying to generate an empty area, and then start filling it with my own blocks. I created the empty area, but I couldnt place any blocks, and after hit generate it filled it with a ton of blocks. I've also had issues trying to delete away all the blocks, with pieces sticking around, which meant I had to raise the ocean floor above them (as I had the area going underwater).

    Being able to create empty areas and fill them manually means I could put Voxeland areas above Unity terrain, and create dynamic terrain that way. Since I could then create static meshes, I could make small areas and just craft custom terrain around them to put on top of unity terrain.

    Is this possible now?

    It's ok that they arent welded together, I could just slide the pieces into each other, like people do with rock formations made out of lots of rocks.

    -g
     
  34. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    ge01f, aha, I've got your point: so you are trying to make some voxel objects like rocks atop of standard Unity terrain. I find this approach interesting and useful, but Voxeland was not designed to work that way. I think I should implement this feature because I really like it. For now I can suggest the following method: create a small limited voxeland, sculpt a piece of voxel terrain, and then bake it to scene meshes - this will disable voxeland component, but will not remove it. Then the same method should be repeated with other voxel pieces, but only one 'active' voxeland should be enabled. And if you'd wand to return to some previously baked voxelands - you will just have to enable component, edit, and press 'bake' again.
    Do I understand your idea correctly?
     
  35. Reiika

    Reiika

    Joined:
    Jul 18, 2015
    Posts:
    43
    Can we get some more documentation on multiple terrains and heightmap usage. I am trying to create terrains from heightmaps initially, do the editing to them that I want and then save them to file (txt?) and then load them. So after much playing around I was able to get hieghtmap to load but there is not alot of information on the inner workings of them. I learned that the size is sometimes the same as the heightmap, example a 256x256 heightmap makes a 256x256 unit voxel but when I did a 2048x2048 I got this fun little problem..


    Above is Voxeland result of a 2048 heightmap and the image itself


    Edit I tested the same hieghtmap using 512x512 and 1024x1024, the 512 worked flawlessly, but seems like sizes larger than that 1024 and up create a problem with it where it looks like voxeland tried to make several smaller terrains and put them together but it doesnt stitch it properly so it looks wierd..


    Above is the 1024 version of the heightmap, 512 version produced no errors

    Other than the issues, I love this voxel program, i think it has become my favorite out, due to ease and simplicity
     
    Last edited: Dec 31, 2015
  36. AdanGrotesco

    AdanGrotesco

    Joined:
    Sep 26, 2015
    Posts:
    33
    Hi, have you plans for release a more especific documentation about voxeland components? the main scripts, Triplanar, some examples, etc.

    Really thank you.

    PD: i bought voxeland about 1 moth ago, and i'm SO happy with this tool.
     
  37. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    121
    I thought of a feature I'd really like, is it possible to do this now? I assume if I knew where in the code I could make this change, it wouldn't be too hard.

    Instead of assigning the block types manually, I would like to be able to assign a class that I write to do the assignment for me.

    For example, I could set up some standard tests such:

    - Height of sea level
    - High blocks are mountainous terrain
    - Has blocks above it (it's a cave)
    - Angle of terrain, is it flat?
    - Is it close to a wall (block with over N angle)?

    From these I could auto-assign mountains, caves, flat ground near walls (dirt/rubble), flat ground away from walls (more grass), etc.

    One of the problems I had using this as my terrain editor is the sheer amount of time things take. Trying to build a mountain from scratch was a epic endeavour I quit after about 6 hours, as it was a huge bunch-of-grapes, and all the textures were uniform and boring.

    At this point I really just want to import a terrain height map, and auto-assign the textures, and then work from there. That would be an awesome workflow. This terrain is so much better looking than height maps, but it's so much harder and time consuming to put something together that isn't just noise. Terrains need noise parts and flat parts for human settlements, and ramp type things for roads, to be completely usable game terrain, and at the moment getting this terrain to that state is a burden. I think with a couple tools it could be really easy, and the best way to make terrain in Unity.

    I have a method to import the heightmap, but not to texture the blocks, so I dont have a workable system yet, and painting them manually is too much work to be reasonable.

    If this was implemented so that it could be toggled, then you could still manually work, and then flip back to using it once your manual changes were done, and it wouldnt mess with any existing blocks. Then you could enable it before generating to get all of the generated blocks textured the way you wanted, and then turn it off to make custom edits, and then turn it back on for players, so they could deform the terrain, but the textures always work by your rules, so it never looks dumb.

    -g
     
    Last edited: Jan 2, 2016
  38. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    121
    Yes, this is exactly what Im thinking of. It allows for spot editing more interesting terrain (caves, pillars, arches, etc), and then using them statically with Unity, while being able to edit them by just turning on the editor again, and then baking to static when done.

    I think the only issue I found was that it wanted to make a batch of starting blocks, and I couldnt start from 0 and just place a single block and work from there.

    You basically have a rule-based organic modeling system that you have created. Things could be scaled so like look like sculptures, and of course the organic modeling for terrain. All that's needed to be able to start with nothing but an empty space, and add blocks selectively as needed.

    I'll try what you recommend. I think it's actually OK if the terrain generated a base layer (flat at 1 height or something) for my immediate needs, as I can just build it from under the current terrain, so the base layer remains hidden.

    When this is mixed with RTP, the static meshs can be geometry blended right into the Unity terrain, so there isnt a seam and the heightmapped textures blend right up the edge of the model. Should look really cool.

    -g
     
    Last edited: Jan 2, 2016
  39. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Reiika, thanks for your report! I found out that the bug occurs when the heightmap size is larger than area size. I'll make a heightmap crop in future versions. I'd like to recommend making new Voxeland's objects area size equal to heightmap resolution your are going to use.

    AdanGrotesco, do you really think that documentation should be extended? It's rather difficult for me to figure that out as I've never been a new Voxeland user, I always knew how it works... Sometimes it seems that many of Voxeland users do not read any documentation at all :) I wish I'm mistaken. But I feel that new features like integrating with MM (see below) would be more useful. I'll change my mind gladly if there will be requests for extending script and shader documentation.

    ge01f, you really should have a look at MapMagic. It's a map generating plugin that will have all of the requested features like painting terrain by height, normal and cavity/bulge. And it will have an ability to import heightmap in 16-bit RAW file. I plan to start implementing MM compatibility after it's release (hope it will be this month) and first version bug fixes.
     
    Last edited: Jan 3, 2016
  40. Markolise442

    Markolise442

    Joined:
    May 10, 2013
    Posts:
    1
    Quick question Wright.
    I just purchased Voxeland, and love it so far, but I was wondering. In the Generate section there is a button to "Get Current Area". How hard would it be to create a way to load and save a txt file to that selected area only.

    Use example would be, I am working on an area using a limited size Voxeland Terrain. Once I'm happy with that, I save to txt file.
    I then open my main scene with the infinite terrain, get the area I want and hit load txt to area. The chunk that I was working on now loads to this given area without wiping all the other terrain.
    I haven't started to dig into the code just yet but will be doing so shortly.
     
  41. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Hi!
    Here is list of my lates findings :)

    *** Bug with editing on bounds of world with big brush and getting exception ***
    problem > create world of 3x3 chunks and click on it`s side with big brush
    find in Matrix.cs >set { array[(z-offsetZ)*sizeX*sizeY + (y-offsetY)*sizeX + x - offsetX] = value; }
    workaround >>
    set {
    try {array[(z-offsetZ)*sizeX*sizeY + (y-offsetY)*sizeX + x - offsetX] = value; }
    catch { }
    }

    *** Bug with grass absent on bounds or world ***
    problem > create world like 3x3 chunks with grass, closer to edge grass will not generated because of some problem in ReagGrassColumn method
    find in Chunk.cs > if (typeNum == 0 ) continue;
    workaround >> if (typeNum == 0) typeNum = 1;

    *** Nice to have such option for Grass Shadows in editor ***
    problem > I need to have cool grass with shadows
    find in Chunk.cs >chunk.grassFilter.GetComponent<Renderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
    workaround >>chunk.grassFilter.GetComponent<Renderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On;
     
  42. AdanGrotesco

    AdanGrotesco

    Joined:
    Sep 26, 2015
    Posts:
    33
    Thanks for the reply. In my case, i'm working with programmer (I,m 3D modeller and this stuff) and it cant be a little confuse. Its a lot of code, and even the module system (noise, generator, visualizer etc) are so usefull for organization, it's a little hard understand what is doing exactly what.

    Anyway, the mapmagic implementation it's the big thing we waiting. are you plan to release a beta or something similar? we are so exited wit your tools.

    Really sorry again for my poor english, spanish colleges SUCKS. :D
     
  43. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Markolise442, I would start digging from Data.SaveToByteList function (and LoadFromByteList). It converts all the terrain to byte list, that could be easily serialized to txt. I think that modifying SaveToByteList copy to make it work with one area only would be a sensible idea.

    mm_ASH, thanks for your report! I'll check out terrain behavior on bounds, and add switchable shadows feature in new version.

    AdanGrotesco, your team programmer can communicate with mail or forums at any time, and as you see I always try to give a reply within day or two. Speaking of MM, I plan to release an early version this month, maybe couple of weeks later. It will be a fully-functional version (maybe with lesser documentation and possible undiscovered flaws), but a price will be halved.
     
  44. Reiika

    Reiika

    Joined:
    Jul 18, 2015
    Posts:
    43
    Thank you for checking that out,

    I have some information that I want to ask and also another few bugs

    BUG
    1. When the voxel land object is moved from 0,0,0 it can stop chunk generation effectively breaking the voxel land until it is put at 0,0,0

    2. Rotating the object can cause individual chunks to rotate but not the entire object to rotate if done at certains like prior to generation

    3. Scaling the object causes remove and build distance not to take into account for size difference

    NEED HELP WITH

    1. Making a map from multiple height maps is there a stitching option that can be used or a way to make a massive map, I may plan on using a 3x3 grid of voxel land that each would load the corresponding map file that it relates to as the player moves through the world, I prefer the grid option as I can customize each map with individual texture and blocks unique to it,

    1. Would I be able to tell voxel land to either stitch 9 voxel land objects together as 1 so there's no gaps and generation is done seamlessly as one uniform object?

    2. What would you suggest as an alternative as creating one large height map would more than likely not work as I might build a for example 16x16 grid of 2048x2048 heightmaps map for my game


    Thanks! !!
     
  45. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Reiika, thanks for your report. I'll try to clarify some details:
    Scale: build, remove and lod distances are measured in world units, so they should not be scaled with an object.
    Rotation: Voxeland object simply could not be rotated. Just as a standard terrain.
    Position: limited terrain should be moved without any problems, so it seems that you found a bug. Have you noticed under what condition moved voxeland stops generating? I'll check that out when I'll get to my pc.
    Speaking about unlimited terrain I'd like to recommend using the closest to the place you are going to edit.

    Actually Voxeland has a build-in multiple terrain support, but it should be done in a slightly different way than making grid of different voxeland objects. One Voxeland with infinite terrain should be used instead. Each terrain area is already a separate terrain with a separate data, grouped under one Voxeland object. So if you want to weld three (for instance) terrains you have to create one Voxeland and enable (i.e. generate) three areas.
     
  46. Reiika

    Reiika

    Joined:
    Jul 18, 2015
    Posts:
    43
    Thank you for the information,

    I am still stuck on how to generate more than one area at a time effieciently, I tried looking through the pdf and looking through the code but I am lost..

    What is the best way using Voxel Land to acheive the following without using one hieghtmap, as it would not be able to generate the size that I need it to?



    SCENARIO:
    Lets say the game world is composed of several smaller maps (in this example a 16x16 grid of maps)
    -Each map has a unit size of for example 8192x8192 units in Unity, so total size is 131,072x131,072 Unity units
    -Colored area represents current viewspace (3x3 grid so only 9 maps are currently loaded)
    -Blue space represents current map that is in view and being rendered
    -As you move throughout the outer colored spaces either begin to become visible or load/unload from the pre-existing map data
    -I was looking into using the unlimited terrain feature
    -Using numerous blocks, maybe 32, maybe more?
    -Several Biomes so the need for multiple block is a definite, tundra, desert, grassland, plains, cliffs, mountains, etc
    -Using just one voxel land would work if I have control over data of each area programmatically. IE setVoxelLandArea(areaNumber, areaData) etc

    NOTE:
    -Similar setups can be done using Unity Terrains as the system above and using terrain stitching but I looked into voxels due to being about to form unique terrain using voxels as opposed to regular terrains.

    QUESTIONS:
    1. How would I tell voxel land that area (13,11) to area (15,13) (9 areas) that they need to load this specific data?

    2. What is the max block amount that 1 Voxelland object can have texture wise? I would more than likely be using about 32 or more blocks to represent a world, so several for each biome.

    3. How do you load voxel land data from file, for example can I set blocks up in code ie. setVoxelBlock(name,texture1,texture2,etc), that way I can build my terrains in my own code and such

    4. Could you provide example functions or related information that would point me in the right direction in achieving this feat with Voxelland

    I love the product and hope that it can suite my needs for my game. Creating detailed terrains using voxelland is exciting such as caves, overhands, weird formations and such. I am still getting used to the system and documentation to really bring out the power of it
     
  47. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Hi!
    When I enable RTP Compatibility I am getting such kind of error, any workarounds?

    NullReferenceException: Object reference not set to an instance of an object
    Voxeland.Chunk.ApplyAmbientToGrass () (at Assets/Voxeland/Scripts/Main/Chunk.cs:2204)
    Voxeland.VoxelandTerrain.Display () (at Assets/Voxeland/Scripts/VoxelandTerrain.cs:676)
    Voxeland.VoxelandTerrain.Update () (at Assets/Voxeland/Scripts/VoxelandTerrain.cs:361)
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorApplicationBindings.gen.cs:217)
     
  48. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    Reiika, I guess you are not going to make one unit corresponding to one pixel, otherwise data information would be extremely bulky. What would be the total size of your terrain in pixels?

    Btw I could reproduce the bug with terrain offset. I'm going to release bugfix version soon, that fix it along with some other drawbacks that were recently found.

    mm_ASH, since RTP does not support Voxeland's ambient occlusion there's no use in ao feature. I'd like to recommend to turn 'Ambient Occlusion' off in Settings to increase performance - and avoid compatibility-related bugs.
     
  49. Reiika

    Reiika

    Joined:
    Jul 18, 2015
    Posts:
    43
    @Wright Thanks for discovering and making the bug fix!

    I don't mind making one pixel equal one unit or other if a customisable option of like 1 pixel = x units, either system would work, As long as I can input a heightmap with a bigger size than 512, because I am planning on all the area's be of one standard size

    So basically world size would be for example
    World Areas = 16x16 Areas
    1 Area = 1 Heightmap of 8192x8192 pixels
    Total Game World Size = 131,072x131,072 units (World Dimension * Area Size)
     
  50. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,266
    So you've got total terrain resolution of 131072x131072 pixels? I'd like to warn you that uncompressed heightmap even for standard Unity terrain will take 94.4 Gb, and splatmap information will take even more. And everything becomes even worse when using voxel data: roughly speaking, all of the heightmap data should be multiplied by number of block types in a terrain column.

    Ok, probably you are using streaming or something. In this case you have no choice except using different Voxeland objects. You can set area size to 8192 to load one heightmap per Voxeland object, but I'd like to recommend further heightmap splitting: set an area to 1024 and split your 8K heightmap to 64 1K pieces, and then load each piece per area.

    And I'd like to say that creating a terrain of such resolution is extremely complex task, hope you are prepared for the difficulties that can arise - and not all of them will be Voxeland-related. I wish you good luck!