Pixelate Mesh

crates.io docs.rs

Apply a pixelation effect to any Bevy mesh or scene without post-processing.

Pixelated foxes

Usage

The tracking component is needed because the plugin draws the textures on 2D canvases that need to rotate to always face the main camera.

Compatibility

| bevy | pixelate_mesh | |------|---------------| | 0.10 | 0.1 |

Examples

The following is an annotated minimal example. More can be found in the examples folder.

```rust use bevy::prelude::; use pixelate_mesh::prelude::;

fn main() { App::new() .addplugins(DefaultPlugins) // Add the plugin .addplugin(PixelateMeshPlugin::::default()) .addstartupsystem(setup) .run(); }

// Create a component for the main camera

[derive(Component)]

struct MainCamera;

fn setup( mut commands: Commands, mut meshes: ResMut>, mut materials: ResMut>, ) { commands.spawn(( // This cube will render at 64x64 pixels Pixelate::splat(64), PbrBundle { mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })), material: materials.add(Color::WHITE.into()), ..default() }, ));

commands.spawn((
    // Add the tracking component to the camera
    MainCamera,
    Camera3dBundle {
        transform: Transform::from_xyz(-2.0, 2.5, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
        ..default()
    },
));

} ```

Inspiration

The plugin tries to emulate the effect as seen in Prodeus:

Shortcomings