- Support for loading animations from Magica Voxel 0.99.7 files, and also generating animations procedurally. Instead of a single model handle,
VoxelModelInstance
now has a vec of model handles. If you're generating your own animation, you will also need to add aVoxelAnimationPlayer
component. See the animation-generation example. When loading animations from vox files, the loader will add aVoxelAnimationPlayer
automatically. This can be adjusted using theVoxelInstanceSpawned
hook. See the animation-scene example. VoxelContext::new
now returns an Optional.
- Fix srgb color palettes
VoxelModelInstance
now hasTransform
andVisibility
as required components
- MagicaVoxel cloud materials are now imported as volumetric fog textures. See the
cloud-scene
example. - Because of this change,
VoxelModel
's mesh and material handles are now optional. This is because if a model consists only of cloud materials, it won't have any surfaces to be meshed. VoxelInstanceSpawned
previously only fired for models that had been named in the Magica Voxel editor. Now it fires for all models, named and unnamed, and also includes their layer name, if a name has been assigned to the model's layer in the Magica Voxel editor.- Add
uses_srgb
field toVoxLoaderSettings
, defaulting to true, to more accuratelty match the colors in the Magica Voxel render pane.
- Update to Bevy 0.15
- Add a
pbr_transmission_textures
feature tracking the same-named feature in Bevy. This allows you to disablepbr_transmission_textures
, freeing up texture slots if you want to instead support other rendering features like percentage-closer soft shadows on macOS or webGL. See this Bevy PR for an explanation. If you disablepbr_transmission_textures
but still need to use transmissive materials in your scene, you should ensure that each model only contains either solid or transmissive materials, but not a mixture of both: combining solid and transmissive in a single model requires transmission textures. An added bonus of dividing models this way is that the solid sections will be visible through the translucent sections (whereas in a model combining solid and transparent materials, the solid sections of the model won't be visible through the transparent sections). - Add a
VoxelInstanceSpawned
event that automatically propagates up through the scene hierarchy, allowing you to scope observers to specific branches of your scene.
- Remove
VoxelScene
andVoxelSceneBundle
:VoxSceneLoader
now loads Voxel files directly into a BevyScene
VoxelSceneHook
andVoxelSceneHookBundle
removed in favour of observers- Ability to inject global
VoxLoaderSettings
intoVoxSceneLoader
as a workaround for the bugs in Bevy whereload_with_settings
ignores settings under various conditions. - Add
UnitOffset
parameter toVoxLoaderSettings
to override how vertex positions are centered
- Support Bevy 0.14
- Show new bevy rendering features in examples (volumetric fog in transmissions scene and depth-of-field in voxel collisions)
- Create a palette from a gradient