Commit Graph

36 Commits

Author SHA1 Message Date
tyson brochu
a108c5605c AutoLOD: if node computation is cancelled, do not update the cached outputs
#jira UE-140251
#rnx
#rb rinat.abdrashitov
#preflight 61f47b8274510448a68f54cf

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18780378 in //UE5/Release-5.0/... via CL 18780942 via CL 18781364
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18781666 by tyson brochu in ue5-main branch]
2022-01-28 19:49:26 -05:00
tyson brochu
2cd7a4943d AutoLOD: don't run UV packing if the input mesh is empty
#jira UE-139236
#rnx
#rb ryan.schmidt
#preflight 61e1f70200246899a950be81

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18624665 in //UE5/Release-5.0/... via CL 18624697 via CL 18624731
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18624746 by tyson brochu in ue5-main branch]
2022-01-14 17:54:30 -05:00
tyson brochu
d4e84148eb AutoLOD: prevent a hard crash if a node input mesh doesn't have attributes
#rnx
#rb ryan.schmidt
#preflight 61df6677ff67b6fe7ac81ca9

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18592140 in //UE5/Release-5.0/... via CL 18592157 via CL 18592170
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18592176 by tyson brochu in ue5-main branch]
2022-01-12 19:14:04 -05:00
tyson brochu
69f82207ef AutoLOD: the FProgressCancel object wasn't being passed to mesh simplification functions
#jira UE-137923
#rnx
#rb jimmy.andrews
#preflight 61d71f8c81634832b00d9785

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18532392 in //UE5/Release-5.0/... via CL 18533896
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18534100 by tyson brochu in ue5-release-engine-test branch]
2022-01-06 14:15:50 -05:00
tyson brochu
3c7af3d0bd AutoLOD: Pass EvaluationInfo to node ProcessMesh functions. Make GenerateUVs and GenerateConvexHullMesh cancellable.
#rnx
#rb rinat.abdrashitov
#preflight 614cb58d88dbdb000179f1cf

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 17611355 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17611364 by tyson brochu in ue5-release-engine-test branch]
2021-09-23 14:25:03 -04:00
tyson brochu
530606f6e1 Add Convex Hull mesh generator option to AutoLOD
#jira UETOOL-2871
#rb jimmy.andrews
#preflight 61450a4a11925a00011c4043

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 17560267 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17560272 by tyson brochu in ue5-release-engine-test branch]
2021-09-17 19:31:36 -04:00
michael balzer
cf402dace4 GeometryFlow: Resolve PVS-Studio warnings in FMeshMakeCleanGeometry
#jira UE-126635
#rb trivial

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17505807 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17505813 by michael balzer in ue5-release-engine-test branch]
2021-09-14 12:29:21 -04:00
ryan schmidt
07419075da AutoLOD: make mesh computation type configurable using new GeometryFlow Switch node, and expose Normals calculation settings in Graph/Process/Tool
GeometryFlow:
Add TSwitchNode node, uses internal integer to select one of N inputs (N is currently defined in template type, so number of inputs is fixed). Add custom util function UpdateSwitchNodeInputIndex() to simplify changing switch integer.
Add FMeshMakeCleanGeometryNode/Settings, strips out undesired attribute sets and fills small holes, to create better input mesh for simplification
Add FSimpleInPlaceProcessMeshBaseNode, just runs some basic geometry operation, makes it easier to make new nodes. Converted FComputeMeshPerVertexOverlayNormalsNode to this base class and added FComputeMeshPerVertexNormalsNode.
Fixed attribute set handling issue in FSimplifyMeshNode

MeshLODToolset:
Added ECoreMeshGeneratorMode enum to FGenerateMeshLODGraph. This setting drives a Switch node that picks between Vox, Vox+Closure, and Simplify-only mesh generation paths.
Added SourceMeshHint to BuildGraph, allows for variable graph construction. Use to skip MaterialID transfer in single-material case.
Change default collision type to aligned boxes (fast and low visual complexity)
Exposed top-level Mesh Generation type, Normals settings in Graph/Process/Tool, minor UI and default changes

#rb tyson.brochu
#rnx
#jira none
#preflight 61391fa89c40ec00012ddec0

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

[CL 17466805 by ryan schmidt in ue5-release-engine-test branch]
2021-09-08 21:45:23 -04:00
ryan schmidt
b418c91538 AutoLOD: add support for PatchBuilder UVs and Simplification based on geometric deviation tolerance, split up settings into separate structs so that settings panel is more organized
#rb tyson.brochu
#rnx
#jira none
#preflight 6131919c1a52e20001c3686e

#ROBOMERGE-SOURCE: CL 17424385 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17424388 by ryan schmidt in ue5-release-engine-test branch]
2021-09-03 13:47:00 -04:00
ryan schmidt
001b7d5e63 GeometryProcessing: remove forwarding headers used in GeometryCore transition, and update all affected includes.
#rb none
#rnx
#jira none
#preflight 60c52c5db9446100014da02d

#ROBOMERGE-SOURCE: CL 16653115 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16653121 by ryan schmidt in ue5-release-engine-test branch]
2021-06-13 00:36:02 -04:00
Ryan Schmidt
fdb2bab149 GeometryProcessing: Move MeshConversion module from GeometryProcessing plugin to Runtime. Transfer necessary additional files from DynamicMesh to GeometryCore. Move functions from MeshIndexUtil and MeshAdapterUtil namespaces to UE::Geometry namespace.
#rb none
#rnx
#jira none
#preflight 60a7e75e7d6b060001c61f47

[CL 16428413 by Ryan Schmidt in ue5-main branch]
2021-05-22 01:32:46 -04:00
Ryan Schmidt
623e4f96fe GeometryCore: create new GeometryCore Module. Move GeometricObjects code from GeometryProcessing plugin to this new module, as well as core FDynamicMesh3 classes (attributes, aabbtree/octree, change tracking). Update module Build.cs files that reference GeometricObjects.
#rb none
#rnx
#jira none
#preflight 60a713700569f300014a064a

[CL 16415082 by Ryan Schmidt in ue5-main branch]
2021-05-21 01:04:38 -04:00
tyson brochu
2b95145665 Add multi-texture baking to AutoLOD
#jira UETOOL-3071
#rb

[CL 16334835 by tyson brochu in ue5-main branch]
2021-05-14 16:11:23 -04:00
tyson brochu
3c41fe626a Make convex hull cancellable when called from GeometryFlow.
#jira UETOOL-3116
#rnx
#rb jimmy.andrews

[CL 16074529 by tyson brochu in ue5-main branch]
2021-04-21 11:35:00 -04:00
tyson brochu
ba52f4e1c3 Remove standalone generate convex hull node -- this is a subset of the functionality in GenerateSimpleCollisionNode.
#rnx
#rb ryan.schmidt

[CL 16063333 by tyson brochu in ue5-main branch]
2021-04-20 13:21:09 -04:00
tyson brochu
8ec7d9f922 Minor code and UI changes for AutoLOD.
- DebugDumpGraph was being called before texture baking nodes were in the graph
- Fix some capitalization of tool properties
- Added some code comments
- If morphology distance is zero, don't apply it

#rnx
#rb jimmy.andrews

[CL 16055366 by tyson brochu in ue5-main branch]
2021-04-19 17:18:09 -04:00
tyson brochu
4b5196db79 - AutoLOD: pop up notifications when input assets might not work as expected
- Add our own log categories for geometry flow and LOD toolset modules to avoid spamming LogTemp

#jira UETOOL-3200
#rnx
#lockdown simon.tourangeau
#rb jimmy.andrews

#ROBOMERGE-OWNER: tyson.brochu
#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 15958824 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v787-15839533)
#ROBOMERGE-CONFLICT from-shelf

[CL 15978978 by tyson brochu in ue5-main branch]
2021-04-12 12:37:05 -04:00
tyson brochu
b65346fc8d AutoLOD: turn on convex hull subsampling by default. Add a "None" option to collision geometry.
#rnx
#rb jimmy.andrews

#ROBOMERGE-SOURCE: CL 15715638 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)

[CL 15718690 by tyson brochu in ue5-main branch]
2021-03-17 04:51:06 -04:00
Ryan Schmidt
ffe3b401cd GeometryProcessing: move all public types in GeometryProcessing plugin into UE::Geometry:: namespace, as well as some code in MeshModelingToolset. Fix fallout in Water, Paint Mode, ChaosEditor, DataPrep, Text3D, Unit Tests, internal projects.
#rb jimmy.andrews, semion.piskarev
#jira none

[CL 15661651 by Ryan Schmidt in ue5-main branch]
2021-03-09 19:33:56 -04:00
ryan schmidt
f9810df402 GeometryProcessing: Added FMeshAttributeTransfer class, currently supports transferring triangle material IDs from one mesh to another, via nearest-point queries
GeometryFlow: Added FCompactMeshNode, FComputeMeshPerVertexOverlayNormalsNode (convenient), and FTransferMeshMaterialIDsNode that applies FMeshAttributeTransfer based on two input meshes. Graph InferConnection() now is more clever and can infer connections in cases where a potentially-ambiguous connection is resolved based on what is already connected (ie if two mesh inputs, and one is assigned, infer that second one is intended)

LODToolset: LODGraph now transfers materials and computes per-vertex normals before Simplify node, and Compacts afterwards (required for other downstream processes).
LODProcess now handles multiple materials, and can re-use input materials if they do not require a baked texture or normal map. In repeat applications, previously-auto-generated StaticMesh Materials are detected and removed from the material set. Normals and Tangents are explicitly computed for stored HiRes source and LOD0, and build settings updated appropriately.

#rb none
#rnx
#jira none
[FYI] tyson.brochu

#ROBOMERGE-SOURCE: CL 15470041 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15470044 by ryan schmidt in ue5-main branch]
2021-02-19 01:48:21 -04:00
tyson brochu
49d64a7e11 Add a Thicken node to GeometryFlow. Accepts vertex weights and a scalar and moves vertices in the normal direction accordingly.
#jira UETOOL-2943
#rb jimmy.andrews

#ROBOMERGE-OWNER: tyson.brochu
#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 15424119 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
#ROBOMERGE-CONFLICT from-shelf

[CL 15426283 by tyson brochu in ue5-main branch]
2021-02-16 19:58:02 -04:00
tyson brochu
a1e18ff827 Move AutoLOD computation to background thread(s). Make GeometryFlow graph execution cancellable.
#jira UETOOL-2947 UETOOL-2979
#rnx

[CL 15273200 by tyson brochu in ue5-main branch]
2021-02-01 14:43:20 -04:00
tyson brochu
e95131662c Enable default values on Node inputs. AddInput now takes an additional optional parameter for the default value.
#jira UETOOL-2791
#rnx
#rb ryan.schmidt

[CL 15166169 by tyson brochu in ue5-main branch]
2021-01-22 15:38:32 -04:00
tyson brochu
47b3d19da3 Add support for multiple group layers to MakeTriangleSetsNode. Retrieve the IndexSets for a given group layer by passing in the layer's name.
#jira UETOOL-2941
#rnx
#rb david.hill

[CL 15136616 by tyson brochu in ue5-main branch]
2021-01-19 12:17:27 -04:00
tyson brochu
6d80f98f09 Add SweptConvex and MinVolume options to the simple collision generator node.
#jira UETOOL-2869
#rnx
#rb david.hill

[CL 15133106 by tyson brochu in ue5-main branch]
2021-01-18 18:59:25 -04:00