Search Unity

Work name "SVox"

Discussion in 'Works In Progress - Archive' started by Luchunpen_0, May 17, 2015.

  1. Luchunpen_0

    Luchunpen_0

    Joined:
    Aug 7, 2014
    Posts:
    58
    Hi everyone!

    Here I would like to show, what I'm working on.

    I have long been interested in changing environment. I started with a simple msincraft cubes, but it is so booring and simple. Then I spent some time on the learning of marching cubes (MC) algorithm and succeeded (I've simplified the logic up to 11 lines of code), but this algorithm is bad, because it works only with smooth shapes.
    Then I tried to learn the Dual Contouring, because it supports all forms, but the generation speed of this algorithm was too low.
    Therefore, based on my experience, I made my own implementation, which supported smooth and sharp shapes and having a great speed like MC, without confusing QEF, search normal and iterative approach point to the surface.

    Current features:
    1. Smooth and sharp shapes supported. While using forces, but in the future it will be overwritten by direct interaction with the mesh vertices.
    2. Infinity generation.
    3. RealTime terraforming.
    4. Coloring blocks with the texture or simple color.
    5. Simple configurable block and chunk size.
    7. Save and Load (web no support).


    In progress:
    1. LOD;
    2. L – system;
    3. Voxel object editor;
    4. Biomes (there is already a highmap blending of different biomes).

    Test WebBuild. Scene with color blocks, View distance 320m in each direction.
    You can paint the blocks that have established themselves. 1 - solid block, 2 - with specular, 3 - metallic, 4 glass.
    https://googledrive.com/host/0B80Qn...0JReXY2aHBkQUl3OTdCTEFvY2hSZkdSWDg/WEB_3.html

    Some video of my progress:

    Test build (old video, before optimization of chunk loading)


    Biomes HeighMap blending test


    6cm block test. For size comparison I used the standard primitive.


    Base of LOD test. View distanse ~ 2 km in each direction.


    Full progress you can see here: https://www.youtube.com/playlist?list=PLYylJguDc07kaHmB-o9rF24F5yo6BH7kZ
     
    Last edited: May 17, 2015
    OffThHeezay91 and Arkade like this.
  2. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    655
    Wow, that looks really good! Love that you can do such small details!

    What are your plans? Asset in the store? If so, what ETA and price range? What hardware/software requirements so far? Threaded for fps?

    I've been using and massively modifying (the unmaintained) TerraVol. To get small details, I ended up scaling the whole system then, for large modifications, I added in more multi threading. If this fits in with time, cost, etc I'd definitely consider switching.

    I'm currently only using the voxels for snow.
    Here's a short video showing it in action:


    Along with large scale destruction demonstrated in that video, snowballs of any scale land and solidify and rolling snowballs (and snowmen) gather snow (I.e. subtract slightly from the surface isovalue and add to their volume).

    What do you think? Port possible?

    Also, an interesting idea would be weather one can generate your gorgeous solid & sharp edged geometry from meshes?

    Ok, the last question (for now), can one move voxel collections in their own frame of reference (e.g. make a voxel sphere then roll it down a hill, then smash it to bits).

    If the asset is good, I'd happily add and offer back features I need if they're not in your main plan.

    Thanks
     
  3. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    655
    P.s. fear I didn't explain the solidifying well. Here's a 3m video of a play test including lots of little snowballs solidifying and some big ones around 1:30.



    Obviously one of the next things for me to implement (that you might have already) is identifying free-floating volumes and turning them into physics-obeying objects. TerraVol isn't well suited to this need so I'll probably have to make do with their becoming particles or spheres.
     
  4. Luchunpen_0

    Luchunpen_0

    Joined:
    Aug 7, 2014
    Posts:
    58
    Your project look's great )).

    Now I rewrite parts of the logic. Actually I'm doing it for my own project, but when the basic functionality will be finished, it will appear in Asset Store )).
    I use multithreading, without it would be too slow.
    About requirements: the main direction - PC. I tried run this on my laptops I5 and I7 (2Ghz) - it's work well. You can try to run on any device and test, the link on web build in first post.

    At the moment I use to approximate the strength and value of isosurface, but in future i would like to rewrite a direct impact on the vertex. The tool with "-" and "+" in green circles gradually change the value of block isosurface.

    Now he can't, but in the future I'll try to do the packing / unpacking of voxels in the object as in VoxelFarm and Atomontage.

    For this you need to work directly with the vertex. I have already laid down it in my code, but I don't implemented to control the cursor.
     
  5. douras

    douras

    Joined:
    Nov 11, 2012
    Posts:
    5
    Hi, this is very interesting !
    Do you have any idea of the release date ? (2015?)

    Thanks.

    P.S: if it's not released soon, could you do a wiki or tutorial about your iscontouring algorithm ? I also need to have both smooth and hard voxels on the same grid.
     
  6. Luchunpen_0

    Luchunpen_0

    Joined:
    Aug 7, 2014
    Posts:
    58
    Hi.
    I'm planning to release in near future (1-2 week or little bit more), but at first release it will have a simple grid, without LOD. Lately I have been working hard to make the functionality more flexible settings and independent of the specific implementation.

    A recent video of progress: