Comments (3)
Yeah I think this should be relatively straightforward to add. I think Rapier just waits until the mesh/scene is ready and then adds the collider.
However, I was wondering if it would be possible to generate colliders from meshes in advance once Assets V2 is ready. For convex decomposition, the VHACD algorithm that Parry uses is pretty expensive and can even take several minutes for large colliders, so ideally we would have a preprocessing step where colliders are generated at compile-time with configuration for things like detail.
I haven't taken a proper look at Assets V2 yet though so I don't know if this would even be possible or if it would require a cumbersome API, but it's worth considering. For now though we can just add normal async colliders, I'll add it on my todo list
from avian.
Rapier have
AsyncSceneCollider
to automatically generate collision after scene spawn. I would suggest to add a similar feature for convenience, but with the ability to specify collider layers.Have you implemented any workarounds for the time being? Im using rapier's AsyncSceneCollider atm and we would love to try out xpbd.
Not yet, but something lïke AsyncSceneCollider
should be straightforward to add into your app even without forking the crate. You can basically copy Rapier's implementation by just adding an AsyncSceneCollider
component and a system that initializes the actual colliders.
You can find AsyncSceneCollider
here and the system here. Instead of Collider::from_bevy_mesh
, you can use Collider::trimesh_from_bevy_mesh
or Collider::convex_decomposition_from_bevy_mesh
.
For normal AsyncCollider
s, you can find similar implementations.
from avian.
Rapier have
AsyncSceneCollider
to automatically generate collision after scene spawn. I would suggest to add a similar feature for convenience, but with the ability to specify collider layers.
Have you implemented any workarounds for the time being? Im using rapier's AsyncSceneCollider atm and we would love to try out xpbd.
from avian.
Related Issues (20)
- Make `AncestorMarker` reflect `Component` and add it to the type registry.
- Add `with_included_entities` to the SpatialQuery system param
- GravityScale::default() should be 1.0
- Implement joint motors
- Implement multibody joints, aka articulations
- Implement ground detection
- Implement a component for configuring which types of bodies a collider can collide with HOT 1
- Negative scales coming from an ancestor are ignored by colliders HOT 3
- `RayCaster.ignore_self` doesn't ignore colliders in children HOT 1
- Unexpected behavior with `LockedAxes` and rotations after upgrading from `0.1.0` to `0.1.1` HOT 1
- Make physics entity creation more difficult to mess up HOT 1
- Document components and resources needed for rollback HOT 1
- Incorrect CenterOfMass for ColliderConstructorHierarchy with scale up transform
- Make collision reporting opt-in HOT 2
- No error if entity has transform but not global transform.
- 3D friction behaves unrealistically
- ~Question~ Can you construct custom collision shapes? HOT 1
- LockedAxes break ExternalTorque
- really bad debug-render performance
- Difficulty with Implementing Damping and Movement in Spacecraft Using Avian
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from avian.