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

Cubiquity - A fast and powerful voxel plugin for Unity3D

Discussion in 'Assets and Asset Store' started by DavidWilliams, Jun 2, 2013.

  1. Zarod

    Zarod

    Joined:
    Jan 20, 2016
    Posts:
    58
    I was able to bake a standard navigation mesh in Unity but it only works sometimes. It works when i add a new mesh renderer to the terrain and re-set to static the terrain . I can't also select the terrain with the editor. Bug or i'm forgetting something? is it because the invisible children of the terrain are being generated as non-static objects? If so, Is there a way to make them navigation-static from birth? aj.PNG

    [EDIT]: i coudn't find information about this ( in documents or forum ). Also now i recall saving a scene where the Terrain Volume was static and finding it the next load as non-static.

    [EDIT2]: I read some people think the problem was the scale of the terrain ( it was on RAIN navigation mesh if i recall correctly) but here it's not the case, as the terrain you see in the picture is 3 times bigger.
     
    Last edited: Aug 18, 2016
  2. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    @Zarod - I've never tried integrating Cubiquity with navigation meshes so I don't really know the process or the catches, but I'm aware that some people have had success (maybe with RAIN?).

    Cubiquity does not save the mesh with the scene but regenerates it each time, which is probably why certain flags are being lost. The meshes which are generated are also hidden in the object inspector (because they are an implementation detail) as you have observed.

    You might find it useful to tweak the mesh generation code to show all the child meshes so you can better see what is going on, and examine them individually. I don't have access to the source in front of me right now but I think you need to search for 'HideFlags' and change as appropriate (but keep the DontSave behaviour where present).
     
  3. Deleted User

    Deleted User

    Guest

  4. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    @Soronume - Unfortunately this has not been implemented. Cubiquity has had a significant change of direction (see blog post here) and it won't make sense in the new system as that will be focused on sparse-voxel-octree type voxels rather than the existing TerrainVolume.
     
  5. Mikael-H

    Mikael-H

    Joined:
    Apr 26, 2013
    Posts:
    309
    I used the A-star project http://arongranberg.com/astar/ (tried both free and paid version) without problems. I would strongly suggest using that instead of unity pathfinding which can't handle runtime changes. A-star will work by sampling the physics of its environment so all it needs is colliders. Very easy to implement in any project. Here's a sample video of it in use, all the bots are getting their pathfinding using a-star:


    EDIT: Actually, since RAIN was mentioned, I think it has integration for the a-star project. I know at least Behaviour Designer does if you want a behaviour tree to go with your ai. Otherwise if I remember correctly, RAIN also handles its vanilla pathfinding through sampling colliders so that should work fairly well out of the box as well. Just don't use unity pathfinding. Ever.
     
  6. jeffries7

    jeffries7

    Joined:
    Jun 25, 2014
    Posts:
    59
    Hi there, this is really awesome terrain addition. I have a question about adding editor functionality to run-time. I've seen you can destroy the terrain at run-time but is it easy enough to allow the editor sculpting features at run-time?
     
  7. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    It should be possible to implement this but it is not currently exposed. Sculpting in the editor is done by calling through to functions which are exposed by the Cubiquity API. You should be able to create run-time sculpting tools which call those same functions, through I haven't actually tried it.

    Be aware that there is no collision mesh in the editor which makes sculpting much faster. So you might not be able to do sculpting if you need a collision mesh present (so just generate it after sculpting is complete?).
     
  8. Zarod

    Zarod

    Joined:
    Jan 20, 2016
    Posts:
    58
    on triplanar materials is complicated from what i read but is it possible to make a simplified Triplanar material with "one main texture" and "one normal map"? i read previous posts of other people asking you about this but do you think that having only one texture can simplify the problem? Thanks in advance.
     
  9. Mikael-H

    Mikael-H

    Joined:
    Apr 26, 2013
    Posts:
    309
    Nope pretty simple. In case you don't want to do it yourself you could use this shader. I am not very good at shaders so don't expect the highest quality or optimal code :)

    In the video with the sidescroller I posted a few posts up that is the shader being used on the destructible terrain if you want to see it in action.

    The shader actually handles four different materials and blends them (dirt, rock and grass in the video), not just one.

    Good luck!
     

    Attached Files:

  10. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    Very interesting, though I don't find the effect to be very strong. Maybe it is the lighting setup? How does it look with plain white textures, as this should emphasise the normal maps?

    @Zarod - You should also check out this GPU Gems article: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch01.html
     
  11. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    What is happening with new cubiquity 2.0 project was there much progress on the new direction you were taking the project in?
     
  12. Mikael-H

    Mikael-H

    Joined:
    Apr 26, 2013
    Posts:
    309
    Yeah it's not very strong unless you get really close. Personally I prefer normal mapping to be subtle, to the point where it is not something you notice unless it is not there. It is also a lighting issue of course, the lighting in the scene doesn't really accentuate the effect either.

    I'll see if I can make an example with white albedo maps later, good idea!


    I am also curious regarding Cubiquity 2 by the way :)
     
    Last edited: Nov 24, 2016
  13. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    Progress has been very slow due to external factors but the plan hasn't changed. In the last 18 months I've moved house three times (one international) and had three different jobs, but life finally seems like it is starting to settle down so I really hope to make progress in the new year. I do have a working prototype of the algorithm but I don't yet know how well it scales up. Still optimistic though :)
     
    Mikael-H likes this.
  14. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    oh ok that explains the project status then, hope to see new updates on it next year :)
     
  15. michaelcvoigt

    michaelcvoigt

    Joined:
    Jun 6, 2014
    Posts:
    2
    Love the product! Thank you - a quick question :

    Do you have any ideas on how to get your shader to be transparent, or have an alpha channel?

    I want the background to show through -- for a cool effect ;)

    Thanks, michael

    upload_2016-11-21_15-45-35.png
     
  16. michaelcvoigt

    michaelcvoigt

    Joined:
    Jun 6, 2014
    Posts:
    2
    Got it, looks so cool!

    upload_2016-11-21_18-48-36.png
     
  17. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    @michaelcvoigt - Glad you figured it out, it's a very cool effect!
     
  18. WinterboltGames

    WinterboltGames

    Joined:
    Jul 27, 2016
    Posts:
    259
    Hello, I Know Guys VOF You Are Not Free But Can You Give Me An Example Code On How To Make The Terrain Get Destroyed By Certain radius When It Is Collided With An Object ? C# Please Any Time Soon! And Thanks!
     
  19. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    Cubiquity comes with example showing how to destroy the environment when a mouse is clicked. Doing it with an object is basically the same, except you need to get the collision point instead of the mouse position. Do you know how to get this collision point and can you e.g print it out? Handling collisions is not really specific to Cubiquity, so you should consult the general Unity documentation for this.
     
  20. noneuclideangirl

    noneuclideangirl

    Joined:
    Jul 16, 2016
    Posts:
    6
    Hey everyone! I am loading voxels from an image, and with one particular image, I get this NullReferenceException each update:
    Code (csharp):
    1.  
    2. NullReferenceException: Object reference not set to an instance of an object
    3. (wrapper unknown) uint16:PtrToStructure (intptr,object)
    4. Cubiquity.Impl.CubiquityDLL.GetMesh[ColoredCubesVertex] (UInt32 octreeNodeHandle, Cubiquity.Impl.ColoredCubesVertex[]& vertices, System.UInt16[]& indices) (at Assets/Cubiquity/Scripts/Impl/CubiquityDLL.cs:440)
    5. Cubiquity.Impl.MeshConversion.BuildMeshFromNodeHandleForColoredCubesVolume (UnityEngine.Mesh mesh, UInt32 nodeHandle, Boolean onlyPositions) (at Assets/Cubiquity/Scripts/Impl/MeshConversion.cs:25)
    6. Cubiquity.Impl.OctreeNode.syncNode (System.UInt32& availableSyncOperations, UnityEngine.GameObject nodeGameObject, UInt32 nodeHandle, UnityEngine.GameObject voxelTerrainGameObject) (at Assets/Cubiquity/Scripts/Impl/OctreeNode.cs:127)
    7. Cubiquity.Impl.OctreeNode.syncNode (System.UInt32& availableSyncOperations, UnityEngine.GameObject nodeGameObject, UInt32 nodeHandle, UnityEngine.GameObject voxelTerrainGameObject) (at Assets/Cubiquity/Scripts/Impl/OctreeNode.cs:267)
    8. Cubiquity.Impl.OctreeNode.syncNode (System.UInt32& availableSyncOperations, UnityEngine.GameObject nodeGameObject, UInt32 nodeHandle, UnityEngine.GameObject voxelTerrainGameObject) (at Assets/Cubiquity/Scripts/Impl/OctreeNode.cs:267)
    9. Cubiquity.Impl.OctreeNode.syncNode (System.UInt32& availableSyncOperations, UnityEngine.GameObject nodeGameObject, UInt32 nodeHandle, UnityEngine.GameObject voxelTerrainGameObject) (at Assets/Cubiquity/Scripts/Impl/OctreeNode.cs:267)
    10. Cubiquity.Impl.OctreeNode.syncNode (System.UInt32& availableSyncOperations, UnityEngine.GameObject nodeGameObject, UInt32 nodeHandle, UnityEngine.GameObject voxelTerrainGameObject) (at Assets/Cubiquity/Scripts/Impl/OctreeNode.cs:267)
    11. Cubiquity.ColoredCubesVolume.SynchronizeOctree (UInt32 availableSyncOperations) (at Assets/Cubiquity/Scripts/ColoredCubesVolume.cs:125)
    12. Cubiquity.Volume.Update () (at Assets/Cubiquity/Scripts/Volume.cs:322)
    13. Cubiquity.Volume.ForceUpdate () (at Assets/Cubiquity/Scripts/Volume.cs:170)
    14. Cubiquity.Volume.EditModeUpdateHandler () (at Assets/Cubiquity/Scripts/Volume.cs:192)
    15. Cubiquity.EditModeUpdater.updateAllVolumes () (at Assets/Cubiquity/Editor/EditModeUpdater.cs:20)
    16. UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorApplicationBindings.gen.cs:222)
    17.  
    As far as I can tell, there's nothing particularly special about this image. Does anybody know what might cause this problem?
     
  21. Mikael-H

    Mikael-H

    Joined:
    Apr 26, 2013
    Posts:
    309
    If I was to venture a guess this has nothing to do with Cubiquity, but with Unity not being able to handle your image. What happens if you open it in a basic image processing application (paint or gimp or whatever) and save it in .bmp format?
     
  22. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    Are you converting the image to voxels using the command-line ProcessVDB tool, or are you doing it in Unity like with the Maze example? Is your image colour or greyscale? Does it have alpha? What format is it? Compare these things to a working example image and you might see what is wrong.
     
  23. noneuclideangirl

    noneuclideangirl

    Joined:
    Jul 16, 2016
    Posts:
    6
    Hey -- cheers for responses. They were a mix of RGB jpg and ARGB png files, and they all loaded and displayed fine in Unity. I was using GetPixels32 to create a voxel for each colour. I'm not entirely sure what caused the issue, but I managed to fix it by setting the unsafe code flags for Unity. As a plus, the rendering now looks much nicer!
     
    Mikael-H likes this.
  24. mvoigt

    mvoigt

    Joined:
    Sep 20, 2016
    Posts:
    1
    David,
    Thanks David! -

    I have everything working great on my Rift version ... next battle is GearVR. Was thinking that since I'm just using Cubiquity to essentially just render my height maps into a textured solid voxel mesh that is static... is there a method to snapshot what is see the editor and just use that as a textured mesh on the phones? Copy and paste the mesh from the editor ? ;)

    Attached another shot of the usage.

    Cheers !
     

    Attached Files:

  25. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    There is no method provided by Cubiquity to do this, but perhaps you can find something in the Unity documentation to serialise a Mesh object? Otherwise you could write a separate (external) tool to convert heightmaps into voxel-style meshes. Maybe MagicVoxel, VoxelShop, or Blender could do it with some scripting? You will indeed be paying a high performance price to use Cubiquity if you don't need the dynamic aspect.
     
  26. noneuclideangirl

    noneuclideangirl

    Joined:
    Jul 16, 2016
    Posts:
    6
    Hey all,

    I am using Cubiquity to display some very large data sets, to the tune of a few tens of millions of points (though downsampled quite heavily). I've noticed that while Cubiquity loads the voxel database rather quickly, it takes a long time to actually render the voxels. The voxels appear in chunks, and it takes several minutes to render the whole thing (although the program continues running while it's rendering).

    Do you have any ideas or tips about ways to deal with this?
     
    Last edited: Dec 21, 2016
  27. Mikael-H

    Mikael-H

    Joined:
    Apr 26, 2013
    Posts:
    309
    Sounds very interesting! Could you provide some more info about your use-case, your expectations and your requirements, that might help us. Also, I'm curious
     
  28. noneuclideangirl

    noneuclideangirl

    Joined:
    Jul 16, 2016
    Posts:
    6
    Certainly!

    So I'm working in virtual reality, and I have some very large LIDAR (in PLY format) scans of sites that I want to display in Unity. The models are far too large to display in traditional formats like Wavefront object files, and writing my own system to display them causes extreme lag.

    The trouble is the models need to be moved, rotated, and scaled, so that users can interact with the data in a useful way, hence my use of Cubiquity to display them efficiently. So far, I am able to generate a voxel database for the PLY files in a few minutes, and the database gets loaded almost immediately on the next run of the program. The trouble is, you can very visibly see the oct-tree getting built up piece-by-piece, and it takes several minutes for the full model to appear properly on screen. I'm looking for any kind of a way to speed up this process.

    I'm running a ridiculous computer with two quad-core Xeons, multiple 1080s, and 128GB RAM, so I'm pretty much throwing as much hardware at it as I can.
     
    Last edited: Dec 22, 2016
  29. Mikael-H

    Mikael-H

    Joined:
    Apr 26, 2013
    Posts:
    309
    Is it necessary for your user to view the entire dataset at once? If so, you should probably display the closer chunks at higher level of detail and the further ones at lower. I don't think Cubiquity has support for this in its original form but I am sure @DavidWilliams can give more input.
     
    noneuclideangirl likes this.
  30. noneuclideangirl

    noneuclideangirl

    Joined:
    Jul 16, 2016
    Posts:
    6
    Yeah -- the trouble here is that would seem to involve breaking the database into chunks, which is... really not the most efficient option for Cubiquity.
     
  31. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    How big is the resulting scene in terms of voxels? Is it significantly bigger that the Cubiquity examples? I don't think I've really pushed Cubiquity past volumes of about 256^3 (so about 16 million voxels), and possibly not that high. But the examples that come with Cubiquity all load in just a few seconds for me.

    However, from my limited knowledge of LIDAR data I would say that converting to voxels is not the right approach, as such data would more typically be rendered with point-based techniques. Am I right in thinking you basically have point cloud data? This is usually drawn either using come kind of point primitive (if Unity has an equivalent of GL_POINTS) or by instancing quads.

    I'm not aware of an existing solution (which is probably why you came to Cubiquity) but perhaps you can find some particle systems on the asset store which would be built on similar concepts?

    Edit: I also assume the scene is static, and you'll be paying a performance price for Cubiquity's support of dynamic volumes which you don't actually need. If you did want to convert to voxels you might be better of doing it offline (including the surface extraction).
     
  32. noneuclideangirl

    noneuclideangirl

    Joined:
    Jul 16, 2016
    Posts:
    6
    Yep -- the scene is dynamic, which is why Cubiquity is handy dandy. I can try a few other solutions, but this is definitely okay for the time being.

    I might have a go at GL_POINTS (which Unity does indeed support), but I suspect that it wouldn't look terribly nice. Thanks for getting back to me, I'll have a play around :)
     
  33. Damocles

    Damocles

    Joined:
    Jul 21, 2012
    Posts:
    46
    Hi David, Cubiquity looks amazing, and I'm thinking about using it in a project, but I need to know one thing: How does Cubiquity handle a smooth terrain made of multiple volumes? Specifically, at the edges of two volumes where they meet - would they align to each other smoothly or would there be visible seams?
     
  34. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    I think Potree is a good example of point-based rendering. Points can be bigger than a single pixel and also aligned to the object rather than the screen. Actually I suspect using GL_POINTS is the old-fashioned approach and textured quads are used these days, but you can look into it. I think the biggest problem is the gaps which tend to appear when you zoom in. Anyway, good luck!

    There will be seams I'm afraid, and they are hard to get rid of. Cubiquity already breaks the volumes down into chunks and correctly handles the seams between these, but doing it between volumes is hard because one volume cannot read the voxel data from another volume.

    Cubiquity is not intended to let you build larger terrains by tiling smaller ones, which is presumably what you are thinking about.
     
  35. DRRosen3

    DRRosen3

    Joined:
    Jan 30, 2014
    Posts:
    683
    From what I can tell just by playing around with it, there's a limit to how far you can pull the terrain volume? Is there no way to exceed this "height limit" (for example building massive mountains)?
     
  36. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    I don't have it in front of me, but I recall there should be a dialog to specify the volume size when you create a new volume (GameObject -> Create Other -> Colored Cubes Volume)? You cannot change the size after it has been created.

    Edit: Think of it as a 3D image - you cannot draw outside the image but you can create a bigger one in the first place.
     
  37. DRRosen3

    DRRosen3

    Joined:
    Jan 30, 2014
    Posts:
    683
    Nope... No dialogue. As soon as you click "Color Cubes Volume" or "Terrain Volume" it just creates the object.
     
  38. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    Right, sorry, I must have changed it. You can change the created volume size in the source code here:

    https://bitbucket.org/volumesoffun/...eEmptyColoredCubesVolumeDataAssetWizard.cs-10

    It doesn't look like it is exposed through the UI, probably because I decided that the editing tools were not yet advanced enough for people to build volumes in this way. But I can't remember to be honest!
     
  39. imgodot

    imgodot

    Joined:
    Nov 29, 2013
    Posts:
    212
    David, I had posted this question elsewhere,

    I am using PickFirstSolidVoxel() to get a voxel that intercepts a “beam” (line renderer) extending out from my “player”. The voxel is then “destroyed” [using SetVoxel() with QunatizedColor(0,0,0,0)].
    Question: I am trying to position a particle system on the surface of the voxel where my “beam” intercepts the voxel, but I don’t know how to do so. Is there anything in Cubiquity that can help with this? I’m hoping so.

    Your response was:
    A quick-and-dirty approach would be to use both ‘PickFirstSolidVoxel()’ and ‘PickLastEmptyVoxel()’ and then take the average of these two positions. Better still, use those two to define the surface normal, and then use Unity’s maths classes to create a plane and perform an intersection against that?

    I'm pretty sure I'm not following. Not sure if I even understand what "PickLastEmptyVoxel" returns.
    Also, if I get the midpoint between "First" and "Last", would that point be on the surface of voxel that I "hit" with the beam or do I have to perform the surface normal/perpendicular stuff to get the exact point of impact on the surface of the voxel?

    Thanks.
    -- Paul


     
  40. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    No problem, I can elaborate. The beam (ray) which you cast is emitted out of your player object and passes through the scene. As it does this it passes through a number of empty voxels until it reaches a solid voxel, at which point it stops. The solid voxel which stopped the ray is the 'FirstSolidVoxel' and this is the one you delete by setting the QuantizedColor to (0,0,0,0). The previous voxel which the ray passed through is the 'LastEmptyVoxel' (i.e. the last bit of empty space before hitting the object).

    These two voxels must be adjacent to each other, and so the point half-way between them must lie on the surface on both. My suggestion was that you could spawn your particle system at this point because it is quite easy to find. However, the approach is crude and is not an exact intersection. Maybe it looks ok from a distance, it depends on exactly what you are doing.

    So what is a better approach? Well, we know that the solid voxel and the last empty voxel share a face. This face lies on a 3D plane and the ray passes through it (actually there are only three possible plane orientations in our voxel world). Mathematically a plane is usually defined by a point on the plane (we can use our midway point from the previous paragraph) and a normal. The normal must point from our solid voxel to our last empty one, so just subtract one voxel position from the other to get the vector which goes between them.

    Now we can use Unity's Plane class, and construct an instance from the mid-pint and the computed normal. Then there is a Raycast function which you can use with your original ray (maybe after converting the ray to Unity's format?).

    This is all untested and just off the top of my head, but roughly how I would start. Good luck!
     
  41. imgodot

    imgodot

    Joined:
    Nov 29, 2013
    Posts:
    212
    David,
    Thanks for the response. I understand now.
    However, I had already implemented something that works, and it's similar to your idea.
    I have an invisible cube with a collider, slightly larger than a single voxel sitting in my scene.
    When I shoot and hit a voxel, I move the cube to the voxel position and perform a raycast against the cube.
    That gives me the contact point that I need for particle positioning.
    Now I just need the proper particle system.
    Thanks again.
    -- Paul
     
  42. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    Of course! That's much simpler than my idea :) It's probably slightly slower (the cube collider will probably do six plane intersections internally) but that doesn't matter for picking and it's so much simpler. I should try to remember that for next time someone asks.

    I don't think it needs to be slightly larger, the exact same size should also work (or slightly smaller, though you don't want that)? There should be no interference between the cube collider and the actual voxel data because PickFirstSolidVoxel() uses a completely separate implementation to Unity's raycasting. Unless you have a Cubiquity generating Unity collision meshes, but I assume you don't as you would probably just be using that for finding your intersection (plus it is slow).
     
  43. imgodot

    imgodot

    Joined:
    Nov 29, 2013
    Posts:
    212
    David, The reason I made the cube slightly larger was because, when I did my raycast, the first item it hit would sometimes be my invisible cube and sometimes be an octree. It didn't appear to be deterministic so that's why I made the cube bigger.
    I probably could have just ignored the layer the colored volume was in, but I didn't think of it till just now.
    -- Paul
     
  44. flowerwithcat

    flowerwithcat

    Joined:
    Jan 16, 2017
    Posts:
    3
    hello,David~
    I try to convert image slice(.png) to .vdb, and all images are in that same file folder;
    i typed the command-line from the usermannel
    commandline:
    ProcessVDB.exe -import -imageslices C:\Users\r\Documents\test\ -coloredcubes output.vdb,but it shows that no images can be found.
    and i also try the data from Example - Importeddata ,the same result(no pic can be read)
    how can i solve this problem, and thanks for your reply~
     
  45. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    I'm sorry, but it works for me. The exact command I use is:

    and then:

    I'm afraid I don't know why this wouldn't work for you.
     
  46. flowerwithcat

    flowerwithcat

    Joined:
    Jan 16, 2017
    Posts:
    3
    Thanks for your reply~
    1)Name of images are important.(imageslice)
    the name format must be 000000,000001(this kind of 6 binary bits),the name such as 01,02 for every slicec does not work.
    2)I aslo try the vox->vdb in mac system(vox->vdb)
    i tried the method given by the discuss + one of the test result report + the issue board
    A. processVDB in osx is .exec format, Firstly i guess the command line maybe different from windows,but i can not search the right command line that how to execute exec
    so i tried (the command line just want to display what i tried, you can use your own directory)
    cd file\Assets\Cubiquity\CubiquitySDK\mac
    ProcessVDB.exec -import -imageslices C:\code\cubiquity-for- unity3d\Assets\Cubiquity\Examples\DataForImporting\ImageSlices -coloredcubes output.vdb
    it shows that ProcessVDB.exec is not a valid operation.
    Then,
    i try -ProcessVDB.exec -import -imageslices C:\code\cubiquity-for- unity3d\Assets\Cubiquity\Examples\DataForImporting\ImageSlices -coloredcubes output.vdb
    +
    i try -ProcessVDB -import -imageslices C:\code\cubiquity-for- unity3d\Assets\Cubiquity\Examples\DataForImporting\ImageSlices -coloredcubes output.vdb
    +
    i try ProcessVDB -import -imageslices C:\code\cubiquity-for- unity3d\Assets\Cubiquity\Examples\DataForImporting\ImageSlices -coloredcubes output.vdb
    All of them do not work;
    if you use >ProcessVDB.exec,It would be passed by system without error tips,but i do not think it already starts up
    i guess maybe the problem could be the binary library (libCubiquityC) which is not correctly connected to the
    ProcessVDB.exec.
    So i try to repair it (connect it), so i added the new PATH for mac (bash),and updata Xcode to connect binary library (libCubiquityC),but i failed.
    Furthermore,
    commandline -import in oxs would create a new empty file(textformat), that means, -name will produce a name.txt in provider file and the processVDB does not be start up and operate.
    Later,
    i try to open the processVDB directly without using terminal, it can be opened,but it exits automatically.
    Also,
    i think i could check the help command from processVDB to get the right command line format,
    cd file\Assets\Cubiquity\CubiquitySDK\mac
    ProcessVDB.exec -help
    >ProcessVDB.exec -help
    The help.txt is generated,but the command line help is not useful for ProcessVDB.exec
    What is more,
    i download the Openvdb to try,but Openvdb is a heretical tool for construct vdb format.
    That is all what i have tried for osx system about vox->vdb(i guess the vxl->vdb is similar questions in osx)


    Finally, i guess if we want to clear why ProcessVDB.exec does not work in oxs, the source code is a good way to check and find solutions.
    I also suggest that the .dmg for osx could be better or further the GUI for vox/vxl/image ->vdb is also a good choice.

    Last,
    Thanks for your efforts for Cubquity which is very useful and provides a lots of possibilities to create new staffs .

    Thanks~
     
  47. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    I'm sorry, I did not realise you were on OS X! The instructions are written for Windows and I should have made this clearer.

    If you are on OS X you will need to try the OS X version of ProcessVDB. You can find it in 'Assets/Cubiquity/CubiquitySDK/OSX/ProcessVDB'. Note that there is no '.exe' extension as OS X does not use this (right?).

    There might indeed be some problems because I do not have a Mac and so could not test well. At one point I had problem linking to the library correctly and also I had problems with 32 vs. 64 bit. I thought I had fixed these but perhaps not.
     
  48. flowerwithcat

    flowerwithcat

    Joined:
    Jan 16, 2017
    Posts:
    3
    I installed VirtualMachine(VM) in osx and try code lines in the windows-terminal(cmd), the problem of image slice is solved. it does work well.
    Thanks for your reply!
     
  49. DavidWilliams

    DavidWilliams

    Joined:
    Apr 28, 2013
    Posts:
    522
    Great, I'm glad you have a solution... sorry about the problems with the OS X version.
     
  50. PixelSpartan

    PixelSpartan

    Joined:
    May 11, 2015
    Posts:
    26
    When making a new colored cubes (file or whatever its called) if size is like below 10x10x10 it gives me some error.