Comments (2)
To some extent, it's expected that debug mode is over 100 times slower than release mode. This is also the case for Rapier.
You can optimize the debug mode using:
# Optimize just bevy_xpbd_2d (and probably its dependencies?)
[profile.dev.package.bevy_xpbd_2d]
opt-level = 1
# or 2 or 3 depending on how much optimization you want
As for why bevy_rapier's debug mode is faster, I believe bevy_xpbd has a higher default substep count, which gives more accuracy at the cost of performance. Lowering it from 12 to something like 6 or 4 should already give better performance. bevy_xpbd also just hasn't had as much time for optimization yet since we're still missing some quite important features.
For investigating performance, you can use Tracy or flamegraph, see Bevy's profiling docs. We also have a very simple Criterion benchmark for spawning a bunch of cubes, but that won't show how long individual systems take.
from avian.
Thanks for reply.
I tried:
[profile.dev.package.bevy_xpbd_2d]
opt-level = 3
This is enough for development, I got 20
fps for 20
entities/colliders.
from avian.
Related Issues (20)
- Tracking issue: Improve examples
- Allow manipulation of `ColliderConstructor` at runtime
- Fix one way example
- The documentation of `ShapeHitData` says the points are in local space, but they're in world space
- Panic using a ColliderConstructor to create a collider from a Gltf mesh. HOT 2
- 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.
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.