Crate bevy_mod_outline

source ·
Expand description

This crate provides a Bevy plugin, OutlinePlugin, and associated components for rendering outlines around meshes using the vertex extrusion method.

Outlines are rendered in a seperate pass following the main 3D pass. The effect of this pass is to present the outlines in depth sorted order according to the model translation of each mesh. This ensures that outlines are not clipped by other geometry.

The OutlineVolume component will, by itself, cover the original object entirely with the outline colour. The OutlineStencil component must also be added to prevent the body of an object from being filled it. This must be added to any entity which needs to appear on top of an outline.

The OutlineBundle and OutlineStencilBundle bundles can be used to add the right components, including the required ComputedOutlineDepth component. Optionally, the SetOutlineDepth and InheritOutlineDepth components may also be added to control the depth ordering of outlines.

Vertex extrusion works best with meshes that have smooth surfaces. To avoid visual artefacts when outlining meshes with hard edges, see the OutlineMeshExt::generate_outline_normals function and the AutoGenerateOutlineNormalsPlugin.

Structs

A component for storing the computed depth at which the outline lies.
A component which specifies that this outline lies at the same depth as its parent.
A bundle for rendering stenciled outlines around meshes.
Adds support for rendering outlines.
A component for specifying what layer(s) the outline should be rendered for.
A component for stenciling meshes during outline rendering.
A bundle for stenciling meshes in the outlining pass.
A component for rendering outlines around meshes.

Enums

Failed to generate outline normals for the mesh.
A component which specifies how the outline depth should be computed.

Constants

The direction to extrude the vertex when rendering the outline.
Name of the render graph node which draws the outlines.

Traits

Extension methods for [Mesh].