Commit Graph

59 Commits

Author SHA1 Message Date
ryan schmidt
b364eb0465 ModelingTools: Clean up AutoUV Tools and add support for Polygroup Layers.
- Refactor recompute-UVs-for-groups/islands out of ParameterizeMeshOp/Tool into RecomputeUVsOp/Tool. RecomputeUVsTool supports selection of active PolygroupLayer when applicable. Add support for auto-repacking.
- Clean up ParameterizeMeshOp/Tool, remove functionality related to recomputation that was moved to Recompute tool, add separate property sets for UVAtlas and XAtlas
- Add FDynamicMeshUVEditor::QuickPack() function to compute UV layout
- Add support for Polygroup Layer selection in SetCollisionGeometryTool, if only one source object is in use

#rb none
#rnx
#jira none
#preflight 60ced4b0be81e800012cc135

#ROBOMERGE-SOURCE: CL 16724375 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16724383 by ryan schmidt in ue5-release-engine-test branch]
2021-06-20 17:01:49 -04:00
michael balzer
8b90814403 GeometryProcessing: Reset existing UVs before Unwrap
#jira UE-116883
#rb ryan.schimdt
#rnx

#ROBOMERGE-SOURCE: CL 16710839 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16710868 by michael balzer in ue5-release-engine-test branch]
2021-06-17 16:27:45 -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
tyson brochu
9937f7fad0 Default to using UVAtlas in mesh parameterization op
#rnx
#preflight 60c12251b68c700001a3fe1a

#ROBOMERGE-SOURCE: CL 16614628 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16614630 by tyson brochu in ue5-release-engine-test branch]
2021-06-09 18:42:41 -04:00
ryan schmidt
649499e89c ModelingTools: fix incorrect branch that was disabling Geometric Tolerance in SimplifyMeshOp
#rb none
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 16511139 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v826-16501804)

[CL 16511160 by ryan schmidt in ue5-main branch]
2021-05-31 18:34:48 -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
Ryan Schmidt
3019b90219 GeometryProcessing: Add option to do explicit geometric tolerance/deviation checking in TMeshSimplification. Checks edge midpoints and face centroids against a fixed tolerance.
MeshModelingToolset: expose new option in SimplifyMeshOp and SimplifyMeshTool
#rb david.hill
#rnx
#jira none
#preflight 6099fb752032ee00016bee43

[CL 16274273 by Ryan Schmidt in ue5-main branch]
2021-05-11 13:17:19 -04:00
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
Ryan Schmidt
196be0f6d1 GeometryProcessing: replace UE::Geometry::FVector3d/FVector3f with UE Core versions based on TVector<T>. FVector3<T> is now an extension of TVector<T>. Update all affected call sites.
#rb none
#rnx
#jira none

[CL 15870068 by Ryan Schmidt in ue5-main branch]
2021-03-30 21:25:22 -04:00
ryan schmidt
24b1919528 GeometryProcessing and MeshModelingToolset: remove UE4 comment/enum references
#rb none
#rnx
#jira UE-111136

#ROBOMERGE-SOURCE: CL 15781714 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269)

[CL 15789800 by ryan schmidt in ue5-main branch]
2021-03-23 21:26:05 -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
tyson brochu
7a8ce6228f Add XAtlas as alternative to UVAtlas for auto-generating UVs.
#jira UETOOL-3063
#rb jimmy.andrews david.hill

#ushell-cherrypick of 15465011 by tyson.brochu

[CL 15610551 by tyson brochu in ue5-main branch]
2021-03-04 14:35:19 -04:00
Jimmy Andrews
cb2dbdf4c2 compute vertex normals when needed for simplify
#rb david.hill
#rnx

[CL 15574873 by Jimmy Andrews in ue5-main branch]
2021-03-02 18:16:04 -04:00
Jimmy Andrews
6c699a2ce3 change all the modeling / geometry tools shared pointers to thread safe mode, because they're often used in background threads
#rb ryan.schmidt
#rnx

[CL 15435521 by Jimmy Andrews in ue5-main branch]
2021-02-17 11:50:23 -04:00
David Hill
5bd96c4cbb Geometry Tools: Mesh Simplification - fix crash when using the reproject option.
#rb trivial
#rnx
#jira none

[CL 15429221 by David Hill in ue5-main branch]
2021-02-17 00:12:26 -04:00
David Hill
3e884d1cae Geometry Tools: Mesh Simplification. Improve collapse behavior with attribute seams. Previously edge collapses were more limited in the neighborhood of seams.
Additionally this CL:
Introduces a simplifier-level bool allow for easy switching between simplification with and without quadric memory and adds logic to remove isolated triangles

Extend MeshOverlay to identify seam-end edges  -  DynamicMeshAttributeSet.{h,cpp} DynamicMeshOverlay.{h,cpp}
Expose ability to recompute edge constraints   -  MeshConstraintUtil.{h,cpp}  MeshConstraints.h

#jira none
#rb jimmy.andrews

[CL 15419204 by David Hill in ue5-main branch]
2021-02-16 12:58:51 -04:00
Ryan Schmidt
ab7e08dbe9 ModelingTools:
Add support for submitting multiple UV channels to render buffers in UBaseDynamicMeshSceneProxy and USimpleDynamicMeshSceneProxy (currently not supported if there is a mesh decomposition, and not supported in fast UV updates).
Add support for visualizing different UV channels in UExistingMeshMaterialProperties.
Add UMeshUVChannelProperties property set for selecting from available UV channels.
Add support for arbitrary UV channels in ParameterizeMeshTool and UVLayoutTool/Op.
#rb jimmy.andrews
#rnx
#jira none

[CL 15281295 by Ryan Schmidt in ue5-main branch]
2021-02-02 13:26:23 -04:00
Jimmy Andrews
a61dc4a68e Every Progress->Cancelled() gets a nullptr check
#rb semion.piskarev
#rnx

[CL 15068053 by Jimmy Andrews in ue5-main branch]
2021-01-13 12:32:53 -04:00
Jon Nabozny
40e7577b7e Fix compile issue in SimplifyMeshOp.
Seems like older versions of MSVC have a problem with the default argument that uses a template dependent name.

#fyi David.Hill, Jeff.Farris

[CL 15001253 by Jon Nabozny in ue5-main branch]
2021-01-06 14:58:02 -04:00
David Hill
12eeb1bce0 Geometry Tools: Mesh Simplification. Expose option to only use existing vertices in simplification.
#rb jimmy.andrews
#jira UE-104386

[CL 14999529 by David Hill in ue5-main branch]
2021-01-06 11:48:47 -04:00
Ryan Schmidt
ad9f0ea712 GeometryProcessing: add DynamicMeshAttributeSet::SplitAllBowties() function, splits bowties in NormalOverlay and UVOverlays
ModelingTools: Expose Simplify To Minimal Planar simplification mode in Simplify Tool. Add edge filter to this simplification mode in TMeshSimplification. Add support for returning all edges along intersection curves in FMeshBoolean and FMeshSelfUnion. Add option BooleanMeshesOp and SelfUnionMeshesOp to apply minimal-planar simplification along these cut/intersection edges. Expose as toggles in CSGMeshesTool and SelfUnionMeshesTool
#rb jimmy.andrews
#rnx
#jira none

[CL 14890297 by Ryan Schmidt in ue5-main branch]
2020-12-09 14:18:38 -04:00
Jimmy Andrews
014eba1201 boolean option for polycut
+ also improves texturing options for generalized cylinder (needed b/c that's what we use to make the cutting geometry)
 + also separates the "embedded edges" concept from the "error / problem" edges, and always visualizes the embedded edges (for the boolean, these are different edges; also visualizing the embedded edges makes it a lot easier to understand what the "Insert Polygon" option is doing)

#rb david.hill

[CL 14872192 by Jimmy Andrews in ue5-main branch]
2020-12-07 15:18:20 -04:00
Ryan Schmidt
31317aefbd GeometryProcessing improvements/additions
- new correspondence-finding strategy in FMeshImageBakingCache. Added a global Thickness parameter, and now preferentially uses the ray-hit found by casting inwards from Point+Thickness*Normal. This handles the cases where a greeble/etc is just layered on top of base mesh. These kind of mesh elements are only intended to show up in the normal map, so they aren't stitched in.
  - expose Thickness and World-Space options in BakeMeshAttributeMapsTool
  - initialize image in Normal and ResampleImage Bakers, otherwise initial value is garbage
- add TSampledScalarField2::BilinearSampleGradientClamped and fix typo in BilinearSampleClamped() that resulted in incorrect interpolation
- add Texture2DUtil, contains functions for reading a TImageBuilder from a UTexture2D. Can read from source data if available.
- ColorConstants now returns white for group 0
- add double version of FMeshDescriptionToDynamicMesh::CopyTangents()
- add support for computing on subset of vertiecs in FMeshConvexHull
- fix up template export in TMeshTangents
- make mesh const in TImplicitMorphology, TImplicitSolidify
- accessor/etc additions in TDenseGrid2, TImageBuilder, TSampledScalarField2, TIndexedWeightMap
- add source UStaticMesh reference in FPhysicsDataCollection, function to initialize from a UStaticMesh
  - update Tools affected by above changes
- add TSampleSetStatisticBuilder::ComputeMultiPass() helper function to compute stats for iterable collections in one line
- remove dead code in UVLayoutOp.cpp

#rb tyson.brochu
#rnx
#jira none

[CL 14769759 by Ryan Schmidt in ue5-main branch]
2020-11-17 22:32:38 -04:00
Marc Audy
50a3d7d368 Merge Release-Engine-Staging to Main @ CL# 14467590
This represents UE4/Main @ 14432125 + some cherrypick fixes

[CL 14468207 by Marc Audy in ue5-main branch]
2020-10-09 22:42:26 -04:00