Commit Graph

67 Commits

Author SHA1 Message Date
david hill
94e4952dd6 GeometryTypes.h - add missing includes to fix non-unity build errors
#rb ryan.schmidt

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17464140 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17464148 by david hill in ue5-release-engine-test branch]
2021-09-08 17:22:50 -04:00
ryan schmidt
2261125642 GeometryProcessing: force UV/normal overlays to be initialized on creation inside a DynamicMeshAttributeSet.
#rb michael.balzer
#rnx
#jira none
#preflight 6138f6289c40ec00012a7289

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

[CL 17463750 by ryan schmidt in ue5-release-engine-test branch]
2021-09-08 16:59:20 -04:00
david hill
6dfe7cada9 IntrinsicTriangulationMesh.cpp Adding missing include - fixing non unity build error
#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17461087 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17461097 by david hill in ue5-release-engine-test branch]
2021-09-08 14:04:42 -04:00
david hill
1b53940a8c GeometryCore: Add Embedded Path Tracing across FDynamicMesh surfaces and Intrinsic Triangulations of FDynamicMeshes. Also update Mesh Laplacian Code to generate Cotan Laplacians from Intrinsic Triangulation.
MeshGeodesicSurfaceTracer.{h,cpp}  -  Add embedded path tracing.
GeodesicSurfaceTracerTests.cpp     -  unit tests for embedded path tracing

IntrinsicTriangulationMesh.{h, cpp}  - Adds two Intrinsic Triangulation mesh types (the more sophisticaed requires embedded path tracing)
IntrinsicMeshTests.cpp               -  unit tests for Intrinsic mesh types.

MeshLaplacian.{h,cpp}                - Adds new enum types for Intrinsic Delaunay Triangulation (IDT)  Laplacians
LaplacianOperators.{h,cpp}           - Adds wrappers and allow enum switches to build IDT Laplacians if requested
LaplacianMatrixAssembly.h            - Actually construction of IDT Laplacian.
Laplacian.cpp                        - Added trivial unit test for construction of IDT Laplacian

#rb jimmy.andrews
#preflight 6138bca42d09b9000158c95a

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17458853 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17458863 by david hill in ue5-release-engine-test branch]
2021-09-08 11:15:58 -04:00
ryan schmidt
b88e05ba4c AutoLOD:
- add support for a Settings Preset, as an explicit Asset type. UStaticMeshLODGenerationSettings contains a copy of the GenerateProcess Settings, UStaticMeshLODGenerationSettingsFactory allows this UObject to be used as an Asset in the Editor.  UGenerateStaticMeshLODAssetTool now has a Preset slot, and action buttons to Read/Write to the currently-selected Settings Asset. New Settings Asset can be created via the Asset Picker popup in the Tool, currently creating via the New Asset menu is disabled via UStaticMeshLODGenerationSettingsFactory::GetMenuCategories()
- UGenerateStaticMeshLODProcess now automatically ignores input textures that have a constant value
- UGenerateStaticMeshLODProcess now skips writing output NormalMap and MultiTexture if they are not referenced by any output Materials
- UGenerateStaticMeshLODProcess now supports configuring whether a Texture or Material will be considered for Baking. If disabled, then the source Texture/Material is used (currently the Textures are still baked, they are just ignored while configuring/writing the outputs).
- UGenerateStaticMeshLODAssetTool now exposes lists of source Texture and Materials with option to skip baking (used to configure the above options)
- wrote header comments for UGenerateStaticMeshLODProcess
- overall cleanup in  UGenerateStaticMeshLODAssetTool, ie category names, organization, etc

- add TImageBuilder::IsConstantValue(), checks if all pixels of image are the same value

#rb tyson.brochu
#rnx
#jira none
#preflight 6137ae4fd9c85a00013838c1

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

[CL 17449840 by ryan schmidt in ue5-release-engine-test branch]
2021-09-07 16:51:03 -04:00
michael balzer
2d96903a80 GeometryCore: Account for loading TDynamicVector<> with inconsistent internal current block data.
#rb none
#preflight 61328085e7eda30001ad2586
#rnx

#ROBOMERGE-SOURCE: CL 17427612 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
#ROBOMERGE[bot1]: emt

[CL 17427625 by michael balzer in ue5-release-engine-test branch]
2021-09-03 18:00:11 -04:00
michael balzer
26aa64f57c GeometryCore: Fix DynamicVector::Resize() over-allocating and assigning invalid internal indices
#preflight 61318c221a52e20001c28dc7, 613176adbf137d0001722d3a
#rb jimmy.andrews
#rnx

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

[CL 17421815 by michael balzer in ue5-release-engine-test branch]
2021-09-03 11:26:36 -04:00
david hill
8eb1d85aaf DynamicMesh3 - Add direct buffer access that returns const refrence to TriangleEdges.
Also make all other direct buffer access methods that return const references, const methods

#preflight 6130f096e7eda30001750def
#rb Michael.Balzer

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

[CL 17407691 by david hill in ue5-release-engine-test branch]
2021-09-02 15:41:54 -04:00
ryan schmidt
f6c51e0c61 GeometryCore: minor DynamicMesh fixes. Change ensure to a checkSlow in DynamicMesh3::AppendTriangle. Add FDynamicMeshOverlay::GetTriangleIfValid(). Handle unset triangles in CountVertexElements().
#rb tyson.brochu
#rnx
#jira none
#preflight 612fa9a575bca200010b8148

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

[CL 17393312 by ryan schmidt in ue5-release-engine-test branch]
2021-09-01 18:01:47 -04:00
ryan schmidt
4e422005cd GeometryCore: Add minimal UE::Math::TVector2<T> implementation and FVector2f/2d typedefs locally in GeometryCore VectorTypes.h. Replace existing FVector2<T> with this class, in preparation for LWC conversion. FVector2 members ::Distance() and ::DistanceSquared() moved to free functions. Update all call sites and references to FVector2.
#rb jimmy.andrews
#rnx
#jira none
#preflight 612d248c423a8f00013287f2

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

[CL 17359838 by ryan schmidt in ue5-release-engine-test branch]
2021-08-30 18:03:07 -04:00
nathan mitchell
0fc29c3cfb UVEditor: Add support for sew action as part of the Select/Transform tool
Additionally adds a new parameter to the DynamicMesh MergeEdge method to ignore orientation discrepancies, useful in 2D mesh manipulation, and fixes a bug in the SetTriangle method where a variable was being left uninitialized.

#rb semion.piskarev
#rnx
#jira UETOOL-3112

#ROBOMERGE-SOURCE: CL 17328444 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17328460 by nathan mitchell in ue5-release-engine-test branch]
2021-08-26 19:53:44 -04:00
semion piskarev
a9f3f5bd8e MeshModelingTools: Add boolean extrude option to PolyEdit. Fix extrusion of multiple faces via triangle normals. Add ability to extrude while keeping multiple faces parallel. Add options for side group setting on borders during extrude.
#rb Jimmy.Andrews
#jira UETOOL-3807
#rnx

#ROBOMERGE-SOURCE: CL 17325840 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17325887 by semion piskarev in ue5-release-engine-test branch]
2021-08-26 16:59:59 -04:00
ryan schmidt
659af0404e GeometryProcessing: remove T* conversions/casts from FVector2<T>
#rb none
#rnx
#jira none
#preflight 6127affdc068e50001bedd42

#ROBOMERGE-SOURCE: CL 17325004 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17325030 by ryan schmidt in ue5-release-engine-test branch]
2021-08-26 15:58:26 -04:00
ryan schmidt
3c6a5318d8 GeometryProcessing: LWC Fixes. Remove GeometryCore TRay3, TSphere3, and TOrientedBox3 from ExplicitUseGeometryMathTypes.h, update call sites to fully-qualified name where necessary (in some cases handled by using declaration at class scope, or by wrapping code in UE::Geometry:: namespace)
#rb none
#rnx
#jira none
#preflight 6126b717d673c400011f438b

#ROBOMERGE-SOURCE: CL 17316981 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17316997 by ryan schmidt in ue5-release-engine-test branch]
2021-08-26 09:31:28 -04:00
ryan schmidt
7d446ee14c GeometryProcessing: clean up TVector4 and usage in preparation for LWC conversion
#rb none
#rnx
#jira none
#preflight 6126abe6250579000172095f

#ROBOMERGE-SOURCE: CL 17316245 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17316301 by ryan schmidt in ue5-release-engine-test branch]
2021-08-26 08:34:06 -04:00
ryan schmidt
e3183cb1e7 GeometryProcessing: clean up mesh timestamps.
- remove FDynamicMesh3::Timestamp (unused), rename Shape/Topology Timestamps to Shape/TopologyChangeStamp, change to atomic<uint32>
- add FDynamicMesh3::bEnableShapeChangeStamp, default to false, to disable ShapeChange tracking. Add ::SetShapeChangeStampEnabled() and ::HasShapeChangeStampEnabled() to configure.
- replace FDynamicMesh3::UpdateTimestamps() with UpdateChangeStamps()
- add bTrackChange param to FDynamicMesh3::SetVertex(), optionally updates ShapeChangeStamp (if enabled). Default true. Remove SetVertex_NoTimeStampUpdate(), update call sites.
- add FDynamicMesh3::GetChangeStamp(), returns combination of Shape and Topology stamps as uint64
- rename TTriangleMeshAdapter::GetTimestamp() to GetChangeStamp(), update usages
- remove TPointSetAdapter::Timestamp()   (was not used in code)
- update TMeshAABBTree3 to use GetChangeStamp(), update internal checks to call IsValid() instead
- update TFastWindingTree w/ similar changes
- update calls in UVEditor, may require further updates
#rb semion.piskarev
#rnx
#jira none
#preflight 6126904c72e9eb00011434fe

#ROBOMERGE-SOURCE: CL 17310271 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17315112 by ryan schmidt in ue5-release-engine-test branch]
2021-08-26 06:57:55 -04:00
michael balzer
b0035b9921 GeometryCore: Add unit test for loading all serialization versions of FDynamicMesh3
This CL adds a unit test and some related basic infrastructure for testing the backwards compatibility of our FDynamicMesh3 serialization. This is in anticipation of the incoming serialization changes.

#jira UETOOL-3821
#rb lonnie.li david.hill
#preflight 6125e930af9a8f0001691400, 6125e96a72e9eb0001f69cd3
#rnx

#ROBOMERGE-SOURCE: CL 17310112 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17315105 by michael balzer in ue5-release-engine-test branch]
2021-08-26 06:57:09 -04:00
michael balzer
58f950d182 GeometryCore: Refactor FCompactMap
#rb ryan.schmidt
#preflight 61242d242c1f1c0001ab244f
#rnx

#ROBOMERGE-SOURCE: CL 17297241 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17297258 by michael balzer in ue5-release-engine-test branch]
2021-08-24 21:40:58 -04:00
ryan schmidt
08cb1b68cf GeometryProcessing: remove unused cached bounding-box support in FDynamicMesh3
#rb none
#rnx
#jira none
#preflight 61245788008be90001a5e767

#ROBOMERGE-SOURCE: CL 17286687 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17286706 by ryan schmidt in ue5-release-engine-test branch]
2021-08-24 10:16:20 -04:00
ryan schmidt
3e9494d723 GeometryProcessing: remove most calls to FDynamicMesh3::GetCachedBounds()
#rb jimmy.andrews
#rnx
#jira none
#preflight 612436ea8ff55400012a182c

#ROBOMERGE-SOURCE: CL 17280425 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)

[CL 17280439 by ryan schmidt in ue5-release-engine-test branch]
2021-08-23 22:08:34 -04:00
ryan schmidt
befd9ab05e GeometryProcessing: remove FDynamicMesh3::CachedIsClosed()
#rb jimmy.andrews
#rnx
#jira none
#preflight 6123fed7864948000170d754

#ROBOMERGE-SOURCE: CL 17279375 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)

[CL 17279378 by ryan schmidt in ue5-release-engine-test branch]
2021-08-23 20:01:35 -04:00
jimmy andrews
ec491379cc Remove duplicate FDynamicMesh vertex triangle one ring function, optimize the remaining function some, and remove bool that doesn't change result.
#rb ryan.schmidt
#rnx

#ROBOMERGE-SOURCE: CL 17251072 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17251085 by jimmy andrews in ue5-release-engine-test branch]
2021-08-20 14:54:52 -04:00
ryan schmidt
6ea7d67546 GeometryProcessing: Add full AutoUV process to PatchBasedMeshUVGenerator, based on initial superpatch decomposition computed using FPolygroupsGenerator. Add a few utility functions for setting output state to FGeometryResult. Add FMeshConnectedComponents::InitializeFromTriangleComponents(), to allow initializing from an existing triangle set (sometimes necessary when downstream code requires a FMeshConnectedComponents as input).
#rb david.hill, jimmy.andrews
#rnx
#jira none
#preflight 611ede69008be9000100c1ad

#ROBOMERGE-SOURCE: CL 17242884 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17242890 by ryan schmidt in ue5-release-engine-test branch]
2021-08-19 21:29:14 -04:00
jimmy andrews
09b2e36929 change dmesh GetVtxContiguousTriangles to always reset input arrays before returning, so behavior is more reliable
#rnx

#ROBOMERGE-SOURCE: CL 17235461 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17235483 by jimmy andrews in ue5-release-engine-test branch]
2021-08-19 12:24:24 -04:00
ryan schmidt
809b400f39 GeometryProcessing: add compact check in FindPoloygonsAlgorithm, normalize average normal in MeshNormals
#rb none
#rnx
#jira none
[FYI] semion.piskarev

#ROBOMERGE-SOURCE: CL 17234371 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17234377 by ryan schmidt in ue5-release-engine-test branch]
2021-08-19 11:06:11 -04:00