Commit Graph

27 Commits

Author SHA1 Message Date
henrik karlsson
b5b86c796c This change is a strategical submit for a coming change that removes lots of includes in headers that are included by many files. This change contains adding of includes in files that previously got those includes transitively from other inclkudes
#preflight 6355d4940313c24974b2107b
#rb none

[CL 22783162 by henrik karlsson in ue5-main branch]
2022-10-26 12:57:32 -04:00
ryan schmidt
b4277b76a6 GeometryFramework: make BaseDynamicMeshSceneProxy support Visible in Ray Tracing flag. However this does not override the Component-specific Enable Raytracing flag.
#rb jimmy.andrews
#preflight 632a3069331ace46b52c3af9
#jira UE-164562

[CL 22118807 by ryan schmidt in ue5-main branch]
2022-09-21 14:37:40 -04:00
Bryan sefcik
b4a6e947d8 Ran IWYU on Public headers under Engine/Source/Runtime/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira

#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf

[CL 21181076 by Bryan sefcik in ue5-main branch]
2022-07-20 11:31:36 -04:00
Ryan Schmidt
a53b305a46 GeometryFramework: add to UDynamicMeshComponent::SetTransientDeferCollisionUpdates function and flag. This transient setting allows C++ code (eg like code that implements a live 3D transform of mesh vertices) to temporarily disable collision re-generation without modifying the serialized UProperty.
#rb none
#preflight 62bb4294101ad5bf64b0ffac

[CL 20862135 by Ryan Schmidt in ue5-main branch]
2022-06-28 14:14:26 -04:00
Ryan Schmidt
422c289493 GeometryFramework: add support for configuring color and normal overrides on BaseDynamicMeshComponent & DynamicMeshComponent. This allows the user to configure a DynamicMeshComponent to display vertex colors, group colors, or a (configurable) custom color, as well as facet normals, in the Actor properties.
A new lit vertex color material is added and used if the ModelingComponents module is loaded (to avoid adding a new engine material, if only GeometryFramework is loaded, then the engine-default vertex color material is used). This class-wide vertex color material can be overridden via UBaseDynamicMeshComponent::SetDefaultVertexColorMaterial()

Facet Normals / Flat Shading is now separately configurable, this overrides the normals at the vertexbuffer setup level, so it works independently of material.

Support also added for configuring the wireframe material used for BaseDynamicMeshComponent, and also for setting the wireframe color.

#preflight 62aa2330a40a4dc3a04052c6
#rb tyson.brochu

[CL 20676782 by Ryan Schmidt in ue5-main branch]
2022-06-15 16:49:13 -04:00
Yuriy ODonnell
49e1679b77 Remove few unnecessary includes from BaseDynamicMeshSceneProxy.h
#rb none (trivial)
#preflight 627138b2cb7b2a06138a0c75

[CL 20025424 by Yuriy ODonnell in ue5-main branch]
2022-05-03 10:31:45 -04:00
Yuriy ODonnell
1cee85ad1e Move implementations of FBaseDynamicMeshSceneProxy virtual methods from a public header to a private .cpp file
#rb Christopher.Waters
#preflight 62705226220f89f0ad57aa29

[CL 20017815 by Yuriy ODonnell in ue5-main branch]
2022-05-02 19:01:55 -04:00
Jimmy Andrews
85aa3a058b Add an async physics build for dynamic mesh component
To support this, adds an AggGeom to the dynamic mesh component, which collision update functions should update instead of the one on the current BodySetup. This ensures new collision changes are not overwritten by an async build replacing the BodySetup.

#rb rinat.abdrashitov
#rb ryan.schmidt
#preflight 622c179f902b7ca699efb24a

[CL 19366917 by Jimmy Andrews in ue5-main branch]
2022-03-11 23:38:07 -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
fred kimberley
7fbfaf57c8 Require explicit constructors/casts when converting between FVector, FVector3d, and FVector3f.
#jira UE-122078
#rb Andrew.Davidson, Colin.McGinley
#preflight standard build

#ROBOMERGE-AUTHOR: fred.kimberley
#ROBOMERGE-SOURCE: CL 18817999 in //UE5/Release-5.0/... via CL 18818012 via CL 18822871
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824721 by fred kimberley in ue5-main branch]
2022-02-02 07:59:31 -05:00
andrew davidson
8e95b10069 Fix FVector2D variant casts - Runtime
Submitted on behalf of fred.kimberley
#rb andy.davidson
#preflight 61f8729a5a026d2d19bb9ca6
#preflight 61f87a025a026d2d19be76ed

#ROBOMERGE-OWNER: andrew.davidson
#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 18802361 in //UE5/Release-5.0/... via CL 18802891 via CL 18821557
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18821641 by andrew davidson in ue5-main branch]
2022-02-02 01:47:07 -05:00
ryan schmidt
6ad26b69f0 rename UE::Geometry::TTransform3 to TTransformSRT3, update references
#rb none
#rnx
#jira UE-139757
#preflight 61f572d9e52a8a4a910990f1

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18784197 in //UE5/Release-5.0/... via CL 18784203 via CL 18784222
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18784226 by ryan schmidt in ue5-main branch]
2022-01-29 14:37:53 -05:00
lonnie li
6d2a97d252 Propagate CustomPrimitiveData to FDynamicPrimitiveUniformBuffer in FProceduralMeshSceneProxy and FBaseDynamicMeshSceneProxy.
#rb kevin.ortegren michael.balzer
#rnx
#jira UE-137763
#preflight 61e9722c963d324152ef6af6

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18674178 in //UE5/Release-5.0/... via CL 18674185 via CL 18674201
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v902-18672795)

[CL 18679670 by lonnie li in ue5-main branch]
2022-01-20 15:19:58 -05:00
semion piskarev
129b2f567c MeshModelingTools: Fix DynamicMeshSceneProxy fast UV update not updating all UV channels.
#rb Lonnie.Li, Ryan.Schmidt
#rnx
#jira UE-138287
#preflight 61d8949c322ebb01f71c70c9

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18549516 in //UE5/Release-5.0/... via CL 18549549
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18549588 by semion piskarev in ue5-release-engine-test branch]
2022-01-07 14:48:09 -05:00
semion piskarev
bfc2ab9eb3 MeshModelingTools: Fix fast update UV path for dynamic mesh proxy crashing when some UV's are unset.
#rb Jimmy.Andrews, Ryan.Schmidt
#rnx
#jira
#preflight 61b0c896ee6e47a827fea6c9

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18406009 in //UE5/Release-5.0/... via CL 18406039
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18406060 by semion piskarev in ue5-release-engine-test branch]
2021-12-08 10:26:23 -05:00
ryan schmidt
f0828c943b Expose component/asset physics data via a ToolTarget interface
ToolsFramework:
- add PhysicsDataSource ToolTarget Interface, that exposes UBodySetup and CollisionDataProvider interfaces
ModelingComponents:
- Add tooltarget accessor/utility functions in UE::ToolTarget namespace.
- Implement PhysicsDataSource for StaticMeshComponentToolTarget and DynamicMeshCompnentToolTarget.
- Update FPhysicsDataCollection::InitializeFromComponent() to support DynamicMeshComponent and BrushComponent.
ModelingTools:
- update ExtractCollisionGeometryTool and PhysicsInspectorTool

#rb lonnie.li
#rnx
#jira none
#preflight 61a150004803629015d5a09b

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18302043 in //UE5/Release-5.0/... via CL 18302049
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18302051 by ryan schmidt in ue5-release-engine-test branch]
2021-11-26 16:37:25 -05:00
ryan schmidt
517754bf03 GeometryFramework: expose View Mode Overrides flag as a setting on BaseDynamicMeshComponent. This flag controls how the mesh is drawn in different Editor View Modes, eg in Wireframe mode, if view mode overrides are disabled, the mesh will be drawn to the Z buffer to remove hidden lines. It also effects the various lighting-only modes. This change defaults the overrides to enabled, ie changing the previous behavior which disabled them, as otherwise DynamicMeshActor meshes are opaque in the standard Editor Wireframe mode.
#rb tyson.brochu
#rnx
#jira none
#preflight 619fe6b4ee100b68fa51fcf4

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18297199 in //UE5/Release-5.0/... via CL 18297201
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18297209 by ryan schmidt in ue5-release-engine-test branch]
2021-11-25 17:01:03 -05:00
ryan schmidt
a3624c42d3 GeometryFramework:
- add DynamicMeshComponent::SetComplexAsSimpleCollisionEnabled(), SetDeferredCollisionUpdatesEnabled() to handle some common component variable configuration in BP.
- expose DynamicMeshComponent::UpdateCollision()
GeometryScripting:
- pass UDynamicMesh TargetMesh as parameter to GeneratedDynamicMeshActor::OnRebuildGeneratedMesh(), to simplify BPs and leave open the possibility of updating a compute mesh separate from the actual Component mesh
- Automatically enable (then disable) deferred collision updates on DynamicMeshComponent in AGeneratedDynamicMeshActor::ExecuteRebuildGeneratedMeshIfPending, otherwise every GeometryScript node will rebuild collision (!)
#rb none
#rnx
#jira none
#preflight 6182abf261c9270001790212

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18056478 in //UE5/Release-5.0/... via CL 18056493
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18056503 by ryan schmidt in ue5-release-engine-test branch]
2021-11-04 10:22:38 -04:00
ryan schmidt
12f074e656 ModelingTools: optional path tracing support inside Modeling Tools
- Add new UModelingComponentsSettings which has settings for in-tool preview mesh rendering and emitted new mesh objects
- Add ToolSetupUtil::ApplyRenderingConfigurationToPreview() utility functions, most Tools now call this function to configure UPreviewMesh/DynamicMeshComponents they create for mesh editing preview rendering (uses Settings to make setup decisions like RT on/off)
- add PreviewMesh::NotifyWorldPathTracedOutputInvalidated(), forces invalidation of current path tracing result, call from various PreviewMesh internal functions
- UCreateMeshObjectTypeProperties::ConfigureCreateMeshObjectParams() now configures new-mesh-object parameters with RT and Collision from UModelingComponentsSettings
- DynamicMeshComponent now defaults to raytracing-enabled, usage in Editor is controlled by above settings

#rb rinat.abdrashitov
#rnx
#jira none
#preflight 615f376bf0ee840001cab0fc

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17753416 in //UE5/Release-5.0/... via CL 17758212
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v879-17706426)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17758266 by ryan schmidt in ue5-release-engine-test branch]
2021-10-07 22:25:54 -04:00
ryan schmidt
de4cbc3b55 GeometryFramework: remove ensure that will always be hit before DynamicMeshComponent RT geomety is initialized
#rb none
#rnx
#jira none

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17720622 in //UE5/Release-5.0/... via CL 17720636
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v879-17706426)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17720647 by ryan schmidt in ue5-release-engine-test branch]
2021-10-05 09:42:50 -04:00
ryan schmidt
88f6b02bc3 GeometryFramework: Add Raytracing support for Base/DynamicMeshComponent.
- add FRayTracingGeometry structures to FMeshRenderBufferSet for primary and secondary triangle indices
- add UpdateRaytracingGeometryIfEnabled() function which rebuilds these raytracing data structures. This does a full rebuild, not clear if any kind of incremental update is possible currently, to revisit in future.
- call the above in the various places where we modify the existing index/vertex buffers.
- add UPrimitiveComponent::GetDynamicRayTracingInstances() implementation, mirrors GetDynamicMeshElements() implementation, uses new DrawRayTracingBatch() function

#rb juan.canada
#rnx
#jira none
#preflight 6157507e2363e400012ed95f

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17696127 in //UE5/Release-5.0/... via CL 17696138
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17696156 by ryan schmidt in ue5-release-engine-test branch]
2021-10-01 16:01:41 -04:00
andrew davidson
57beb335f2 Merging //UE5/Dev-LargeWorldCoordinates [at] 17581892 to //UE5/Main
#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 17595295 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17595306 by andrew davidson in ue5-release-engine-test branch]
2021-09-22 10:01:48 -04:00
ryan schmidt
39261ded6a GeometryFramework: add BP-exposed UDynamicMeshComponent::EnableComplexAsSimpleCollision() function
#rb none
#rnx
#jira none
#preflight 6143c0c44778fa00017926b9

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17546414 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17546422 by ryan schmidt in ue5-release-engine-test branch]
2021-09-16 20:16:44 -04:00
ryan schmidt
3cbc795fda GeometryFramework:
- UDynamicMesh Reset() functions now return themselves, configured as BP output pin, helps to make BP wiring cleaner
- added DynamicMeshComponent::ConfigureMaterialSet() and ::ValidateMaterials(), to allow material set to be updated from BP
- added BaseDynamicMeshComponent::SetNumMaterials() to support above
#rb none
#rnx
#jira none
#preflight 614271263c7c670001ae4afd

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17531959 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17531972 by ryan schmidt in ue5-release-engine-test branch]
2021-09-15 21:24:22 -04:00
ryan schmidt
5952df5f60 ModelingComponents: Add support for enabling Complex Collision on DynamicMeshActors in UEditorModelingObjectsCreationAPI. Currently required for line traces to hit these objects, which many UI interactions depend on.
#rb none
#rnx
#jira none
#preflight 6139268ed9c85a00018ae356

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17466851 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17466869 by ryan schmidt in ue5-release-engine-test branch]
2021-09-08 21:47:47 -04:00