logo enkisoftware
Independent game developer making AVOYD
en  fr

Thread - Avoyd 0.15.0 - Progress and Releases - Export to MagicaVoxel .vox and Denoiser Fixed

   juliette#enki - Wed, 17 May 2023, 14:38 UTC edited Wed, 17 May 2023 17:34 - permalink

Avoyd 0.15.0 Full is now out with .vox export, improved denoiser and fixes.

Note that we plan to increase the price of Avoyd by roughly 30% on the 25th May.

The latest full version of Avoyd concentrates on the Voxel Editor and adds a major new feature: export to MagicaVoxel .vox. Additionally we have made a number of fixes, the most significant of which is to the denoiser. The denoiser is now capable of producing high quality images from all scenes making it quicker and easier to produce great renders.

Export to MagicaVoxel .vox

You can use the new export to MagicalVoxel .vox feature to export Avoyd worlds to the .vox format for use in MagicaVoxel along with other programs which support .vox such as Qubicle, IOLITE voxel game engine, RPG in a Box, Idu, Teardown and more.

Screenshots of a render of imported Minecraft map [Drehmal](https://www.planetminecraft.com/project/drehmal-v2-prim-rdial-12k-x-12k-survival-adventure-map) in Avoyd (top left). Using Avoyd to export to .vox, we can render a smaller piece of the same map in MagicaVoxel (top right). Export to .vox is also useful to mod the game Idu (bottom left) and large scale worlds for the IOLITE game engine (bottom right) Screenshots of a render of imported Minecraft map Drehmal in Avoyd (top left). Using Avoyd to export to .vox, we can render a smaller piece of the same map in MagicaVoxel (top right). Export to .vox is also useful to mod the game Idu (bottom left) and large scale worlds for the IOLITE game engine (bottom right).

Since Avoyd supports more materials than the .vox format (65,536 vs. 255) the exporter will merge similar materials if more than 255 materials are in use. If you'd like more control over the exact materials exported then use menu "Edit > Remove Unused Materials". You can also replace materials in the scene using menu "Tools > Replace Material". The .vox exporter is available in the Voxel Editor under menu "File > Export > MagicaVoxel (.vox)".

The exporter supports the following options:

  • Remove hidden voxels This keeps MagicaVoxel .vox file sizes down as empty voxels aren't written to file, but you should only use this if internal voxels aren't important and you're not exporting the result to a mesh (as this would add surface area). This is similar to MagicaVoxel's "Hull".
  • Fit Model Boundaries to Voxels This fits the MagicaVoxel model's size to the AABB of the voxels inside it. This can improve performance and memory consumption in other applications.Turn this off for applications which require a specific size for their models, for example the game Idu.
  • Maximum Model Size MagicaVoxel's .vox format only supports model sizes up to 256^3, so Avoyd's exporter splits larger scenes into many models with the maximum size controlled by this parameter.
  • Unlimited Size This exports scenes larger than MagicaVoxel's 2k x 1k x 2k constraints. This is useful for some engines such as IOLITE, but the resulting .vox files will not load correctly in MagicaVoxel.

You'll find in the Avoyd documentation information on the new MagicaVoxel .vox export options recommendations for exporting to MagicaVoxel, the games Teardown and Idu, as well as the voxel game engine IOLITE.

Download Avoyd - Changelog - Documentation

Note for programmers

We use ogt_vox.h from opengametools by jpaver so if you're using C/C++ you should be able to add .vox loading to your code which supports scenes exported by Avoyd relatively easily with this.

Doug added an option to export scenes larger than MagicaVoxel supports (larger than 2k x 1k x 2k), however this is still limited by the 32bit file size constraint of the format. He's been considering adding a run length encoded voxel chunk instead of the 'XYZI' one MagicaVoxel exports to reduce file sizes. MagicaVoxel won't be able to load/save to it but he could make a command line util to compress/uncompress if this seemed useful to folks.

   juliette#enki - Thu, 23 Mar 2023, 19:06 UTC edited Mon, 27 Mar 2023 16:28 - permalink

This thread covers the Beta releases we produce as we develop Avoyd 0.15.0, and relevant progress news.

Change Log - Download Avoyd BETA

Use this thread to give us feedback about the betas. Mention the full build number you're using, ex. "".

To receive an email notification when an answer is posted to this thread, subscribe to it. See the "Subscribe" button at the bottom of the page.

juliette#enki - Mon, 27 Mar 2023, 16:23 UTC edited Mon, 27 Mar 2023 16:30 - permalink

We've started work on adding a ground. It will be a full volume occupying half the world and as such will create a horizon. You'll be able to select the material for it, for example a reflective metal or water. We also plan to work on the atmosphere which in combination with the horizon should create interesting effects.

Adding such a large volume has revealed existing graphics issues. So far we fixed the following in beta build

  • FIXED - VoxelEditor - Graphics - Broken and noisy voxel edge patterns on extremely large flat surfaces.
  • FIXED - VoxelEditor - Graphics - Self shadowing issue on extremely large flat surfaces.
  • FIXED - VoxelEditor - Renderer - Scattering when ray does not pass through a node boundary.
doug#enki - Fri, 31 Mar 2023, 10:31 UTC edited Fri, 31 Mar 2023 10:59 - permalink

Further fixes in Beta build

  • FIXED - VoxelEditor - Graphics - Level of Detail geometry in distance picking the wrong material.
  • FIXED - VoxelEditor - Graphics - Raycast and per vertex ambient occlusion errors due to level of detail being too low.
  • FIXED - Potential crash or data corruption due to error in read/write lock (no issues reported or observed but code was incorrect).

I posted some technical info about one of the issues I fixed on Mastodon. Precision issues in large voxel worlds strike again!

Another problem I found and fixed was related to a level of detail (LOD) optimization which reduces the LOD on large leaf nodes - i.e. regions where the voxels are all the same. This works for geometry, but a problematic side effect is that vertex ambient occlusion (AO) and raycast AO (stored in a 3D texture with resolution linked to LOD) often have too low frequency to cope with surrounding volumes with more detail.

The solution was to take into account the detail observed when calculating vertex AO and raycast AO, which I do by tracking the maximum depth observed in the octree whilst generating the geometry.

doug#enki - Fri, 14 Apr 2023, 14:45 UTC edited Fri, 14 Apr 2023 15:07 - permalink

Further additions to Beta build

  • ADDED - VoxelEditor - Export - Export to MagicaVoxel. Menu File > Export > MagicaVoxel (*.vox)
  • FIXED - VoxelEditor - Moved read lock which was preventing Auto Defrag Octree on Save.

The latest Beta includes prototype export to MagicaVoxel (*.vox). Currently the export doesn't optimize the number or size of models which make up the .vox file, so the resulting files can be very large and may be too large for MagicaVoxel to render. Future versions will optimize this where possible.

There are two main constraints to the exporter due to MagicaVoxel limitations:

  1. Your world must be smaller than 2000x1000x2000 in size. If your model is larger you can copy a section using the Box Shape of this size with Anchor on, then use menu "File > Save Paste Brush as World", then reload to export.
  2. Your world must have fewer than 256 materials. Use menu "Edit > Remove Unused Materials" before export. If there are still too many materials use menu "Tools > Replace Material" to replace materials, then run menu "Edit > Remove Unused Materials" again. Since this can be a lengthy operation when there are lots of materials I hope to implement an automatic version.

Example image Minecraft map Atropos by Carlooo downloaded, imported into Avoyd and exported as .vox then rendered in MagicaVoxel (using sparse Geometry).

Note that the ground changes are currently on hold as there are knock on problems with adding a voxel ground which fills the bottom half of the octree.

Avoyd downloads

doug#enki - Mon, 17 Apr 2023, 11:14 UTC edited Mon, 17 Apr 2023 11:14 - permalink

Beta build has an improved export to MagicaVoxel (*.vox) which fits the model bounds more closely to the voxels.

doug#enki - Fri, 21 Apr 2023, 11:19 UTC edited Fri, 21 Apr 2023 11:32 - permalink

Beta build includes further improvements to the MagicaVoxel (*.vox) exporter:

  • No longer need to remove unused materials before exporting
  • If there are more materials than MagicaVoxel can handle (>255) then Avoyd will merge similar materials in the exported .Vox file to keep the number of materials within MagicaVoxel's limits.

Additionally we added the following fixes:

  • FIXED - VoxelEditor - Renderer - Fully transparent surfaces with no index of refraction difference at boundary now use inverse ray direction for normal to improve denoising.
  • FIXED - VoxelEditor - Files which were written to but which have errors are now deleted.
  • FIXED - Graphics - Improved level of detail material selection for thin surfaces, so voxels on the visible face are preferred.
  • FIXED - UI - The file dialogue now selects the correct file in the list of files on opening for all sort orderings.

Screenshot of render in MagicaVoxel showing a small section featuring an island with purple trees in Minecraft map Drehmal V2 Screenshot of render in MagicaVoxel showing a small section featuring an island with purple trees in Minecraft map Drehmal: PRIMORDIAL V2. This section of the map has around 400 materials in use. Avoyd combines similar materials to keep within the the .Vox format limit of 255 materials.

Avoyd downloads

doug#enki - Sun, 23 Apr 2023, 17:07 UTC edited Sun, 23 Apr 2023 17:15 - permalink

Beta build further improves the MagicaVoxel (*.vox) exporter:

  • Fixed a potential crash when there are more than 255 materials and the last material is in use.
  • Improved the progress information
doug#enki - Mon, 24 Apr 2023, 18:19 UTC edited Mon, 24 Apr 2023 18:19 - permalink

Beta build

  • Fixed a potential crash with the MagicaVoxel (*.vox) exporter when the first model in the scene has no voxels.
  • Added - UI - Default theme Dear ImGui "Classic". Menu Settings > Display
doug#enki - Tue, 25 Apr 2023, 12:06 UTC edited Tue, 25 Apr 2023 12:12 - permalink

Beta build

  • FIXED - VoxelEditor - Renderer - Incorrect rendering when material id 0 was transparent.
  • FIXED - VoxelEditor - File > New resets materials before loading defaults so that transparency information is not carried over from previous materials.

Avoyd render of clouds shadowing the top third of a white mountain peak. The landscape in this scene is Minecraft map Lisrina by Dannypan. The clouds were created by Kr0wn in WorldMachine and imported in Avoyd, with x4 applied to make them larger. Rendered in Avoyd in openEXR format with brightness and contrast tweaked in GIMP. Avoyd render of Clouds Shadowing Mountain Peak - map Lisrina by Dannypan, clouds created by Kr0wn in WorldMachine and imported in Avoyd, with x4 applied to make them larger. Rendered in Avoyd in openEXR format with brightness and contrast tweaked in GIMP.

Please log in or create an account to post an answer or to subscribe to this thread.

Log in Sign up