Chaos Physics in UE5 EA and beyond

You know this is a good point, just because you can do this doesnt mean you should. Like why not use Niagara saving Chaos/PhysX for the most gameplay relevant things. Even then collision needs to be a controlled environment, games which allow players to really go nuts with physics objects tend to have strict limitations to make sure unwanted scenarios dont arise as it can quickly get out of control.

Im still seeing ragdolls glitch out in competeting engines, stuttering objects, slingshots into orbit and all the other fun things. If youre making a racing game then perhaps having Chaos being open and something you can easily modify the core of is better than PhysX where its blackboxed away in another package. Its not like you cant stick with PhysX for now, UE5 is not production ready and Epic have made that pretty clear so its super odd people are acting like Chaos needs to be finalized right this moment.

I do think you have a solid point iniside that we should be focusing on real world use cases! We should be giving Epic hard data on what to improve, what hardware configurations might be having particular issues if any, thats how things improve, a few gifs prove about as much as any synthetic benchmark. We need to be testing for viable scenarios not every what-if, especially those which purposelly exploit known weaknesses in systems. Maybe part of the issue is people are just not well versed enough with the new tools to really run them through their paces because they require a different mindset.

2 Likes

Hi, UnrealEnterprise

Sorry if i misunderstand your speech here.

But, please dont include my post in your not optimistic talk.
Dont use the others without their agreement to promote your self talk.
Keep your point of view engaging only you.

I am not native english talking, so, maybe my sentence was not well written, but, i don’t think my post was displaced.

Edit :
This post edit will be my last ever spend time and energy about your post wich i was receive as disrespectful and insulting.
So, in short, is not necessary for you to comment or add more.
Just let me outside of all your future communications.
Thx.

I do think you have a solid point iniside that we should be focusing on real world use cases! We should be giving Epic hard data on what to improve, what hardware configurations might be having particular issues if any, thats how things improve, a few gifs prove about as much as any synthetic benchmark. We need to be testing for viable scenarios not every what-if, especially those which purposelly exploit known weaknesses in systems. Maybe part of the issue is people are just not well versed enough with the new tools to really run them through their paces because they require a different mindset.

If I understood correctly, then I have to disagree, I ran the bricks test because I wanted it in my game, not for benchmarking purposes. My gifs tell quite a lot, in fact I can argue they tell almost everything there is to be told about a physics engine. Dismissing them by saying it’s not a viable scenario is the wrong mindset here. It should be the other way around - every what-if scenario should be treated as viable, that’s how empowering solutions are made, that give game designers the freedom Unreal aims to provide.

3 Likes

Maybe you should learn to use Chaos first is my point too, just because PhysX works one way doesnt mean the same thing directly transfers. Im not dismissing anything, just saying that UE5 is clearly not production ready and if PhysX suits your purposes then use it. What you need to show is what specifically isnt working in Chaos and your clips dont show that since there is plenty in the implementation still.

Oh and FYI there are gifs all over Twitter, you arnt the only one…

That’s the thing though, he can’t use PhysX because it’ll stop being a thing in UE5. Unless he sticks to UE4. I understand why he (and many others) and worried about the state of physics in UE5.

4 Likes

Does Chaos support runtime collision cooking yet?

That’s what we want, yet epic is saying they want to remove it. There wouldn’t be as much outrage if they advertised it as an optional thing.

3 Likes

Then might I suggest instead of wasting time complaining start implementing a PhysX version fo UE5, its pretty clear Epic have made it easier to swap out physics engines though I have actually heard other developers say its not overly difficult to change in UE4. Some games dont use PhysX or Chaos.

I get that it sucks but I think the purpose of this thread is to try to improve Chaos not ■■■■■ about it!

The really odd thing to me is Ive spent years, probably half a decade or more listening to people complain about PhysX in UE4…

Thats fair but look at my original post, it was largely about providing data to Epic to improve Chaos but people are so fixated on the fact its broken we’re just going around in circles. A gif or even a video doesnt show Epic specific implemetations, it doesnt show them computer specifications, it tells them nothing they need to know to make fixes. I understand performance might be bad but that wont improve magically, we need to help not be counter productive by filling threads with junk!

You don’t seem to understand that the problems right now have nothing to do with specific implementations. There’s also very little information about what’s supposed to be expected out the current version of Chaos or what is missing still. Something I tried asking during the 4.26 preview.

If you don’t want to read feedback about a broken feature in the feedback thread, don’t read it. Stop acting like it’s a targeted attack. Your multiple equivalents to “You’re holding it wrong.” or do it yourself is helping nobody, least of all Epic.

All this is doing is tossing out dice and waiting for them to sleep, printing a message on wake and sleep. This used to work every time in a couple seconds or less on PhysX with hundreds. I don’t even care about performance currently.

6 Likes

impart velocity, i think, is broken.

I have some fast spinning/moving basic cubes or any other static mesh that used to rocket my player when they jumped which worked from like 4.15-4.26

Now, the character just jumps, no push from the objects they were on. It’s pretty much the only gamebreaking thing that happened to me in transition to UE5EA.

should i file a bug report? or is it just me

can anyone confirm?

2 Likes

These are great tests that would be useful for the Physics team.

PSA: If you’re doing tests with Chaos that doesn’t provide expected behavior and would like to help improve Chaos, upload your project(s) and paste the link here or send it in a PM to me!

2 Likes

Okay so we’ve known for a long time Epic were going to replace PhysX with Chaos right, Im not acting like anything is a targeted attack. Im just saying people are overreacting because this tech wont even be ready for another 6 months at best, so we can still use PhysX perfectly fine. There are plenty of examples of using Chaos Epic have provided to us so we can learn to use the system in its intended manner, which may differ from a PhysX implementation its a different physics engine so it wont always be 1:1.

For some reason though people like you dont see my point, UE5 isnt ready and while I do appreciate your example clearly shows an issue with Chaos the video does nothing to solve any problems. As Victor has said pass along the project, get Epic in there to help you instead of being hostile towards anyone trying to help you.

Im not trying to pass the buck here just that we need hard data for Epic to be able to solve the problems if you want to use Chaos down the line. Im largely just repeating what Ive said though, Im trying to help all of you, not Epic if you cant see that then perhaps I should find myself another community!

2 Likes

From what I can see, Chaos takes way too long to “wake up” an object thats “asleep”.

I placed some random cubes of 1x1m size, ran into them - they didnt move for roughly a second, then they got “woken up”.

1 Like

You can’t be seriously expecting epic to catch up in those 6 months.

1 Like

@Geodav @ChrisK @AntiGravity

We are actually working on a refresh to all Unreal Engine templates for the release of UE5. This includes an updated template for Chaos Vehicles :).

6 Likes

Putting the performance complaints aside - one other thing that is essential IMO is feature-parity with PhysX, which Chaos still does not have despite the documentation stating otherwise. That concerns me somewhat.

Ideally we also really need this more advanced stuff more easily exposed, as using some of these features is very difficult in UE4, because of the abstraction layer between UE and the Physics Engine and all the translation that occurs between them (which also adds it’s own overhead).

I was hoping that Chaos would see that abstraction layer removed eventually - though I understand that would make it difficult to integrate another physics engine.

A couple of missing items such as contact modifiers and backface queries I commented on here. These are essential features for some of our gameplay systems, such as bullet penetration for example. Missing features and performance make Chaos unusable for us currently.

4 Likes

Hey @Jambax - can you DM me more details on how you are trying to use these features? I confirmed with the team that these features are currently in Chaos and have been used in Fortnite for a while now.

Chaos definitely does not have these two features we’re using. I’ve just checked through the UE5_earlyaccess source code. I’m sure this also isn’t an exhaustive list of features that PhysX has that Chaos currently doesn’t, these are just the ones I myself am aware of because we’ve required them.

FContactModifyCallback is in fact very explicitly not implemented by Chaos, which can be seen by looking at some of the comments in PhysCommandHandler.cpp:

#if !WITH_CHAOS // Chaos doesn't implement these callbacks

Without this you essentially lose all control over the specific collision resolution between two rigid bodies. This is a problem because physical materials and collision channels etc. do not always give you enough low-level control, and as far as I can tell there is no alternative way to achieve this degree of control in Chaos right now.

Another issue is the lack of advanced scene query features. I’m glad to see that Pre/Post filters are still available, but there is no support for several features that PhysX provides. PhysX for example provides the following flags for query data:

ePOSITION
eNORMAL
eDISTANCE
eUV
eMTD
eFACE_INDEX

// These options are all missing!
eASSUME_NO_INITIAL_OVERLAP
eMESH_MULTIPLE
eMESH_ANY
eMESH_BOTH_SIDES
ePRECISE_SWEEP

Whereas Chaos as far as I can tell only provides the following query options, via EHitFlags

Position
Normal
Distance
UV
MTD
FaceIndex

So there is no option to return multiple hits against the same rigid actor, no option to query and return backface collision hits, etc etc.

Currently in UE4, these advanced features are also very frustrating to use because the abstraction layer of the engine does not expose them. These additional flags and query options should ideally be exposed as part of FCollisionQueryParams.

Currently the abstraction layer means you have to write custom code to talk to the PxScene directly, and also copy-paste a lot of the engines’ translation code between PhysX and UE types because this stuff is locked away in .cpp files and inaccessible outside of the engines Physics module…

As some example use-cases:
We use FContactModifyCallback to nuke the mass and friction of very light actors (such as grenades) vs very heavy objects such as tanks. We can’t achieve that control using the primarily exposed features.

We use multi-mesh and backface queries for our bullet penetration system. We use sub-stepped line-traces for our projectiles, and each line-trace segment returns all blocking hits along it’s length including backface hits. This is very powerful information, though using default UE-exposed features, you can only get one blocking hit from a raycast.

8 Likes

With the templated vectors, double SIMD update, and focus on large open worlds i wonder if there’s any plan for double precision support for the physic scene?

Right now the physic scene translation on world origin update is one of the biggest bottleneck i’m facing regarding physic enabled content, PhysX or Chaos same trouble. Might be something as silly as linearly scaling with number of bodyinstances.

1 Like