MagicaVoxel @ ephtracy [Win/Mac] 0.99.7.1 [5/29/2023]
A free lightweight GPU-based voxel art editor and interactive path tracing renderer. Feature Demo Demo2
License
- Free to use for any project.
- Credits to the software are appreciated but not required (e.g. "created by MagicaVoxel").
- Selling the software (original or modified) is disallowed.
- Shipping the software in other packages is disallowed.
Update Log
- win64 : VCOMP140.DLL You may need to download this for windows: Visual C++ Redistributable for Visual Studio 2015
- win64 : VCOMP100.DLL You may need to download this for windows: Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)
- macOS : unable to open the app: go to Security and Privacy panel to allow the app open.
- macOS : Black screen: move magicavoxel.app outside the folder and then move it back.
- macOS : too slow at retina resolution: disable Brush->Display->HDPI.
- UI is too small: CTRL +/- to scale the ui. or change ui_scale in the config.txt file.
- Multiple objects in the world editor: press TAB or double-click the background.
- No middle mouse button: space + left drag to pan camera, z + left drag to zoom camera.
- Black screen in the renderer: GPU cards or the driver don't meet the requirement.
- Incomplete scene in the renderer: enable Sample>Geometry>Sparse. Also increase config.txt->render->dense_buffer/sparse_buffer.
- Part of the model is under the ground: go to the world editor, move the object above the ground (or press G).
- Models are deleted by mistake: The model can be recovered from the Trash.
- Program crashed: The model can be recovered from "/cache/backup.vox".
- Save screenshots for the whole window: CTRL+6 or CTRL+F6.
- Exported models are not centered: enable IO->Export->Local.
- Program crashed by corrupted backup model files: delete the backup files in the cache folder.
- Animation (on the top, click left the arrow button)
- Define the custom active timeline range (0-360) for the animation using the top two markers or in the popup menu.
- Auto animation placyback.
- Denoiser can be auto enabled for each frame of animation and turntable rendering.
- Palette
- use ctrl+drag to move (swap) multiple selected colors in the palette.
- change/increase the H/S/V/R/G/B values of colors in group.
- copy and paste selected colors to another palette.
- Layer
- Sort layers by names in the popup menu.
- Select objects on the current selected layer.
- use ctrl+shift+A to select all visible and invisible objects.
- Animation Panel (on the top, click left the arrow button)
- Click + to add a new frame.
- Click + to replace an existing frame (otherwise, the frame won't be automatically updated).
- Click - to delete frames.
- Click the frame marker to select the frame.
- Click the frame marker with CTRL/SHIFT to select/deselect multiple frames.
- Drag on the selected frames to move them.
- Drag on the selected frames with CTRL+SHIFT to duplicate them.
- Right-Click the animation panel to open the menu (select all/inverse/none, and reverse frames).
- Can Pack multiple models into an animation, or vice versa.
- Can edit the models in local/global timeline.
- Can have animation for both models and objects.
- To move/duplicate animations, first put the animated models in a group object.
- There are issues with the pivots in this version. Try to keep the frame models the same size.
- Animation Rendering (Render->Image->Anim)
- Define the start and end frames.
- Click "Render" button to Render.
- Most of the rendering and camera settings can be modified in the console now.
- Transform Edit (Scene Editor)
- Copy/Paste Transform/Rotation/Translation of objects.
- Explicitly edit the position of objects
- New gizmo
- New Pattern Library Panel (Star icon on the right panel)
- Create (or import) all assets in a single project.
- Load the asset project as a pattern library.
- Drag and drop assets into the scene.
- Enable "Match" to automatically match the pattern palette to the scene palette.
- Resize panel to display more patterns.
- New Scene Outline Panel (Second icon on the right panel)
- Right-click menu to rename objects, expand/close groups, hide/unhide objects.
- Double-click to enter an group or a model. Then you can select and edit inner objects/voxels.
- Click the active objects (in the current group) to select them. Press SHIFT/CTRL for multi-selection.
- Click the circle icon to hide objects.
- The layer color is shown on the right.
- Use the arrow keys to change the order of objects. Press SHIFT to move to first/last.
- You can create new object, rename object even in the model editor mode.
- New Layer Panel (In the world editor)
- Click on the left of the circle to change the layer of the selected objects (triangle will be shown).
- Click the circle to hide the layer.
- Click ion the right of the circle to select the active layer (new created objects will use this layer).
- Right-click the name to show the menu to rename, hide layers.
- Right-click the circle to change the color of the layer.
- Camera Panel (The bottom panel)
- Fov: change the camera field of view.
- Speed: change the camera speed in the free mode.
- Mouse: change the mouse sensitivity.
- Multi-Language Translation
- Check the repo: Language
- Copy and paste the files (font, dict, locale) to the /config folder
- "dict.txt" defines the dictionary for translation.
- "font/" defines the freetype fonts.
- "locale.txt" defines the font and dict files.
- New Unified Material System[06/30/2020]
- Blend Material: weighted blending Metal/Plastic/Glass/Cloud materials (similar to Disney Principled BRDF).
- SSS Material: sub-surface scattering. transparency tp control light transmission. density to control light scattering.
- Aborb/Scatter/Emissive Media Material: emissive cloud. can be contained in the glass with ior > 1.
- Improved Alpha Blending: glass material, absorb media type, density = 0, ior = 0, transparency > 0
- New Transform and Voxel Shader Brushes[09/26/2020]
- Refactored the brush menu and add icons.
- Voxel Shader Brush to use Voxel Shaders interactively and directly.
- Transform->Scale Brush : live scale models, point sampled, low quality but fast.
- Transform->Wrap Brush : live wrap/crop models with mirroring and spacing modes.
- Geometry Mode->Line/Square/Circle: the old center mode is combined with the old line mode
- World Editor->Pattern and Wrap Brush: can create patterns from selected object (check the pattern model menu on the right panel).
- Rotate Transform Brush [09/26/2020]
- Axis rotate : press any inner circle.
- Screen rotate : press the outer circle.
- Sphere rotate : press any point inside the outer circle.
- Snap rotate : press SHIFT or SHIFT+ALT to snap angle to multiple of 5 or 15.
- Voxel Shader[09/13/2020]
- no need to define id for arguments.
- use var to define alias of arguments. same as float var = i_args[id];.
- can import and export arguments values.
- can display compile errors in the console window.
- can get color selections via: color_sel().
- can get palette color via: palette().
- increase number of arguments to 16.
- add interation number to the interface.
- Editing[09/26/2020]
- Boolean operations for groups and objects.
- Modify->Mask/Texture: mask and texture models with pattern models.
- Sort: only sorts selected colors if number of selection is greater than one.
- command log: display count of models, scene size, count of voxels for each color, etc.
- command shear [axis] [scale] [scale] shear model, e.g. shear z 0.2 0.2 .
- Camera Control Panel[09/26/2020]
- click the arrow on the bottom bar to show the camera control panel.
- can change camera global/local position, pitch/yaw/roll angles, save/load camera slots, etc.
- press SHIFT to change values in smaller steps.
- the nine values can also be modified by cmds cam x/y/z tx/ty/tz rx/ry/rz
- Pattern Pack[09/26/2020]
- can load all the models in a project as a pattern pack.
- can create pattern pack from multiple selected objects.
- use left/right mouse button to rotate the preview model; use mouse wheel to zoom in/out.
- use 1/2 to select previous/next color in the palette.
- use 3/4
- use ctrl+alt to switch to pattern tool.
- use ctrl to switch to free move tool.
- use ESC to switch between pattern/move brush and select brush in the world editor.
- Scene Editor
- Double-click to enter/leave objects.
- Right-double-click to leave objects.
- New option to allow double-click to directly enter into a model.
- New option to allow SHIFT + drag to duplicate/reference objects.
- The latency of swiching between model editor and scene editor is reduced.
- Ref-R recursively convert reference to duplicate.
- Reset rotation to identity tool.
- Brush
- New brush selection tool: Brush modes (V/F/B/L/C/P) and options (mirror/axis) can be applied.
- New resizable box brushe use gizmo to resize the box; press enter or other stroke/edit to commit.
- New SDF brush: box brush + voxel shader.
- ctrl + alt + drag to resize voxel brush.
- Sculpt Brushes can be applied to either selected or unselected regions.
- Region options are also applied to remove/replace voxel color brushes.
- Live Crop and Fit
- Fit tool allows fitting the size of multiple objects
- Crop tool allows live resizing the canvas: drag arrow body to resize, drag arrow head to move
- New 1/2 tool.
- IO panel
- export/import palette/materials/rendering/camera/notes settings in text format.
- determine which components are saved in the vox file.
- export options: only export selected objects; export models in local space.
- import options: match similar colors in the palette; only import colors/materials for selected palette region.
- Voxel Shader panel
- Can bind user defined arguments to the interface via comments.
- live update by using the box brush.
- Palette Note panel
- add note to each row of the palette.
- Display
- AO and constant shading modes.
- Toggle background objects fading.
- Change grid/edge/selection/background color.
- Model Editor [04/05/2020]
- Canvas size for single object increases to 256x256x256.
- Rendering method in the editor view is changed to pure Ray Casting.
- Most of the brushes and edit commands are shader-based (GPU accelerated).
- Undo/Redo commands are compressed to reduce memory usage. (can undo up to 100 commands)
- Can import jpeg images and export jpeg screenshot.
- Multiple Color Selection in the Palette [04/27/2020]
- the color and material modification (and some other cmds) can be applied to multiple colors now.
- e.g., rand cmd now uses the multiple selection as random range.
- click : single cursor selection;
- drag : multiple selection;
- shift + drag : add selection;
- shift + alt + drag : remove selection;
- can copy and paste color code from the right-click menu.
- can select voxels by colors from the right-click menu.
- can select colors by voxels from the right-click menu.
- Intel Open Image Denoiser [0.99.4.2]
- Requirement: 64bit system, 4GB memory
- Installation: download plugin.zip and extract the content to the program folder.
- Image->Filter->Denoise: denoise rendered images in the preview mode. use mouse wheel to zoom in/out, left-drag to move image.
- Image->MRT: render additional albedo and normal images to help the denoiser to preserve details. note that it does not always improve the quality.
- Sample->Bounce->Clamp: clamp energy to reduce noises.
- Image based Lighting [0.99.4.1]
- Sky->IBL: Image Based Lighting. use ".hdr" format panorama images to light the scene.
- Fog: add Equi-angular sampling back to reduce noises. support fogs in othogonal views in a bounding volume.
- Media: enable Sample->TR-Shadow to allow single direct lighting; enable Sample->MIS-Cloud to allow multiple direct lighting (very expensive).
- Color all color options have their own color pickers which support HSV, RGB, H-Block and Hex values.
- Palette Menu right click the palette view to show the pop-up menu.
- Cloud [0.99.4]
- Matter->Cloud: Media material which supports multiple scattering inside volume.
- Sample->MIS-GGX: Multiple Importance Sampling (MIS) for GGX surfaces (Metal/Plastic/Glass) for better reflection.
- Sample->TR-Shadow: Translucent Shadow which allows light passing though glass and cloud voxels. Only Glass->Attenuation can affect the light color.
- can adjust Bounce->Diffuse/Specular/Scatter path depths separately.
- can assign glass/cloud materials to sphere/cylinder shape voxels (for experiments only).
- the renderer pipeline is refactored, which needs more time to improve, optimize and fix bugs.
- some features such as fog scattering requires more researches.
- frame drops and noises are expected.
- Final Image Render : Render->Image Settings (Right Panel)
- Photo Mode: up to 12000 x 12000 size images. Bloom effect is not available.
- Turntable Mode: spinning camera animation with Motion Blur. Saved as name (frame index).png image sequence.
- Both modes can render in the background.
- You may need to disable vsyn in the GPU panel for this program.
- Lens
- Panorama Projection: Lens->Pano. Set image size width = height x 2
- Focus: can fix or set focus distance by numbers.
- Depth of Field effect can be enabled in all camera projection modes.
- Fixed bugs for camera blades (images become darker) and grids.
- Camera Control
- X+left click to set the camera rotation center in both editing and rendering modes.
- Export
- add slices/cubes/point clouds export options
- export settings (scale, axis, etc.) can be found in config/config.txt/io_*
- export objects are named as [project name]-[index]-[object name].[ext]
- the vertices of the mesh exports are using their global positions in the world editor.
- Config
- can modify edge/ground/background/fade color of the editor
- add hotkey.txt in config/ folder to bind keys to commands.
- the keys A-Z, 0-9, F1-F12 are recommended.
- repeat token means that you can hold the keys to automatically perform multiple times of actions, e.g. undo/redo
- commands may be refactored in the future. The feature is not robust. Use it carefully.
- New Interface
- Redesigned the interface
- Slidable and resizable panels
- SDF font rendering
- CTRL+/- to scale UI size
- a basic object list to show the scene graph, will be improved in future updates
- Renderer
- Large Sparse Volume: Sample->Geometry->SV the rendering volume increases to 2048x2048x1024. But the total number of solid voxels is still limited. SV Mode works with cubic voxel only
- Voxel Shapes: new Clay shape with the previous supported shapes (Lego, Marching Cubes, etc.)
- World Scale: rectangular voxels
- Pixelated Illumination: Sample->PX
- Can show sun disk in the sky; added Ozone attenuation
- Fix bugs in orthogonal views
- Voxel shapes and SV mode will be improved in future updates
- Palette
- CTRL+Drag: swap (move) color
- CTRL+SHIFT+Drag: duplicate color
- cmd pal sort [+-hsvrgb]: sort palette colors (e.g. pal sort vsh)
- Voxel Shader
- add xs_shader in config.txt
- can execute subfolder shaders: xs sub/poly
- Renderer (hidden menu)
- Atmospheric Scattering Skydome: Rayleigh/Mie scattering
- Bladed Bokeu: for large depth of field
- Stretched Bloom Filter
- Grids: can change Spacing, Width, and Color
- Field of View (FOV): change range to: 1-360
- Fix some bugs: e.g. Bloom dark points
- More options are saved into file, format is changed as well
- Editor
- Align Objects in Editor
- New object is using last model size
- Fix importing files with unicode paths
- Add default export and snapshots folders in config
- World Editor
- Support multiple objects
- Larger scene area: (-1024, +1024)
- Group objects
- Reference objects/groups: modifying one of the references will affect the others
- Transform objects: rotate, flip, move
- Rectangle select: SHIFT to add selection, ALT+SHIFT to remove selection
- Translation gizmo and free movement: Shift+move to get a referenced copy
- Union combine objects
- Copy/paste objects between world editor and model editor
- Hide objects
- Change order of objects for drawing and combination
- Layers: to hide objects with same layer tag
- Hotkey TAB to switch between model editor and world editor
- Hotkey TAB/SHIFT+TAB to enter/leave groups
- Renderer
- Performance optimizations
- Support larger volumes: 512x512x512, 1024x512x256 or 1024x1024x128
- Can copy/paste materials using CTRL+C/V or Matter->C/P
- Rendering settings are saved into file: lighting, lens, ground/edge colors, etc.
- Blooming effect is automatically calculated, and can be paused as well
- Can display constant color background: View->Back
- View Cube
- Smooth camera transition
- Click the cube face/edge/vertex to set to 26 standard view angles (90/45)
- Left-drag the view cube to rotate view
- Hotkey 4 to recenter view; hotkey 5 to show one of the 6 face views (front, back, etc.)
- Z+left drag to zoom view
- X+left drag to rotate view
- Space+left drag to move view
- 7/8 to save/load view
- Editing
- Auto-saved to cache/ folder every 25 steps
- UI
- UI scaling for High DPI screens: enter ui scale 1.5 in console or change ui_scale in config.txt
- Panel is scalable (some UI elements are hidden behind)
- Palette: pick color from screen: ALT+left drag
- Lower CPU usage: only redraw when needed
- Limitations: will be improved in future version
- Not stable
- Export: can only export single models, cannot export models with offsets and names
- Render: no voxel shapes
- Animation: no frame based animation
- Bloom
- Click the button in Bloom section to calculate bloom effect when any rendering setting has been changed
- It has its own progress bar, and uses the same number of samples from the top
- When adjusting the weight with the slider, it won't restart rendering
- It will enable Camera->ACES automatically
- Bokeh
- It has larger aperture size for DOF (depth of field)
- HDR Emissive Material
- Formula is changed to Emit * (10 ^ Power)
- Glow is only used to enhance Bloom and Bokeh effects
- Pause Rendering and Instant Feedback
- Click Image->|| to pause progressive rendering
- Enable Sample->GI
- Every change of material will be immediately displayed in viewport
- (*expensive option, higher end GPU recommended)
- Sky Background
- Enable View->Back (CTRL+B) to display sky as background
- The fading ground into horizon is controlled by Fog slider
- For real fog, enable Fog firstly
- Ground Material
- Now you can use Alt+LButton to click the ground, and then assign Metal material to it
- Pixelated Rendering
- Turn off View->AA to disable Anti-Aliasing and set image size small (128, e.g.)
- Selection
- New Box/Rect/Region selection brushes
- New selection tools Edit->Select: Copy/Paste, Deselect/Inverse Select, etc.
- Attach/Erase/Paint brushes can only operate on unselected voxels
- Move/Remove Color/Replace Color brushes can operate on both selected and unselected voxels
- Edit Tools can only operate on selected voxels
- Transform Tools Flip/Rot/Loop/Scale/Repeat modify selected voxels around local center
- Export only exports selected voxels if selection exists
- Selection Brushes
- +SHIFT to add selection, +SHIFT+ALT to subtract selection
- Box Select: select voxels within a box
- Rect Select: select voxels within a screen rect: K+RButton click voxel to navigate to 90 degree view
- Region Select: select voxels within same volume, same face, or with same color
- Pattern Brush
- Can create Pattern directly from selection: very helpful for texturing surface/duplicating small shapes
- Can rotate Pattern around z, x, y axes with keys -/+, 9, 0
- Can add local offset to Pattern with arrow and page keys
- Reset local offset to 0 with Home key
- Bounding Box and Frame Grids
- Can select on all six faces of bounding box now
- View->Frame: can change spacing, very helpful for measurement
- Camera Setting
- Camera->ton: ACES Filmic Tone Mapping
- Camera->dof: Depth of Field, click voxel with LButton to set camera focus
- Misc
- Command dia [axis]: diagonal symmetry
- Command o slice: export volume as an image of size (width, height x depth)
- Frame-Based Animation
- Supports up to 24 frames animation
- Ctrl+Drag to move frame, Ctrl+Shift+Drag to duplicate frame
- Press on the prev/next button to play animation (you can also change time step)
- Drag and drop multiple models to import as animation
- It can also be used for other purposes, like assets of same category
- However, features of importing and exporting anim are not fully supported yet
- New Interface
- Materials are saved into .vox file now
- If there are unsaved changes, the tiny button besides name field will become orange, click it to save
- Program will ask for saving changes when opening new models or closing the program
- Click the title of each panel to close it
- Tool->Scale, Repeat, Rotate are removed, use console commands scale, repeat, rot instead
- Voxel Shader also supports generating anim now
- [New inputs]
- iFrame: current frame index
- iNumFrames: total num of frames
- iIter: current iteration index
- iRand: a vec4 random number updated every iter and frame
- [New Options]
- -n: specify number of iterations, eg. xs -n 8 [shaderName]
- -prev/-cur: specify input frame, -prev for previous frame, -cur for current frame (default is -prev)
- Fog Scattering: can scatter all types of lights (Sun/Sky/Area)
- Only works in Pers/Free camera modes
- Works for glass/metal materials (can get reflection/refraction from sun light)
- Surface can also be lit by scattered light
- Can create light shafts
- Can create background with small fog density
- Fog color mainly depends on light color and in-scattering color
- Ground is changed to infinity large in all camera modes
- Optimized shaders by removing unused branches
- New Emissive Area Lighting
- Emit->Power: Radiant Flux for Area Lighting
- Emit->Glow: Energy loss on closer surface
- Emit->Total: Total power for all voxels or power density
- Hints:
- Requires GI option enabled for advanced effects
- Only supports Cubic/RG/RE voxel shape
- For small but strong light source (e.g. point lights), use Emit->Total
- It is recommended to use lower image resolution (e.g. 640x480) when adjusting parameters
- For better quality of final image, use more samples (e.g. 5000)
- Not very robust for this version (has several potential artifacts)
- If it is still too dark, do not forget to use Post->E to increase exposure
- Fix several artifacts for Glass material
- New Metal/Plastic Material with GGX NDF
- Post Effects
- Post->E: Exposure, when the scene is too dark, you can increase this
- Post->V: Vignette
- Camera->G: Gamma Correction
- Pick up Sun/Sky Color from Palette
- Better Quality of Soft Shadow
- Sample->GI : on the top right, enable stochastic sampling for better indirect illumination
- It's slower (~50%) and noisy (requires 3000+ samples)
- Use it for indoor scenes, larger exposure, or final render
- Export->bake: bake voxel mesh with ambient occlusion and soft shadow:
- Example on Sketchfab
- Must support the built-in renderer, if program crashed, recover model from cache/ directory
- It may take from several seconds to half a minute, depending on machine, model, and sample number
- Set sample number, direction and intensity of light sources in renderer mode
- config->bake->perface: bake per face (pixelated) or per vertex (smooth)
- config->bake->ambient: constant ambient color to make scene brighter
- config->bake->gamma: for app with gamma correction, set it to 2.2 to avoid color washed out
- New CMD odir: export all models in current folder, e.g. odir obj
- Palette ALT+DRAG: swap palette color without changing model, make it easier to organize palette
- Fixed a bug in .qb export
- New Voxel Shader:
- Supports GLSL based shader script to generate your custom volume
- Shaders are in the new folder shader/
- Try typing [xs wave] in console to start
- Basic command format is: xs [shader name] [arg0] [arg1] [..]
- If you want to run the shader multiple times in one run, use: xs [num] [shader name ] [args...]
- New Brush Options:
- [V]oxel Mode: 3D (Volume: Cube, Sphere), 2D (Flat: Square, Disc), Su (Surface, only operates on surface)
- - Added hotkeys 1-9 to set brush size quickly
- [C]enter Mode: supports both square and circle shape now
- [P]attern Mode: can choose using either original model color or current palette color
- - Can be applied on erasing and painting now
- New Marching Cube Export Export->mc: export your voxel model as Marching Cube meshes (.ply)
- Camera Control: use middle button to move camera
- Cache Folder cache/: program will automatically backup model before quitting program or rendering model
- Obj Export Pivot: fixed bugs for obj pivot, you can also set your custom pivot in config.txt->file_obj
- Palette Command: added command pal mask to mask out unused color in palette
- Fixed a little rendering bug with orth/iso camera, still not very robust though
- Enhanced Brushes, Improved UI and File System:
- Save and Open dialog for all Palette, Model, Export, Screenshot files
- Face Brush: extrude surface by dragging with various modes
- Voxel Brush: has been integrated with Cube and Sphere Brushes, working with mirror and axis modes now
- Circle Brush: center voxel of circle is not operated; support even diameter size
- HUD: voxel coordinates, volume size, face layers, circle radius are displayed in console now
- Camera: added X+RButton to select camera focus center, and yellow button to toggle auto camera focus
- Export: fixed obj export and more config options for isometric and 2d sprite export
- Render: Light->0 is changed to pure color model; the ground in orth/iso mode will be infinity large
- Multiple UI improvements
- Matter->Glass: new transparent voxels with refraction and attenuation
- Matter->Sel: per palette material setting (use Alt+LButton or LButton to select material)
- New Emissive material; perfect mirror reflection (Rough = 0); over 8 light bounces
- Folder path setting in config file; bug fixed for .obj export
- Export->iso: new isometric sprites export
- Export->obj: color based mesh simplification for .obj format
- Model List: drag 'n drop folder to model list to change its root path
- Renderer supports various voxel shapes (Lego, Marching Cube, Sphere, Cylinder) and rounded corners, colored grids
- Camera supports stereographics projection, radial distortion, Escher Droste effect
- Use F5/F7 to save/load current camera
- Performance improvement and bug fixes