bevy_mod_outline icon indicating copy to clipboard operation
bevy_mod_outline copied to clipboard

Incomplete outline for annulus extrusion

Open Netzwerk2 opened this issue 7 months ago • 0 comments

Problem

Adding an Extrusion that uses an Annulus and generating its outline normals results in one edge missing from the outline.

Result

Screenshot_20240727_123706

Minimal example

use bevy::prelude::*;

use bevy_mod_outline::*;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins,
            OutlinePlugin,
            AutoGenerateOutlineNormalsPlugin,
        ))
        .add_systems(Startup, setup)
        .run();
}

fn setup(
    mut commands: Commands,
    mut meshes: ResMut<Assets<Mesh>>,
    mut materials: ResMut<Assets<StandardMaterial>>,
) {
    // Add cube with generated outline normals
    let annulus = Annulus::new(1.0, 1.2);
    let mut ring_mesh = Extrusion::new(annulus, 1.0).mesh().resolution(16).build();
    ring_mesh.generate_outline_normals().unwrap();
    commands
        .spawn(PbrBundle {
            mesh: meshes.add(ring_mesh),
            material: materials.add(StandardMaterial::from(Color::srgb(0.1, 0.1, 0.9))),
            ..default()
        })
        .insert(OutlineBundle {
            outline: OutlineVolume {
                visible: true,
                colour: Color::srgb(0.0, 1.0, 0.0),
                width: 5.0,
            },
            ..default()
        });

    commands.spawn(Camera3dBundle {
        transform: Transform::from_xyz(0.0, 0.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
        ..default()
    });
}

Netzwerk2 avatar Jul 27 '24 10:07 Netzwerk2