Vox - Voxel Tools And Tile Map Generator
Vox is an add-on for Blender which can be used as a voxel editor:
And each voxel may be replaced by tiles:
Update 1.2 (December 2024)
I really missed being able to see which voxels are currently selected. I implemented it in two ways - with points and cubes.
You might ask, why? Cubes take a long time to render. In the demo scene, if you select all the houses, it slows down. On the other hand, points render normally. Plus, it's clear what you're selecting. Additionally, I changed the selection when adding a voxel from a face. Now, the face is still highlighted, but the future voxel is also shown with a thin line:
Update 1.1 (November 2024)
Updated for blender 4.2/4.3
Example as a voxel editor:
Example as a world city generator:
Using tile sets, not only can you build houses and cities in different shapes and variations, but also apply colors and geometry nodes effects. Example tile sets:
3 new tools will be added into edit mode:
Add voxels, Paint voxels and remove voxels.
Add voxels:
Modes:
* Default - draw a voxel or a rectangle.
* Draw and extrude - draw a point or a rectangle and extrude at second mouse click
Tile set - a collection with tiles which is used for drawing this voxels
Alt + Click - pick a color from voxel
Ctrl + Click - remove voxels
Draw voxels:
Modes:
* Brush - draw color or tile set inside a sphere with given radius
* Per voxel - draw color or tile set of one voxel
Switcher - draw color or change tile set
Strength, falloff and Spacing -similar to regular graphic settings.
Accumulate not yet implemented
Alt + Click - pick a color from voxel
Vox panel:
Define is object is in tile set or uses tile sets to build the big model.
Use as voxel
Make your tile sets:
- 1 tile = 1 object
- Size is 1x1x1, with center in the middle.
- Enable the rules which defines where tile will be added:
Layer above, Same Layer, Layer Below - define basic rules, where this tile used. For example, if you define Same layer front as "Empty or Other" this tile will be set only if there is no voxel in front of this tile.
To help you identify which button is front, left or right, all changes indicates in 3D-view:
Use custom weight - Tiles with more count of rules have more weight, and tile with maximum weight and passed all rules will be selected. In some cases, you can set custom weight.
Random Probability - If several tiles with same weight can be putted in same spot, they selected randomly. You can add some probability here to make some tile appears more often.
Allow rotation - allow rotating tile in 90 degrees.
Only on the ground level - this tile can be used only if z equals 0
Only on even - this tile can be used only if x y or z coordinate is even
Current limitations.
If scale rotation or transform is not default, Vox is not very accurate, I recommend using applied transform.
To use color in models, Vox uses "Realize Instances". If you have troubles with performance with high poly tiles - consider using switchers:
Simple box - Replaces all models by boxes only in viewport
Simple Instances - Disables Realize Instances. In viewport and in render.
To use color information in tiles, use Attribute "Vox Color", not a Vertex color node. In order to work in instances and realized geometry, you may use this setup:
To use a UV map, use Attribute node instead regular UV map nodes: