Commit Graph

64 Commits

Author SHA1 Message Date
ryan schmidt
384857e703 GeometyFramework: Add support for controlling vertex color space transform/conversion in BaseDynamicMeshComponent. Add support for custom color remapping function in DynamicMeshComponent.
#rb david.hill
#preflight 6464d64b2d446eac96c253c3

[CL 25507838 by ryan schmidt in ue5-main branch]
2023-05-17 11:12:48 -04:00
ryan schmidt
c8acfc09b0 ModelingTools: add support for DynamicMeshComponent Simple Collision in Mesh to Collision Tool, Convert Tool, and Transfer Tool.
ModelingComponents: Add ShapeSet member for passing simple collision shapes in FCreateMeshObjectParams, support in relevant functions in UEditorModelingObjectsCreationAPI. Add UE::Geometry::GetCollisionShapes() functions in ComponentCollisionUtil.h, and update various functions to support DynamicMeshComponent

DynamicMeshComponent: change signature of GetSimpleCollisionShapes() to return const ref

#rb david.hill
#preflight 6421ca54973e609670a408c7

[CL 24819452 by ryan schmidt in ue5-main branch]
2023-03-28 11:19:32 -04:00
ryan schmidt
7e039b0a5f fix nonunity build error
#rb none
#preflight none

[CL 24471406 by ryan schmidt in ue5-main branch]
2023-03-01 16:55:26 -05:00
ryan schmidt
9d6d1e8a38 DynamicMesh: resolve issue w/ wireframe not rendering for DynamicMeshComponent in shipping builds
[REVIEW] [at]semion.piskarev
#preflight 63ff6243a134e0b059009fc9
#rb jimmy.andrews, semion.piskarev

#localization none
#tests preflight and fix verified in shipping build locally

[CL 24469623 by ryan schmidt in ue5-main branch]
2023-03-01 15:45:50 -05:00
ryan schmidt
07bfc6f77c GeometryFramework: resolve issue w/ UDynamicMeshComponent::SetDynamicMesh() where the incoming mesh may not be Outered to the Component, so it won't necessarily be serialized, leading to potential situations where the DynamicMesh is null on level load. Also updated UDynamicMeshComponent::PostLoad() to handle this case instead of just check()ing.
#rb none
#preflight  63bf118c763c6c10643dcd56

[CL 23658504 by ryan schmidt in ue5-main branch]
2023-01-11 20:55:38 -05:00
christopher waters
8fd10b0e13 Dependency cleanup around some Rendering headers.
#preflight 63b893e547321b9d895924b0

[CL 23605570 by christopher waters in ue5-main branch]
2023-01-06 18:57:09 -05:00
christopher waters
f8abec7a8e Material header dependency cleanup
- Removing MaterialAttributeDefinitionMap and MaterialRenderProxy from MaterialShared.h
- Removing MaterialShared from Material.h

#preflight 639cbb35776b61ba3b82f03e

[CL 23541603 by christopher waters in ue5-main branch]
2022-12-16 16:24:02 -05:00
christopher waters
7215f7d4ec Fully moving MaterialDomain to its own header.
#jira none
#preflight 639b4dc335203bc7aa695078

[CL 23531533 by christopher waters in ue5-main branch]
2022-12-15 16:01:51 -05:00
tiantian xie
70c2dba8c0 Move RayTracingInstance.h and RayTracingInstance.cpp from Engine module the Renderer module.
* Remove the need to call BuildInstanceMaskAndFlags(), BuildRayTracingInstanceMaskAndFlags() manually in GetXXRayTracingInstance(). They will be called in the renderer module. All functions manually called has been removed.
* Remove the RENDER_API public api for those functions, as they cause link error in the Engine module (where the header is included in the Engine build file for static library link. the RENDERER_API is interpreted as dllimport, which will not link the functions in RayTracingInstance.cpp) and there is no need to call them outside of renderer module.
* A callback function is added to FRayTracingInstance, use it for RaytracingInstanceMaskandFlags caching.

Note: this is a first step to separate the instance mask between RayTracing and PathTracing, where PathTracing uses a totally different instance mask. This cleanup is un-avoidable if we want to keep rendering related code in the renderer module.

#rb Yuriy.ODonnell
#jira UE-172742
#preflight 6399002f2960b732202acc7c

[CL 23514248 by tiantian xie in ue5-main branch]
2022-12-14 13:16:33 -05:00
christopher waters
6ae040165a Moving FRayTracingGeometry into its own header+source files. FRayTracingGeometry can't forward declare its RHI members yet, so we need it in its own header to remove those dependencies from RenderResource.h
#rb tiago.costa
#preflight 63897bc0976b1644cb2f7450

[CL 23377483 by christopher waters in ue5-main branch]
2022-12-02 15:09:41 -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
aditya ravichandran
bd94fc3c31 Move the ADynamicMeshActor Outliner filter from ModelingTools to GeometryFramework
#rb Jimmy.Andrews
#preflight 63640d705c51adc95f994f01

[CL 22969748 by aditya ravichandran in ue5-main branch]
2022-11-03 18:43:01 -04:00
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
c10ece84e8 fix Geometry Script function SetMeshSelectionVertexColor so that it works even if mesh does not have vertex colors defined. Fix DynamicMeshComponent ConstantColor override, the override was ignored if the mesh had vertex colors defined.
#rb none
#preflight 634a23b9a8717e9453042b08

[CL 22549055 by ryan schmidt in ue5-main branch]
2022-10-15 13:03:38 -04:00
marc audy
311f7464bf Updated ../Engine/Source/Runtime/... to inline gen.cpp files
Before:
3648 unity files
Total CPU Time: 47886.140625 s
Total time in Parallel executor: 498.81 seconds

After:
3548 unity files
Total CPU Time: 46643.828125 s
Total time in Parallel executor: 486.06 seconds

#jira
#preflight

[CL 22173263 by marc audy in ue5-main branch]
2022-09-24 13:57:58 -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
ryan schmidt
2570102ec2 Various improvements to (Generated)DynamicMeshActor. Harden registration/unregistration of GeneratedDynamicMeshActor with GeometryGen Subsystem, to avoid recomputing procedural mesh blueprints in objects duplicated for PIE and other temporary object copies. Add support for built-in "frozen" flag on GeneratedDynamicMeshActor, when toggled on, OnRebuildGeneratedMesh event will not be fired (ie mesh is "frozen" in it's current state). Add ability for GeneratedDynamicMeshActor to start a SlowTask dialog during long mesh recomputes, and provide a few functions that a BP can use to update the progress.
#rb jimmy.andrews
#preflight 6323576b63312bbbbb06fa21
#jira UE-155683

[CL 22041549 by ryan schmidt in ue5-main branch]
2022-09-15 19:35:13 -04:00
ryan schmidt
8d14434442 GeometryFramework: filter out degenerate triangles when building complex collision mesh for DynamicMeshComponent
#rb jimmy.andrews
#preflight 631a5b1ef448dc6e58c3616b
#jira UE-163312

[CL 21920542 by ryan schmidt in ue5-main branch]
2022-09-09 10:37:31 -04:00
Jimmy Andrews
e6012a7e65 handle negative scales in UDynamicMeshComponent::ApplyTransform
#rb david.hill
#rb tyson.brochu
#preflight 6309163ced56f9e6dbe4a983

[CL 21602611 by Jimmy Andrews in ue5-main branch]
2022-08-26 20:00:00 -04:00
Ryan Schmidt
d3f24c0f04 GeometryFramework: harden handling of an empty material set in MeshRenderDecomposition
ModelingTools: prevent user from accepting EditMeshMaterialsTool with an empty material set
#rb david.hill
#preflight 6306766f0061f895d04b867c
#jira UE-156197

[CL 21550728 by Ryan Schmidt in ue5-main branch]
2022-08-24 16:13:55 -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
986547914e Move GeometrySelection.h and GeometrySelectionUtil.h to GeometryProcessing plugin. Move types in GeometrySelection.h into UE::Geometry:: namespace. Fix up usage sites.
#rb none
#preflight 62d1c7222e3e5993c351a126

[CL 21117964 by Ryan Schmidt in ue5-main branch]
2022-07-15 17:53:52 -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
36447f07ae GeometryFramework: add support for fast vertex-buffer-only updates in UDynamicMeshComponent::OnMeshObjectChanged(), if the posted change type is a vertex deformation.
#rb jimmy.andrews
#preflight 62b12cc5e0147b875347232d

[CL 20750724 by Ryan Schmidt in ue5-main branch]
2022-06-20 22:42:51 -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