Commit Graph

210 Commits

Author SHA1 Message Date
michael bao
17a2c641dc utilize the FaceNormal in the sweep even when we hit implicit objects without a face index
#rb chris.caulfield, benn.gallagher
#preflight 6410bc825819afacafbe06f2

[CL 24646646 by michael bao in ue5-main branch]
2023-03-14 18:59:03 -04:00
cedric caillaud
1186387da9 Chaos Physics : add material strength to the physical material
- also deprecate the DestructibleDamageThresholdScale porperty as it is not used anymore

#rb steven.barnett
#preflight 640fbf380e1f02786b0b2f55

[CL 24645246 by cedric caillaud in ue5-main branch]
2023-03-14 17:35:39 -04:00
michael bao
db4158ae25 make the physics object interface usable with const handles
[FYI] steven.barnett
#preflight 640a80a328026468d9011101

[CL 24587565 by michael bao in ue5-main branch]
2023-03-09 22:25:31 -05:00
michael bao
3456f5564e move ChaosSQTypes from PhysicsCore to Chaos
#rb chris.caulfield
#preflight 64097c6d6d06d9a14299b17b

[CL 24583916 by michael bao in ue5-main branch]
2023-03-09 17:33:48 -05:00
michael forot
564045d020 [Backout] - CL24489307
[FYI] nat.parkinson
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL24480805 to resolve compile error
[FYI] Michael.Forot
Original CL Desc
-----------------------------------------------------------------
Network physics for vehicles

#rb bill.henderson
#preflight 63ff6e32f43e53f68127e521

[CL 24499687 by michael forot in ue5-main branch]
2023-03-03 11:22:01 -05:00
nat parkinson
98d04ec328 [Backout] - CL24480805 to resolve compile error
[FYI] Michael.Forot
Original CL Desc
-----------------------------------------------------------------
Network physics for vehicles

#rb bill.henderson
#preflight 63ff6e32f43e53f68127e521

[CL 24493661 by nat parkinson in ue5-main branch]
2023-03-02 20:26:46 -05:00
michael forot
0fa9892ced Network physics for vehicles
#rb bill.henderson
#preflight 63ff6e32f43e53f68127e521

[CL 24484224 by michael forot in ue5-main branch]
2023-03-02 12:12:37 -05:00
michael bao
dbef836cd6 add the cluster union physics proxy to properly marshal data for them between the game thread and physics thread as well as the game thread actor/component to make cluster unions server authoritative
- Modified the FPhysicsSolverBase::PullPhysicsStateForEachDirtyProxy_External to take in a struct that can be used to statically dispatch the appropriate action per proxy type instead of needing to add a new lambda for each new proxy type.

#preflight 63fcfda5437ce3e7f33acd55
#rb todd.eckert, chris.caulfield

[CL 24432721 by michael bao in ue5-main branch]
2023-02-27 16:43:09 -05:00
jaco vandyk
77eeff782a Move the QueryOnly Physics objects into its own acceleration structure
Make sure that it does not get included in the physics thread.

#rb Vincent.Robert
#preflight 63f719d19b26c4957efd4f39

[CL 24377687 by jaco vandyk in ue5-main branch]
2023-02-23 05:05:35 -05:00
joe kirchoff
d5a5a356b9 Remove unnecessary Public and Private entries for the current module being added to PublicIncludePaths or PrivateIncludePaths
#rnx
#jira UE-177808
#preflight 63f3fb8c90198dffba00cc27

[CL 24331758 by joe kirchoff in ue5-main branch]
2023-02-20 20:22:44 -05:00
kriss gossart
72f9e86fce Chaos - Remove mistaken cloth includes from non cloth Chaos files.
#rb Bill.Henderson, Chris.Caulfield
#preflight 63ebb28796073a3e19c6a247
#jira none
#rnx

[CL 24311724 by kriss gossart in ue5-main branch]
2023-02-20 06:26:34 -05:00
chris caulfield
df8ec4c4c4 Chaos - PerShapeData split into FShapeInstanceProxy and FShapeInstance for GT/PT respectively (Phase 1)
#rb benn.gallagher
#preflight 63efc6ab81646f1f248bd67e

[CL 24292252 by chris caulfield in ue5-main branch]
2023-02-17 17:10:17 -05:00
chris caulfield
e6b3b2d5af Chaos - fix determinism in IslandManager
#jira UE-174949
#rb benn.gallagher
#preflight 63dbf762797b029c0ae562b1

[CL 23984213 by chris caulfield in ue5-main branch]
2023-02-02 18:47:53 -05:00
cedric caillaud
13e8f903f9 Chaos : Add gravity groups to rigid solver
#rb benn.gallagher, chris.caulfield
#preflight 63d42e6dbe1970f8823a1c89

[CL 23895949 by cedric caillaud in ue5-main branch]
2023-01-27 19:27:17 -05:00
chris caulfield
831c30609b Chaos - Fix IgnoreCollisionManager so that WakeParticle does not reset ignore collision flags from joints.
The bug was related to the GT and PT both separately manipulating a flag that indicates that a particle has an entry in the ignore table. The flag is used by the broadphase. This flag was not written back to the GT when modified on the PT so any subsequent GT change (to any value in the interop data block containing the flag) would overwrite the PT changes. Explicitly waking a particle from the GT was causing this to happen.

The fix is to remove the GT-controlled flag and have it fully controlled on the PT side based on whether the particle is in the Ignore Manager or not.

This fix can be improved architecturally by breaking the IgnoreCollisionManager into 2 parts: one for the physics thread and one for the interop.

#jira UE-173494
#preflight 63c059b270575f8900c8a1b0

[CL 23671153 by chris caulfield in ue5-main branch]
2023-01-12 18:01:53 -05:00
michael bao
ead067551e geometry collections should immediately add itself to the external acceleration structure
For large scenes, it may take multiple seconds (if not longer) for a geometry collection to show up in the external acceleration structure causing it to be ignored by movement sweep checks (and others). This is because the geometry collection relies on the internal -> external acceleration structure copy which may take awhile to complete. The single particle physics proxy (i.e. static meshes) will add itself manually to the external acceleration structure in FInitBodiesHelperBase::InitBodies via FChaosScene::AddActorsToScene_AssumesLocked.

#preflight 63bdbdadc45a2c81e01b5813
#rb vincent.robert

[CL 23634458 by michael bao in ue5-main branch]
2023-01-10 17:13:41 -05:00
henrik karlsson
0fab644dc0 [Engine]
- CoreMinimal.h include removal all the way to PlayerController.h not transitively including it

#preflight 63b927dbc927e34482e15e18
#rb none

[CL 23608545 by henrik karlsson in ue5-main branch]
2023-01-08 07:13:33 -05:00
chris caulfield
0ef53f2111 Chaos - fix kinematic teleport if it happens after animation by clearing the kinematic target in SetGlobalPose
#jira UE-173242
#rb benn.gallagher
#preflight 63b72adcc927e344822464b3

[CL 23593874 by chris caulfield in ue5-main branch]
2023-01-05 17:47:41 -05:00
michael bao
34bed7b616 add support for geometry collections to UWorld::ComponentSweepMulti and UWorld::ComponentOverlapMulti via the Chaos::FPhysicsObject
- also added an implementation of both those functions to also take in an ECollisionChannel parameter.

#preflight 639a7c3d43330e63e52a403a
#rb cedric.caillaud

[CL 23524238 by michael bao in ue5-main branch]
2022-12-15 01:43:03 -05:00
michael bao
56149cc085 Change the joint constraints to alternatively use the FPhysicsObject and switch over the existing FBodyInstance paths
#rb cedric.caillaud
#preflight 6390e44c1776b8c21c27589a

[CL 23438881 by michael bao in ue5-main branch]
2022-12-07 19:57:03 -05:00
michael bao
594a477eb3 Introduce the FPhysicsObject opaque type which provides a unified interface to use when interacting with physics bodies.
- The Chaos::FPhysicsObject should be used in place of the FBodyInstance. Pass the handle (in an array view) to the appropriate Chaos::FPhysicsObjectInterface to get the same functionality the single particle physics proxy currently provides.
- Extracted out the FChaosScopedSceneLock out from inside PhysInterface_Chaos so it can be reused.
- Automatically create the Chaos::FPhysicsObject for single particle physics proxies and the geometry collection physics proxy.
- To better match the way the interface works, switched the geometry collection GT particle to be a TPBDRigidParticle instead of a TGeometryParticle though the extra state transfer is incomplete.

#rb cedric.caillaud
#preflight 6390165bbb6fefa472f43296

[CL 23430984 by michael bao in ue5-main branch]
2022-12-07 12:51:44 -05:00
Bryan sefcik
80f80e7a25 Updated the underlying types for regular and namespaced enums.
#jira
#preflight 638e6d479549ddaa2822be9a

[CL 23421568 by Bryan sefcik in ue5-main branch]
2022-12-06 19:43:59 -05:00
benn gallagher
6cb5283eb1 Chaos: Protected call to IsStatic in the interface layer matching previous behaviour (protects against crashes when setting up body instance parameters in component constructors)
#rb none
#preflight 637b9e764004f73f623e2b3c

[CL 23234021 by benn gallagher in ue5-main branch]
2022-11-22 08:25:33 -05:00
henrik karlsson
b5164ac775 Fixes to make modules compile with IWYU. We've added to IWYU toolchain so it compiles "orphaned" headers which does not have a owning cpp file. This identified lots of headers that couldn't be compiled by themselves (or if they were to included first)
Change consist of only forward declaration and additional includes

#preflight 63789c1de30d438849c48188
#rb none

[CL 23218412 by henrik karlsson in ue5-main branch]
2022-11-21 03:22:23 -05:00
henrik karlsson
5b96352978 Fixes for c++ headerunits/modules.
* Adding forward declarations
* Adding "inline" in front of const/constexpr variables in headers
* Adding includes
* A few moves of ctor/dtor to cpp file

#preflight 6372b3ac0c74adb48b49f313
#rb none

[CL 23130896 by henrik karlsson in ue5-main branch]
2022-11-14 19:59:41 -05:00