Commit Graph

78 Commits

Author SHA1 Message Date
rinat abdrashitov
1da1ecb3f0 -Added a new flag (bBlendZeroInfluence) to the FBoneWeightSettings to allow control over how zero-influence bones are treated during the blend. The Blend method will now consider the flag when performing the interpolation.
-Added a Blend function overload that handles barycentric interpolation of 3 skin weights.
-Refactored SetBoneWeightsFromBary (in DynamicVertexSkinWeightsAttribute.h) and ConstructVertexSkinWeightsAttribute (in SelectiveTessellate.cpp) functions to use the newly added Blend function for barycentric interpolation.
-Since the default Blend behavior has changed, make sure that unit tests in BoneWeightTests.cpp are refactored. Added more tests for cases when bBlendZeroInfluence is set to true and when using Blend for barycentric interpolation.

#rb halfdan.ingvarsson
#jira None
#preflight 6361de120c2e7c8f91668a75

[CL 22921407 by rinat abdrashitov in ue5-main branch]
2022-11-02 13:53:31 -04:00
ryan schmidt
b6f4d36cb6 GeometryProcessing: harden FMeshJoinLoops to handle some cases that users can create in geometry scriptingf
#rb rinat.abdrashitov
#preflight 633593dde410691606b7be57

[CL 22262793 by ryan schmidt in ue5-main branch]
2022-09-29 23:42:54 -04:00
ryan schmidt
b64039ce19 DynamicMesh: handle some failure cases in MeshBevel. These two fixes resolve many bevel failure cases, particularly those introduced by repeat bevels.
In some edge configurations two 'terminator' vertices (at the end of open bevel edge paths) are directly connected by a non-bevel edge that we will "open", and this creates a quad-shaped hole instead of a triangle-shaped hole (which was already handled). Detecting this case will arise is simpler before we change the topology, so it is done in BuildVertexSets(), stored in FBevelVertex::ConnectedBevelVertex, and used during mesh generation to call new AppendTerminatorVertexPairQuad function.

In BuildTerminatorVertex(), the search for a terminator split-edge may fail if the filtered triangle list ends up non-contiguous, preventing the vertex from being beveled (ie it is "stuck"). Code was added to both handle that case, and also try to force the list to stay contiguous.

#rb jimmy.andrews
#preflight 6319fbe3304480f8f8565048
#jira UE-160073

[CL 21908190 by ryan schmidt in ue5-main branch]
2022-09-08 20:09:26 -04:00
semion piskarev
de9d706c9b MeshModelingTools: Fix WalkMeshPlanar occasionally picking bad paths that resulted in holes and other errors in boolean operations.
#rb Jimmy.Andrews
#jira UE-151749
#preflight 6317579c980179553e3b35bc

[CL 21817939 by semion piskarev in ue5-main branch]
2022-09-06 11:14:10 -04:00
Jimmy Andrews
3f0fdaddb4 When applying MeshTransforms' transform and transforminverse, generally pass bReverseOrientationIfNeeded=true
(+ for code that was passing false then manually applying the same logic, remove the extra reverse orientation logic)

#rb david.hill
#preflight 630d245fe352708d44f9e007

[CL 21706500 by Jimmy Andrews in ue5-main branch]
2022-08-30 14:40:56 -04:00
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
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
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
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
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
Ryan Schmidt
22767a02ab DynamicMesh: re-normalize normal layers in MeshResolveTJunctions
#rb none
#preflight 62d8176523003b62a3750c17

[CL 21180143 by Ryan Schmidt in ue5-main branch]
2022-07-20 11:05:45 -04:00
David Hill
bd6eef7ea1 Geometry Core, Geometry Processing. Fix implicit cast warnings encountered during clang build.
GeometryCore: StairGenerator.cpp, SweepGenerator.{h,.cpp}, UVPacking.cpp, ParallelTransformReduce.h, CurvewUtil.h, SweepingMeshSDF.h FastWinding.h

GeometryProcessing:  Remesher.cpp, AdaptiveTessellate.cpp, UniformTessellate.cpp, GeometrySelectionUtil.cpp, MeshSimpleApproximation.cpp

#rb Lonnie.Li
#preflight 62d5bfa347779a730a46bc55

[CL 21161422 by David Hill in ue5-main branch]
2022-07-19 09:31:09 -04:00
rinat abdrashitov
27b4884898 Handle the interpolation of the per-triangle attributes for the adaptive tessellation.
#rb jimmy.andrews
#jira none
#preflight 62cf5578d45d5be7f1c5575d
#rnx

[CL 21090762 by rinat abdrashitov in ue5-main branch]
2022-07-14 10:34:38 -04:00
rinat abdrashitov
b534266e44 Fixed a bug where UnifromTessellation was not copying over the names of the attributes.
#rb jimmy.andrews
#preflight 62cf5adfc01544dd40878f03
#jira None
#rnx

[CL 21090760 by rinat abdrashitov in ue5-main branch]
2022-07-14 10:34:24 -04:00
rinat abdrashitov
2f783fedcc Added methods for handling the tessellation of the overlay data.
Expanded FTessellationData class and added FOverlayTessellationData child class to be able to handle overlay seam edges.

#rb jimmy.andrews
#rnx
#preflight 62ccf034f55782ce81979eff
#jira none

[CL 21071888 by rinat abdrashitov in ue5-main branch]
2022-07-13 11:27:53 -04:00
David Hill
8933642f59 GeometryProcessing, Mesh Operations. Fix implicit type conversion warnings.
#preflight 62bb1a76727d9bb33ba7d7c1
#rb Jimmy.Andrews

[CL 21007984 by David Hill in ue5-main branch]
2022-07-08 11:26:17 -04:00
David Hill
c35c6b07b9 GeometryProcessing - Cleaning up implicit type cast warnings in DynamicMesh-based selections, simplification and other processing elements.
#preflight 62bc9eb4a328a968bafc368a
#rb Jimmy.Andrews

[CL 21007309 by David Hill in ue5-main branch]
2022-07-08 10:53:04 -04:00
Nickolas Drake
55a66e16e0 Add Group Edge Welding: Add group edge welding by adding extra vertices to edge that doesn't have enough, then welding edge sequences
#rb Semion.Piskarev
#jira none
#preflight 62a8efbadb45e64426a03d12

[CL 20811431 by Nickolas Drake in ue5-main branch]
2022-06-24 12:52:47 -04:00
Ryan Schmidt
73d7350fa2 GeometryProcessing: handle an unexpected case in MeshBevel where edges that should be disconnected, aren't. Change the way that checkSlow/ensure is used so that they are not hit w/o changing the code, as they are problematic for geometry script bevel usage.
#rb jimmy.andrews
#preflight 62b5bc7fff7f5dd87eead43e

[CL 20808582 by Ryan Schmidt in ue5-main branch]
2022-06-24 09:42:08 -04:00
tyson brochu
3feb275644 Fixing a few unsafe typecasts
#rb jimmy.andrews nathan.mitchell
#preflight 62b213171b2d3b6cafd334e5

[CL 20763388 by tyson brochu in ue5-main branch]
2022-06-21 15:15:57 -04:00
rinat abdrashitov
b057b05a3d Initial implementation of the adaptive tessellation operator with one pattern implemented.
Currently only supports the generation of the new geometry without interpolating attributes.
Added GeometryScript function for adaptive tessellation.

#rb jimmy.andrews
#jira none
#preflight 62a8bd591f6754ac09b21d10

[CL 20653109 by rinat abdrashitov in ue5-main branch]
2022-06-14 13:42:37 -04:00