bevy_vox_mesh

Crates.iobevy_vox_mesh
lib.rsbevy_vox_mesh
version0.8.0
sourcesrc
created_at2021-04-08 08:56:54.173377
updated_at2023-11-14 08:13:21.602199
descriptionA bevy engine plugin for loading magica voxel files directly in bevy as usable meshes.
homepage
repositoryhttps://github.com/Game4all/bevy_vox_mesh
max_upload_size
id380747
size110,725
Lucas Arriesse (Game4all)

documentation

README

bevy_vox_mesh

A plugin for the bevy engine which allows loading magica voxel .vox files directly into usable meshes. This uses mesh vertex coloring.

Bevy compatibility

Bevy version Plugin version
0.5 0.1, 0.2
0.8 0.4
0.9 0.5
0.10 0.6
0.11 0.7, 0.7.1
0.12 0.8

Usage

demo screenshot


use bevy::prelude::*;
use bevy_vox_mesh::VoxMeshPlugin;
use std::f32::consts::PI;

fn main() {
    App::default()
        .add_plugins(DefaultPlugins)
        .add_plugin(VoxMeshPlugin::default())
        .add_startup_system(setup)
        .run();
}

fn setup(
    mut commands: Commands,
    mut meshes: ResMut<Assets<Mesh>>,
    mut stdmats: ResMut<Assets<StandardMaterial>>,
    assets: Res<AssetServer>,
) {
    commands.spawn(Camera3dBundle {
        transform: Transform::from_xyz(-2.0, 2.5, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
        ..Default::default()
    });

    commands.spawn(PbrBundle {
        transform: Transform::from_scale((0.01, 0.01, 0.01).into())
            * Transform::from_rotation(Quat::from_axis_angle(Vec3::Y, PI)),
        mesh: assets.load("chicken.vox"),
        material: stdmats.add(Color::rgb(1., 1., 1.).into()),
        ..Default::default()
    });
}



Take a look in the examples/ directory for a complete working example.

Acknowledgements

This asset loader is powered by the awesome block-mesh-rs crate.

Ported to bevy 0.12.0 thanks to @baranyildirim.

Commit count: 64

cargo fmt