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

Change capsules and cylinders to have separate top and bottom radiuses #234

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

aaronfranke
Copy link
Member

@aaronfranke aaronfranke commented Sep 12, 2024

This PR changes the OMI_physics_shape definition of a capsule and cylinder to have radiusBottom and radiusTop properties, which matches the KHR_collision_shapes extension. This PR also changes the capsule's height property to refer to the mid height instead of the full height, which also matches KHR_collision_shapes.

https://github.com/eoineoineoin/glTF_Physics/blob/master/extensions/2.0/Khronos/KHR_collision_shapes/schema/glTF.KHR_collision_shapes.shape.capsule.schema.json

https://github.com/eoineoineoin/glTF_Physics/blob/master/extensions/2.0/Khronos/KHR_collision_shapes/schema/glTF.KHR_collision_shapes.shape.cylinder.schema.json

I was initially against this since it seemed that no game engine or physics engine supported it, but Jolt added support for both of these things recently, and they are going to be added to Godot Engine soon. Still, these will have to be approximated using convex hulls when being imported into Unity, Unreal Engine, and more.

Copy link

@yankscally yankscally left a comment

Choose a reason for hiding this comment

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

with #238 now merged, I took a look at this PR diffs carefully.

I notice that radius is still its own property which I hoped for.

As you mention its not common to have tapered cylinders/capsules in a lot of game engines for the moment, but it seems like that could change in the future. If a property is not given it has a default from the schema, if its not needed, its discarded. It's not an obstacle then.

I have no way to test this right now as you said, but I can say with my experience using extensions - this is theoretically sound, and should work, and it does not interfere with any current implementations. So I can only approve.

@yankscally yankscally self-assigned this Nov 30, 2024
@aaronfranke aaronfranke force-pushed the physics-shape-tapered-cylinder branch from 32ec46d to fc20b38 Compare December 1, 2024 12:28
@aaronfranke
Copy link
Member Author

I notice that radius is still its own property which I hoped for.

It's not, radius now only exists for spheres.

@yankscally
Copy link

I notice that radius is still its own property which I hoped for.

It's not, radius now only exists for spheres.

Ah yes, I didn't mean to say radius, I meant to say height, which is the more common way to do capsules and cylinders.

I meant that I hoped that there is still a height property and it's not removed. So we can still use height properly. Thanks again

@aaronfranke
Copy link
Member Author

aaronfranke commented Dec 1, 2024

Of course, you can't make a capsule or cylinder without height. But the height is mid-height now for capsules.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants