Add support for brush alphas to VertexSculptTool. Replace cycle counter instrumentation with insights tags. Perf optimizations for normals computation, additional async refactoring.
MeshSculptToolBase now allows subclasses to override final commit behavior, added support for variable stamp spacing and flow rate, expose various other internal functions to subclasses. Update various brush implementations for new stamp system.
Add support for custom brush stamp Alpha function to FSculptBrushStamp
Add FMeshSculptBrushOp::::SupportsVariableSpacing(), brush stamp impls use this to indicate that they support custom Alphas. Implement support in various Sculpt brushes.
Add various functions to recompute normals for a triangle region to UE::SculptUtil
FMeshVertexChangeBuilder now supports only updating vertex color.
#rb none
#rnx
#jira none
[CL 15267008 by Ryan Schmidt in ue5-main branch]
#rb none
#rnx
#ROBOMERGE-SOURCE: CL 13145935 via CL 13145936 via CL 13145937
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v688-13145358)
[CL 13145938 by ryan schmidt in Main branch]
- new UMeshSculptBrushOpProps baseclass for per-BrushOp Property Sets, added such a PropertySet for each BrushOp
- separate Strength/Depth/Falloff for each BrushOp so that they can have different settings. Currently cannot be in a shared base PropSet class because of different UProp Category strings
- UMeshSculptToolBase now supports registering BrushOp factory paired w/ ToolProps, rewrote VertexSculpt to use this to handle switching active BrushOp and visible PropSet
- removed UPlaneBrushProperties, vertex sculpt no longer uses USculptMaxBrushProperties (still used by dynamic sculpt)
- moved UMeshSurfacePointTool implementation up to UMeshSculptToolBase
- UMeshSculptToolBase now has OnBeginStroke() / OnEndStroke()API for subclasses to use to handle stroke (instead of overriding drag functions)
- Moved some setup to UMeshSculptToolBase. It can now initializes the target Component, can apply to Simple or Octree variants,
- moved Primary/Secondary BrushOp and active Falloff to UMeshSculptToolBase
- Support for various falloff types implemented in StampFalloffs.h, new EMeshSculptFalloffType exposed in VertexSculpt properties
- moved target component Transforms to UMeshSculptToolBase
- moved Brush Frames to UMeshSculptToolBase. Now storing Frames instead of Point+Normal, moved functions to update position for various stamp types
- UMeshSculptToolBase now has API for hit-testing against Sculpt and Base mesh, VertexSculpt implements
- UMeshSculptToolBase now has APIs for accessing transforms, current DMesh and BaseMesh, active stroke Depth/Strength/Falloff properties,
- moved Brush Target Plane (eg for Move), Stamp Plane (eg for Flatten), and StrokePlane (eg for Plane brushes) to UMeshSculptToolBase, and relevant calcuation APIs
- base USculptBrushProperties now has Lazyness parameter, implemented lazy-brush in base sculpt tool
#rb none
#rnx
#ROBOMERGE-SOURCE: CL 13044097 via CL 13044098 via CL 13044099
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13048205 by ryan schmidt in Main branch]
#rb none
#rnx
#ROBOMERGE-SOURCE: CL 12908995 via CL 12908996 via CL 12909001
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12909003 by ryan schmidt in Main branch]