bevyengine / bevyengine/bevy

Tracking Issue: Primitive Shapes

Open
#10,572 10 comments 5 reactions 0 assignees View on GitHub
A-Math A-Rendering C-Feature C-Tracking-Issue
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

This issue tracks progress on primitive shapes, which were first added in #10466 based on the `primitive-shapes` [RFC](https://github.com/bevyengine/rfcs/blob/main/rfcs/12-primitive-shapes.md).

## Meshing #10569

Primitives should support `Mesh` construction.

- [x] 2D shapes #11431
- [x] 3D shapes #11688
- [x] Deprecate shapes in `bevy_render::mesh::shape` #11773
- [ ] Support subdivisions

## Gizmos #10571

Gizmos should support drawing primitives.

- #11072

## Bounding volumes #10570

Bevy should have first-party bounding volumes and support computing them for primitives.

- #10946
- #11336
- #11439
- #11310
- #11586

## List of primitives

- [x] Rectangle
- [x] Cuboid
- [x] Circle
- [x] Sphere
- [x] Ellipse
- [ ] Ellipsoid
- [x] Triangle
- [x] Tetrahedron
- [x] Plane
- [x] Line
- [x] Line segment
- [x] Polyline
- [x] Polygon
- [x] Regular polygon
- [x] Annulus/Ring #12706
- [x] Torus
- [x] Capsule
- [x] Cylinder
- [x] Cone
- [x] Conical frustum
- [ ] Pyramidal frustum
- [ ] View frustum
- [ ] Pyramid
- [x] Prism (can be built by extruding 2D shapes)
- [x] Wedge/Ramp (can be built by extruding a triangle)
- [ ] Half-space
- [x] Arc #13482
- [x] Circular sector #13482
- [x] Circular segment #13482

## Remove bounding volumes from `bevy_render`

See #13945

## Misc

- [x] #10856
- [x] Remove AABBs and collision logic from `bevy_sprite` #11500
- [ ] Support projecting 3D shapes onto 2D
- [x] Support extruding 2D shapes into 3D #13270
- [ ] Point queries (`project_point`, `contains_point`, etc.)
- [ ] Ray casting #15724
- [ ] Support maps
- [ ] Signed distance functions

## Long-term possibilities

- Bounding Volume Hierarchies (BVH)
- Broad phase collision detection
- Spatial query pipeline
- Rendering
- Frustum culling
- Collider shapes and collision detection for primitives
- Raycasting and other spatial queries for primitives
- Signed Distance Functions (SDF) for primitives

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.