Open
1 of 3 issues completedDescription
This issue tracks the progress on Gizmo features
Contributing
Want to check off one of those checkboxes? Nothing easier!
- Open a feature request you can copy/paste the description if you feel lazy!
- Implement the feature and open a PR!
All related issues will be listed in this tracking issue.
The (IMO) easy ones
- Linecaps
- more gizmo shapes
- light source gizmos
All features
Not sorted in any specific order:
- Gizmos MVP Immediate Mode Line/Gizmo Drawing #6529 Make it possible to draw lines on screen, for them to be immediately despawned next frame
- AABB gizmos Add a bounding box gizmo #8468 Draw entity bounding boxes
- Light source gizmos: Gizmos that show where light sources are placed, potentially their intensity, color & direction (Add basic light gizmos #12228)
- UI layout gizmos: show outline of CSS flexbox and grid UI elements. Add a gizmo-based overlay to show UI node outlines (Adopted) #11237
- More than one gizmo kind: Gizmo line width/depth bias/render layer should be configurable at call site, not just in a resource (system level: Multiple Configurations for Gizmos #10342)
- multiple line width
- multiple depth bias
- multiple render layers
- Retained gizmos: We want to give shape to invisible things such as physics collider. It would make more sense to have a retained API for this. Would supersede wireframe rendering Retained gizmos #9178
-
FixedUpdate
gizmos: Currently gizmos do not work if used in theFixedUpdate
schedule. (Contextually clearing gizmos #10973, Make Gizmos compatible with FixedUpdate #9153) - More gizmo shapes (Gizmos for primitive shapes #10571)
- arrows (Gizmo Arrows #10550)
- Double ended arrows (Add double end arrow to gizmos #11890)
- lines/linestrip/ray
- cuboids/rectangles
- spheres/circles
- ellipses
- Regular polygons
- arcs/ semi-circles
- grids (Add Grid gizmos #11988)
- 3d Grid
- splines
- camera
- 3D meshes/2D meshes/wireframes (Mesh rendering support for Gizmos #10621)
- axes (Add coordinate axes gizmo #12211)
- light bulb (Add basic light gizmos #12228)
- rounded cuboid (Add Rounded box gizmos #11948)
- Cylinder/arbitrary 3d shape extrusion
- frustum (conical frustrum with 4 segments)
- pyramid/cone (Cone with 4/N segments)
- capsule
- triangle
- tetrahedron
- torus/donuts
- Rounded arbitrary shapes
- arrows (Gizmo Arrows #10550)
- Gizmo registry: Allows plugin to register categories of gizmos and defer to user ability to toggle or control properties of gizmos within a category. See Better Gizmo API #9187 and Multiple Configurations for Gizmos #10342
- System-level gizmo registration: Automate the gizmo registration by inheriting a system-level registry assignation
- Actually-immediate-mode API: no
SystemParam
required, just a macro/function call to draw gizmos, nothing more. No more need to modify the system signature to add gizmos, or even pass around the gizmo struct, in the style of https://github.com/nicopap/bevy-debug-text-overlay/) - dotted lines: Gizmo with a dotted line effect.
- Line caps: Gizmo squares have ugly corners because the line caps are not filled. See The tutorial that led to bevy_polyline
- Square caps: Extend the gizmo lines by the line width
- Round caps: Add a semi-circle of line-width radius to the end of lines
- Line Joints: Smooth out space between subsequent lines (Gizmo line joints #12252)
- Round joints
- flat joints
- spiky joints
- Text gizmos: Draw text on screen without the
bevy_text
sanctimonious rituals. Just agizmo_print!("foobar")
and it would show on screen.- multiline text: Should support line returns
- user-provided font
- Text in 2d space: Gizmo should let print text on screen on arbitrary positions in 2D games.
- log-style text: Users would not provide a position, but it would show up on screen as event in a way similar to a console message in Garry's Mod or Minecraft. Note: This is already implemented as a 3rd party plugin in https://github.com/nicopap/bevy-debug-text-overlay/
- Text in 3d space: Gizmo should let print text in 3D games, may chose to keep the same size with distance or apply perspective.
- Oriented text: Text that always faces a specific direction.
- Non-overlapping text: There could be a toggle that allows text placed on screen through 2D or 3D API to not overlap, even if they should, given their provided position.
- Filled shape gizmos: We want to be able to draw filled shapes, this might be useful for special signaling or highlighting areas. See https://github.com/james-j-obrien/bevy_vector_shapes
- semitransparent filled shape gizmos: Semi-transparent this becomes apparently much more useful.
- Reactive gizmos: ability to associate Gizmos to game state; accept input from gizmos and modify game state from gizmos. It probably would look like an immediate mode UI, but 3D Modular, Reactive Gizmos #9498