Commit Graph

32 Commits

Author SHA1 Message Date
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
tyson brochu
6aebdc39ae Add support for convex hulls and triangle sets to FGenerateSimpleCollisionNode. Make this the default collision geometry generation node to replace the GenerateConvexCollisionNode.
#jira UETOOL-2869
#rnx
#rb ryan.schmidt

[CL 15090749 by tyson brochu in ue5-main branch]
2021-01-14 15:06:29 -04:00
tyson brochu
baa9bc54cc Initial implementation of simple collision geometry generator node. Just wraps FMeshSimpleShapeApproximation. The only option right now is which type of geometric primitive will be produced. Does not support ConvexHull, as there is a separate node for that.
#jira UETOOL-2869
#rnx
#rb jimmy.andrews

[CL 15041449 by tyson brochu in ue5-main branch]
2021-01-11 15:35:10 -04:00
tyson brochu
7b1d5cb4aa GeometryFlow: add vertex weight map data type, and a node for getting a set of triangles from a mesh and weight map.
#jira UETOOL-2782 UETOOL-2783
#rnx
#rb jimmy.andrews

[CL 15012063 by tyson brochu in ue5-main branch]
2021-01-07 13:15:38 -04:00
tyson brochu
4d8194b0f9 AutoLOD: if no specific sets of triangles are provided to the convex hull node, just compute the convex hull of the entire mesh.
#jira UETOOL-2852
#rnx
#rb jimmy.andrews

[CL 14981967 by tyson brochu in ue5-main branch]
2021-01-04 15:51:52 -04:00