Commit Graph

219 Commits

Author SHA1 Message Date
rinat abdrashitov
90cd97efcc Renaming AdaptiveTessellate.h/cpp to SelectiveTessellate.h/cpp
#rb trivial
#jira none
#rnx
#preflight 63069306a45b007ea2b6cedf

[CL 21564641 by rinat abdrashitov in ue5-main branch]
2022-08-25 11:02:41 -04:00
rinat abdrashitov
70cf962f41 Renaming AdaptiveTessellate to SelectiveTessellate to better reflect its actual functionality.
#rb jimmy.andrews
#jira none
#rnx
#preflight 6306859ac85b7fef22c52811

[CL 21551697 by rinat abdrashitov in ue5-main branch]
2022-08-24 16:46:15 -04:00
Joe Kirchoff
fa80772aea Fix undefined symbols when running clang analyzer in xatlas.cpp
Add check to CollisionConvexMesh.h to supress null reference warning by request
Suppress cplusplus.NewDeleteLeaks warnings in Chaos by request

#rnx
#rb trivial
#jira UE-160884
#preflight 630676ac0061f895d04b88fe

[CL 21549010 by Joe Kirchoff in ue5-main branch]
2022-08-24 15:16:09 -04:00
rinat abdrashitov
b0f59dad0a Fixed a bug causing an error when tessellating non-compact meshes.
#rb david.hill
#jira None
#rnx
#preflight 63064dce5366f61a42c39428

[CL 21547609 by rinat abdrashitov in ue5-main branch]
2022-08-24 14:28:05 -04:00
roey borsteinas
679290bffa Water: Water LOD system. Replaces water mesh tiles at a distance with simplified, non-tessellated meshes. This allows the Water Info texture to localized and higher precision.
#rb jonathan.bard, tim.dorries

[CL 21525131 by roey borsteinas in ue5-main branch]
2022-08-23 19:25:08 -04:00
rinat abdrashitov
13c60db582 Only displace those vertices that belong to triangles affected by the tessellation.
#rb david.hill
#rb jimmy.andrews
#jira none
#rnx
#preflight 63053a840061f895d02bb5d4

[CL 21524058 by rinat abdrashitov in ue5-main branch]
2022-08-23 18:55:07 -04:00
Ryan Schmidt
2a47ed9730 GeometryScript: add InvertMeshSelection
GeometrySelectionUtil: add FindByTopologyID function, to search a Selection for selected element with matching TopologyID but ignoring GeometryID. Update FGeometryScriptMeshSelection::CombineSelectionInPlace() to use this, as it was not properly combining Polygroup selections.
#rb none
#preflight 630501435a5d4e462428af90

[CL 21516930 by Ryan Schmidt in ue5-main branch]
2022-08-23 15:23:52 -04:00
Ryan Schmidt
c55dd6a6e2 DynamicMesh: fix VertexNormals mode in FOffsetMeshRegion. It was not properly handling the case where input mesh did not have VertexNormals attribute, the FMeshNormals being computed and passed to ::ApplyOffset() were never used.
GeometryScript: add ApplyMeshOffsetFaces and ApplyMeshInsetOutsetFaces
#rb none
#preflight 6303f6440061f895d0f67450

[CL 21510656 by Ryan Schmidt in ue5-main branch]
2022-08-23 12:31:21 -04:00
Ryan Schmidt
fe17133b36 GeometryScript: add ExpandContractMeshSelection. Add option to fallback to full mesh processing for FGeometryScriptMeshSelection::ProcessByTriangleID() and ProcessByVertexID(), to simplify handling "empty selection is full mesh" cases
GeometryProcessing: add basic implementation of FMeshVertexSelection::ContractByBorderVertices()
#rb none
#preflight 6303d587a45b007ea248b387

[CL 21489854 by Ryan Schmidt in ue5-main branch]
2022-08-22 15:21:45 -04:00
Ryan Schmidt
c52de9c4de GeometryScript: add support for input selection to ComputeMeshConvexHull. Add ComputeMeshConvexDecomposition that exposes new FConvexDecomposition3 algorithm, via FMeshSimpleShapeApproximation
#rb none
#preflight 62ffdacbfc3d0e6817237abf

[CL 21462222 by Ryan Schmidt in ue5-main branch]
2022-08-19 15:04:19 -04:00
bryan sefcik
a441877636 Updated several modules to have UnsafeTypeCastWarningLevel be an error so it matches other modules. This helps compile times because there will be less shared PCHs created.
#jira
#preflight 62ffcfb5fa1ac183e592146a

[CL 21461486 by bryan sefcik in ue5-main branch]
2022-08-19 14:30:30 -04:00
george rolfe
bf0f26478e Clipper non-unity fix and commenting out of functions containing exceptions, both of which aren't used at all
#jira none
#rb none
#preflight 62fee73c9835a27d8d7b4c04

[CL 21453524 by george rolfe in ue5-main branch]
2022-08-18 21:46:55 -04:00
Jimmy Andrews
5c1c2c6670 cis fix for geometryalgorithms / clipper library: remove all throws from clipper library, rather than try to fix them with defines
#preflight 62feb8bd3f75602b2f227d22

[CL 21451916 by Jimmy Andrews in ue5-main branch]
2022-08-18 18:58:11 -04:00
George Rolfe
533740707f Clipper cis fix
#jira none
#rb none
#preflight 62fe47bd0f2aefc97af89e28

[CL 21442990 by George Rolfe in ue5-main branch]
2022-08-18 11:32:10 -04:00
rinat abdrashitov
b4d0b45296 Add progress cancel functionality to the adaptive tessellation operator and the displace tool when the selective option is used.
#rb jimmy.andrews
#rnx
#jira none
#preflight 62fd72c70f2aefc97ac33751

[CL 21441749 by rinat abdrashitov in ue5-main branch]
2022-08-18 10:14:49 -04:00
George Rolfe
fd9eafdc4b GeometryProcessing clipper lib integration and exposed functionality
#jira UE-161308
#rb jimmy.andrews
#preflight 62fe3d930f2aefc97af68d16

[CL 21441167 by George Rolfe in ue5-main branch]
2022-08-18 09:40:40 -04:00
rinat abdrashitov
6606166965 Adding selective tessellation option to the Displace mesh tool to allow for tessellating triangles that belong to a certain material.
#rb lonnie.li
#rb ryan.schmidt
#rnx
#preflight 62fd1ce387319bacfb1457c3
#jira none

[CL 21427033 by rinat abdrashitov in ue5-main branch]
2022-08-17 12:59:12 -04:00
rinat abdrashitov
bec1e21ca1 Interpolate the per-vertex attributes from the original mesh to the tessellated mesh in the adaptive tessellation operator.
#rb jimmy.andrews
#rnx
#jira none
#preflight 62f17504086f90bbc47d65e2

[CL 21289445 by rinat abdrashitov in ue5-main branch]
2022-08-09 11:44:11 -04:00
Jimmy Andrews
c21b7d49f3 Add new oriented box fit variant that starts from the fast DiTO box and optimizes the fit iteratively
+ Add ProgressCancel to box fits
+ Change editor code to use the new fit algorithms

#rb rinat.abdrashitov
#rb david.hill
#preflight 62f15a2ba035cdf05ea4d1b7

[CL 21273458 by Jimmy Andrews in ue5-main branch]
2022-08-08 15:20:28 -04:00
michael balzer
0c72efb8c4 GeometryProcessing: Fix compiler error in FSparseMatrixD.h on Android
#preflight 62db2d6923003b62a32ccede

[CL 21231159 by michael balzer in ue5-main branch]
2022-07-22 19:17:52 -04:00
michael balzer
a17b199220 GeometryProcessing: Mute warning in Eigen library used in FSparseMatrixD.h when using Clang
#preflight 62db154c600bd2a4bd3e7534
#FYI ryan.schmidt

[CL 21230782 by michael balzer in ue5-main branch]
2022-07-22 18:28:23 -04:00
lonnie li
1b9bbb3599 BakeVertex: Fixed identity bakes w/ VertexColor output type returning black.
#rb none
#jira none
#preflight 62daf5c2bc175ec68cd16f08

[CL 21227905 by lonnie li in ue5-main branch]
2022-07-22 15:45:30 -04:00
Ryan Schmidt
5390a93054 GeometryScript: add types and functions for creating mesh "Selections", ie subsets defined by a list of element IDs
GeometryScriptSelectionTypes.h:
New type FGeometryScriptMeshSelection stores Vertex, Triangle, and Polygroup selections. Currently internally represented as a TSharedPtr<FGeometrySelection>, however this is not exposed to BP at all. FGeometryScriptMeshSelection is an opaque object w/ no exposed properties, and it's contents cannot be serialized, ie it is only usable as temporary data during active GeometryScript computations.

MeshSelectionFunctions.h: library of functions for creating/manipulating mesh selections
CreateSelectAllMeshSelection - create a Mesh Selection for all elements of Mesh
ConvertMeshSelection - convert a Mesh Selection to a different type
CombineMeshSelections - combine two Mesh Selections using set operations (union, difference, intersection)
ConvertIndexArrayToMeshSelection / ConvertIndexSetToMeshSelection - convert TArray<int> / TSet<int> to a Mesh Selection
ConvertIndexSetToMeshSelection - convert a Mesh Selection to TArray<int>
ConvertIndexListToMeshSelection / ConvertMeshSelectionToIndexList - convert between an Index List and a Mesh Selection
SelectMeshElementsInBox, SelectMeshElementsInSphere, SelectMeshElementsWithPlane - create a Mesh Selection of all elements "inside" a geometric element
SelectMeshElementsByNormalAngle  - create a Mesh Selection of all elements based on normal vector direction
SelectMeshElementsInsideMesh - create a Mesh Selection of all elements inside another mesh (with optional extra shell thickness)
ExpandMeshSelectionToConnected - expand a Mesh Selection to Connected regions (various connectivity criteria)
GetMeshSelectionInfo - get the type and size of a Mesh Selection
DebugPrintMeshSelection - print a Mesh Selection to the output log

MeshSelectionQueryFunctions.h: library of functions for doing mesh queries based on a selection
GetMeshSelectionBoundingBox - get the bounding box of a Mesh Selection
GetMeshSelectionBoundaryLoops - get the boundary loops (indices and 3D polylines) of a Mesh Selection

#rb none
#preflight 62d9b3f33122bf80ae0f9950

[CL 21210151 by Ryan Schmidt in ue5-main branch]
2022-07-21 17:16:52 -04:00
David Hill
55f9b1e1de GeometryProcessing and tests: enable implicit type conversion warnings.
#preflight 62d96d6723003b62a3c134f8
#rnx

[CL 21201814 by David Hill in ue5-main branch]
2022-07-21 11:48:13 -04:00
David Hill
de3073fb9e GeometryCore and DynamicMesh: enable implicit type conversion warnings.
#preflight 62d9635a185da2495f443808

[CL 21201226 by David Hill in ue5-main branch]
2022-07-21 11:03:29 -04:00