Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement meshing for Capsule2d #11639

Merged
merged 4 commits into from
Feb 3, 2024

Conversation

Jondolf
Copy link
Contributor

@Jondolf Jondolf commented Jan 31, 2024

Objective

The Capsule2d primitive was added in #11585. It should support meshing like the other 2D primitives.

Solution

Implement meshing for Capsule2d.

It doesn't currently support "rings" like Bevy's Capsule shape (not Capsule3d), but it does support resolution to control the number of vertices used for one hemicircle. The total vertex count is two times the resolution; if we allowed setting the full vertex count, odd numbers would lead to uneven vertex counts for the top and bottom hemicircles and produce potentially unwanted results.

The capsule looks like this (with UV visualization and wireframe) using resolutions of 16, 8, and 3:

Resolution 16
Resolution 8
Resolution of 3

The 2d_shapes example now includes the capsule, so we also get one more color of the rainbow 🌈

New 2D shapes example

@Jondolf Jondolf added C-Feature A new feature, making something new possible A-Rendering Drawing game state to the screen labels Jan 31, 2024
Copy link
Contributor

@rparrett rparrett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: semicircle/hemicircle and half-height/half-length are used pretty interchangeably throughout docs/comments and it would be nice to standardize a bit.

@alice-i-cecile alice-i-cecile added S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it A-Math Fundamental domain-agnostic mathematical operations labels Feb 3, 2024
@alice-i-cecile alice-i-cecile added this pull request to the merge queue Feb 3, 2024
Merged via the queue into bevyengine:main with commit 9bad607 Feb 3, 2024
25 checks passed
@Jondolf Jondolf deleted the capsule-2d-mesh branch February 3, 2024 21:09
tjamaan pushed a commit to tjamaan/bevy that referenced this pull request Feb 6, 2024
# Objective

The `Capsule2d` primitive was added in bevyengine#11585. It should support meshing
like the other 2D primitives.

## Solution

Implement meshing for `Capsule2d`.

It doesn't currently support "rings" like Bevy's `Capsule` shape (not
`Capsule3d`), but it does support resolution to control the number of
vertices used for one hemicircle. The total vertex count is two times
the resolution; if we allowed setting the full vertex count, odd numbers
would lead to uneven vertex counts for the top and bottom hemicircles
and produce potentially unwanted results.

The capsule looks like this (with UV visualization and wireframe) using
resolutions of 16, 8, and 3:

![Resolution
16](https://github.com/bevyengine/bevy/assets/57632562/feae22de-bdc5-438a-861f-848284b67a52)
![Resolution
8](https://github.com/bevyengine/bevy/assets/57632562/e95aab8e-793f-45ac-8a74-8be39f7626dd)
![Resolution of
3](https://github.com/bevyengine/bevy/assets/57632562/bcf01d23-1d8b-4cdb-966a-c9022a07c287)

The `2d_shapes` example now includes the capsule, so we also get one
more color of the rainbow 🌈

![New 2D shapes
example](https://github.com/bevyengine/bevy/assets/57632562/1c45b5f5-d26a-4e8c-8e8a-e106ab14d46e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Math Fundamental domain-agnostic mathematical operations A-Rendering Drawing game state to the screen C-Feature A new feature, making something new possible S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants