Commit Graph

88 Commits

Author SHA1 Message Date
Benn Gallagher
8757cb3641 Physics interface cleanup.
* Removed deprecated or dead code paths
* Simplified build system setup for physics support
* Deprecated build system flags and unsupported macros

#jira none
#rb Chris.Caulfield, Kriss.Gossart
#preflight 62963ec0fe779f23c8ea0c5e

[CL 20450744 by Benn Gallagher in ue5-main branch]
2022-06-01 06:59:18 -04:00
tyson brochu
e78697a2c1 SetCollisionGeometryTool: add Mesh to Level Set / SDF conversion
#rb jimmy.andrews
#preflight 62952aa7e61254772f6b4b5e

[CL 20432875 by tyson brochu in ue5-main branch]
2022-05-30 16:48:48 -04:00
Jeremy Moore
ff967b1163 Remove PRIMITIVE_SCENE_DATA_FLAG_DRAWS_VELOCITY and only use PRIMITIVE_SCENE_DATA_FLAG_OUTPUT_VELOCITY.
Tidy up use of FPrimitiveSceneProxy velocity getters.
Now DrawsVelocity() is only for velocity relevance.
And HasDynamicTransform() is for determining if we need to store previous transform state.
VSM caching was using PRIMITIVE_SCENE_DATA_FLAG_DRAWS_VELOCITY so replaced that with PRIMITIVE_SCENE_DATA_FLAG_SHOULD_CACHE_SHADOW which should use the old behavior and can be tweaked in future using ShouldCacheShadow().

A common pattern for determining whether to output velocity now is to check if a previous transform exists, and to OR in AlwaysHasVelocity().
I found some proxy types that don't check for previous transform.
Also I found that the debug physics aggregate types *never* check for previous transform.
These are pre-existing potential bugs for fixing in another pass.

Also I found some proxies that don't currently fill out velocity relevance.
These are pre-existing potential bugs for fixing in another pass.

#preflight 62863f789016c6dd897f1cd2
#fyi andrew.lauritzen

[CL 20279797 by Jeremy Moore in ue5-main branch]
2022-05-19 10:08:15 -04:00
Sebastien Lussier
89e0808daa StaticMeshLODResourcesMeshSurfaceAdapter generates a bad TriangleOffsetArray in certain cases
* TriangleOffsetArray range must be [0, NumTriangles)
#jira UE-151762
#rb patrick.enfedaque
#preflight 6283ab394316db80d18e2ad9

[CL 20242244 by Sebastien Lussier in ue5-main branch]
2022-05-17 10:15:02 -04:00
matija kecman
c0efeb5f4f Render Capture Baking: Add FScopedSlowTask to give user progress feedback on game thread scene capture
#rb lonnie.li
#rnx
#jira none
#preflight 62822298046b81bf9399584e

[CL 20221812 by matija kecman in ue5-main branch]
2022-05-16 06:50:35 -04:00
matija kecman
b47e74f1a8 Render Capture Baking: Move visibility raycast from evaluators to detail sampler
Benchmark configuration:
- Test scene with 4 meshes: a mossy stone nanite mesh, a beach ball, a ball with an emissive blue cross and a hut mesh
- Target mesh: 11.8k triangles mesh, created by voxel wrapping the meshes in the test scene elements
- 4096x4096 output texture with 16x multisampling baking BaseColor, Emissive, PackedMRS and Normal maps
- 4096x4096 photo capture resolution

Unreal Insights reports the following times for the Bake call:
- Before this change: 2 mins 45 seconds
- After this change: 55.9 seconds

Aside: (Unaffected by this change) In both cases the photo capture, which is done on the game thread, took about 1 min

#jira none
#rb
#rnx
#preflight 627e64e01748fbc85bb24a42

[CL 20221383 by matija kecman in ue5-main branch]
2022-05-16 05:13:25 -04:00
Jimmy Andrews
10153ffb90 Deprecate TTransformSRT3::Inverse() and attempt to fix usages of it and also FTransform::Inverse() in the modeling code
#rb david.hill
#preflight 627d2b99a82f3adab87fb87f

[CL 20165573 by Jimmy Andrews in ue5-main branch]
2022-05-12 12:08:26 -04:00
Ryan Schmidt
06b0aa99b6 ModelingComponents: Handle ChildActorComponent with null child Actor in WorldRenderCapture
#rb lonnie.li
#preflight 6272ca4e5b2c5e1b52c612b0

[CL 20051642 by Ryan Schmidt in ue5-main branch]
2022-05-04 18:31:59 -04:00
sebastien lussier
18bb7adcec Support building HLODs meshes using cooked data
* Tested mesh merge/simplify/approximate methods
* Fixed issue in Mesh Approximate where import build scale would be applied twice (as LODRenderData is already scaled)
#rb jeanfrancois.dube
#preflight 62693fdc4c0942024111839b

#ROBOMERGE-OWNER: sebastien.lussier
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19939143 via CL 19945922 via CL 19946391 via CL 19946484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19952398 by sebastien lussier in ue5-main branch]
2022-04-28 01:59:21 -04:00
matija kecman
929525effb Render Capture Baking: Support correspondence sample validity checking, use BSpline filtering and enable multisampling
#rb lonnie.li
#rnx
#jira none
#preflight 6262d4dbd558dfdec3934905

[CL 19899614 by matija kecman in ue5-main branch]
2022-04-25 05:41:52 -04:00
ryan schmidt
daea05da21 ModelingMode: add cvar to control snapping to Volumes. Disable by default.
#rb tyson.brochu
#jira UE-149912
#preflight 6261df5e6119a1a496c94568

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 19859555 in //UE5/Release-5.0/... via CL 19859900
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19869486 by ryan schmidt in ue5-main branch]
2022-04-22 15:01:13 -04:00
semion piskarev
3bd16bc588 MeshModelingTools: Prevent a crash from trying to dereference a failed cast to UStaticMeshComponent in ModelingSceneSnappingManager.
#rb Ryan.Schmidt
#jira UE-149358
#preflight 62608da3886befa9a5cee5c9

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 19853050 in //UE5/Release-5.0/... via CL 19854409
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19855693 by semion piskarev in ue5-main branch]
2022-04-21 16:47:07 -04:00
nathan mitchell
559622e6cf ClothEditor: Add new tool derived from the Modeling Mode Group Paint tool for weight painting with dynamic meshes and the brush tool infrastructure
#rb tyson.brochu
#rnx
#preflight 62462ecbb33098a72dd3eb09

[CL 19611005 by nathan mitchell in ue5-main branch]
2022-04-04 12:41:00 -04:00
michael balzer
30c0b3de0b MeshModelingToolset & InteractiveToolsFramework: Various NonUnity build fixes
#jira UE-146524, UE-146536
#preflight 623788c48900c14eeca5fb91
#preflight 623788c48900c14eeca5fb91

[CL 19447764 by michael balzer in ue5-main branch]
2022-03-20 16:09:48 -04:00
ryan schmidt
1db3f2bad8 ModelingComponents: pass visibility filter to SpatialCache query in ModelingSceneSnappingManager snap query, so that hidden objects are not included in the set of valid targets
#rb tyson.brochu
#jira UE-145161
#preflight 62278878671c913c051ec8c6
#rnx
#lockdown simon.tourangeau

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 19305700 in //UE5/Release-5.0/... via CL 19306610
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19347211 by ryan schmidt in ue5-main branch]
2022-03-10 21:07:11 -05:00
lonnie li
8ed8a29e69 GeometryScript: Added CreateNewTexture2DAsset function
#rb semion.piskarev
#jira none
#preflight 62278b28e83598518f37e7b2

[CL 19309284 by lonnie li in ue5-main branch]
2022-03-08 15:11:38 -05:00
semion piskarev
36e35bdaac MeshModelingTools: Fix crash when hitting delete and marquee selecting at the same time in PolyEdit.
#rb Jimmy.Andrews
#rnx
#jira UE-143243
#preflight 6210193fad11de9431d2afa4


#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 19093207 via CL 19093826 via CL 19094601 via CL 19096102 via CL 19105343
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19146652 by semion piskarev in ue5-main branch]
2022-02-25 09:43:15 -05:00
ryan schmidt
7c983b8d45 GeometryCore: clean up issues that block non-LWC builds
#rb david.hill
#preflight 620ff48d53204823ae859ccb

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 19064974 via CL 19076437 via CL 19077315 via CL 19078956
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19122734 by ryan schmidt in ue5-main branch]
2022-02-24 15:01:41 -05:00
ryan schmidt
2df20e1435 ModelingTools: fix issue in MeshSceneAdapter introduced by recent refactor. FActorChildMesh::MeshSpatial was being always initialized to nullptr, and only updated if the mesh was decomposed. Add code to catch this case in future, and a bit of header documentation explaining the connections between the various data structures.
#rb sebastien.lussier
#jira UE-142577
#preflight 620ab73d6e5d06a542a3e7fa
#rnx

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18985112 in //UE5/Release-5.0/... via CL 18986186 via CL 18987704
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18988058 by ryan schmidt in ue5-main branch]
2022-02-14 18:33:21 -05:00
ryan schmidt
f5d5ecc309 ModelingTools: fix LWC issues in scene snapping and AddPrimitiveTool. Convert MeshDebugDraw grid-drawing functions to use double instead of float, and update call sites.
#rb jimmy.andrews
#jira UE-142391
#preflight 620ab60d583261b0a665cdc2
#rnx

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18985048 in //UE5/Release-5.0/... via CL 18985896 via CL 18987678
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18988038 by ryan schmidt in ue5-main branch]
2022-02-14 18:32:46 -05:00
lonnie li
5d135d0aa8 ModelingTools: Fixed race condition when setting override render material on preview mesh in BakeTexture & BakeAll.
#rb jimmy.andrews
#rnx
#jira UE-142326
#preflight 62075a203a5afc57e3bbf75c
#lockdown aurel.cordonnier

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18980712 in //UE5/Release-5.0/... via CL 18980929 via CL 18981207
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18981374 by lonnie li in ue5-main branch]
2022-02-14 12:20:58 -05:00
ryan schmidt
c8374ef04e ModelingTools: fix static analysis issue
#rb jimmy.andrews
#jira none
#preflight 62072ff7ab22f3d80a6045e9
#rnx

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18980668 in //UE5/Release-5.0/... via CL 18980919 via CL 18981194
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18981368 by ryan schmidt in ue5-main branch]
2022-02-14 12:20:25 -05:00
ryan schmidt
b4814d732d ApproximateActors: reduce memory footprint by using compressed or lower-resolution LOD0 meshes
- add FStaticMeshLODResourcesAdapter in MeshConversions module, wrapper that presents StaticMesh LODResources mesh (ie Section buffers) with an API compatible with GeometryCore mesh templates
- add TMeshWrapperAdapterd in GeometryCore, this is a shim for getting any template-API-compatible mesh into a FTriangleMeshAdapterd specifically (required to call some non-template mesh processing functions)

- add support for using StaticMesh LODResources meshes in FMeshSceneAdapter instead of source meshes, controlled by build options flag
- add FMeshSceneAdapter build options flags specifying whether UV/Normal queries are required (default true)
  - when not required, the loaded MeshDescriptions and created DynamicMeshes are packed into FColliderMesh which has a smaller memory footprint, allowing the larger meshes to be freed

- to support above, the SpatialWrappers in MeshSceneAdapter.cpp have been refactored extensively
  - added FCompressedMeshSpatialWrapper which Builds from a temporary FDynamicMesh3 into a FColliderMesh, supports all the same options as FDynamicMeshSpatialWrapper (so a drop-in replacement with less memory usage, but no UV/Normal queries)
  - added FBaseMeshSpatialWrapper, base class for existing FDynamicMeshSpatialWrapper and new FCompressedMeshSpatialWrapper that has shared config settings (can more more here in the future)
  - added FStaticMeshLODResourcesMeshSurfaceAdapter, similar toFMeshDescriptionTriangleMeshSurfaceAdapter, a mesh adapter that filters out any geo that doesn't have a Surface-domain material
  - refactored TStaticMeshSpatialWrapper into TStaticMeshSpatialWrapperBase and subclasses FStaticMeshSourceDataSpatialWrapper and FStaticMeshRenderDataSpatialWrapper, for source mesh vs render mesh
  - added FCompressedStaticMeshSpatialWrapper, variant of FStaticMeshSourceDataSpatialWrapper that stores to a FColliderMesh and releases the source MeshDescription
  - SpatialWrapperFactory() now has logic to build from render mesh vs source mesh vs compressed source mesh
  - moved initial SpatialWrapper construction from AddActors() phase to Build() phase, because now it depends on build settings

- add EMeshDataSourceLODPolicy to IGeometryProcessing::FOptions, with LOD0 Source and LOD0 RenderMesh options
- ApproximateActorsImpl now provides/handles this policy setting, and configures FMeshSceneAdapter to not need UV/Normal queries (not required in this context)
- add bUseRenderLODMeshes option in FMeshApproximationSettings to expose render vs source mesh control at user level

#rb sebastien.lussier, rinat.abdrashitov
#jira UE-141256
#preflight 6206db44054c2e38c473be5d
#rnx

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18963126 in //UE5/Release-5.0/... via CL 18963829 via CL 18964587
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18964607 by ryan schmidt in ue5-main branch]
2022-02-11 18:11:49 -05:00
ryan schmidt
ccde341d7d update FTransform3d to FTransformSRT3d
#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18952618 via CL 18953740 via CL 18954339
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18954439 by ryan schmidt in ue5-main branch]
2022-02-11 12:19:59 -05:00
ryan schmidt
4d673ed7f5 ApproximateActors: explicitly release any allocated MeshDescriptions on destruction of TStaticMeshSpatialWrapper in FMeshSceneAdapter. This reduces memory usage peaks in Approximate Actors generation (Merge Actors and HLOD).
#rb sebastien.lussier
#jira UE-141256
#preflight 62015db29144319e2013b9fe
#rnx

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18892767 in //UE5/Release-5.0/... via CL 18893087 via CL 18893506
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18893541 by ryan schmidt in ue5-main branch]
2022-02-07 16:33:45 -05:00