Commit Graph

118 Commits

Author SHA1 Message Date
jimmy andrews
fdd0d21cdf UV layout previews in the 3D scene should not cast shadows
#jira UE-148493
#rb lonnie.li
#preflight 632a04c4fc7f1efbdf4eb386

[CL 22107234 by jimmy andrews in ue5-main branch]
2022-09-20 22:09:57 -04:00
tyson brochu
9efcc70606 ModelingComponents/Selection:
- create a new MeshTopologySelector base class. The existing GroupTopologySelector class now inherits from it, as does a new BoundarySelector class
- likewise, create a new MeshTopologySelectionMehchanic base class and have (existing) PolygonSelectionMechanic and (new) BoundarySelectionMechanic inherit from it
- the new Boundary classes use FMeshBoundary loops to define selectable loops rather than FGroupTopology

HoleFillTool:
- change to using BoundarySelectionMechanic instead of GroupTopologySelector

Misc:
- allow FMeshBoundaryLoops to fail untangling a loop with bowties but still continue processing other loops


#jira UE-144821
#rb jimmy.andrews
#preflight 63222176e93a80888cb7d3df

[CL 22013854 by tyson brochu in ue5-main branch]
2022-09-14 15:25:19 -04:00
tyson brochu
ec28b3bb51 Lattice tool: hide gizmo if only constrained vertices are selected
#jira UE-133082
#rb rinat.abdrashitov
#preflight 631f9432e07c4dc0b12df4bb

[CL 21984706 by tyson brochu in ue5-main branch]
2022-09-13 12:11:52 -04:00
jimmy andrews
713456a6f0 LWC fixes for polyedit and polypath tools: Keep preview meshes centered near the origin, with translation on the transform rather than baked, because rendering stores the mesh vertices in floating point
#jira UE-158024
#jira UE-158002
#rb tyson.brochu
#preflight 631a4804ec45fbf3d741b365

[CL 21916252 by jimmy andrews in ue5-main branch]
2022-09-09 01:37:45 -04:00
semion piskarev
f55c16366b MeshModelingTools: Fix gizmo not showing up when same selection is made via marquee in lattice tool.
#rb Jimmy.Andrews
#jira UE-142884
#preflight 631757f5032bd43d8648ed16

[CL 21817948 by semion piskarev in ue5-main branch]
2022-09-06 11:14:39 -04:00
Jimmy Andrews
3b34efaaf4 Fix previewmesh::findrayintersection normal for preview meshes with non-uniform scaling
#preflight 63110bdc2b3d6c082809a49c
#rb david.hill

[CL 21749273 by Jimmy Andrews in ue5-main branch]
2022-09-01 18:05:31 -04:00
henry falconer
2e427c809a Removed an ensure that could fail while reading from a valid texture that has no source art
#rb tyson.brochu
#rn fix geometry
#preflight 6310b4b8840bf1e5c3751f54

[CL 21739446 by henry falconer in ue5-main branch]
2022-09-01 09:49:45 -04:00
Jimmy Andrews
6fe4d60ab1 Handle mesh inversions due to transforms in ComponentCollisionUtil + add missing transform calls
#rb ryan.schmidt
#preflight 630d2ad8e54ec9d58164fba7

[CL 21707736 by Jimmy Andrews in ue5-main branch]
2022-08-30 15:41:50 -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
semion piskarev
c17c1bd788 MeshModelingTools: Give ability to add extra corners in PolyEd for manipulation of some common open-boundary cases (like a disconnected rectangle, for instance). Also show selectable corners by default (but smaller).
#rb Matija.Kecman
#jira none
#preflight 6307ab3859064f9d1e43c1fb

[CL 21568934 by semion piskarev in ue5-main branch]
2022-08-25 14:06:37 -04:00
Ryan Schmidt
e579178cda ModelingComponents: refactor conversion code from ExtractCollisionGeometryTool into static functions ConvertSimpleCollisionToMeshes() and ConvertComplexCollisionToMeshes()
GeometryScript: add CopyCollisionMeshesFromObject function, extracts meshed collision shapes or complex collision from various object types as a UDynamicMesh
#rb none
#preflight 62ffc256c85b7fef22f671cc

[CL 21460263 by Ryan Schmidt in ue5-main branch]
2022-08-19 13:20:33 -04:00
michael balzer
b5d0cc81b8 MeshModelingToolset: Optimize FMeshWireframeSceneProxy constructor
#preflight 62fd52200f2aefc97abf3d50

[CL 21443545 by michael balzer in ue5-main branch]
2022-08-18 11:59:38 -04:00
matija kecman
cfe02c4344 Render Capture Baking: Fix requirement that the tool is run more than once in order to get the correct result by caching the needed material shaders before rendering
This fixes a problem that occurs in both the Render Capture Baking tool and the Approximate Actors tool

#rb arciel.rekman,ryan.schmidt
#rnx
#jira UE-146097
#preflight 62fa24791e61d1ba0e294d83

[CL 21408934 by matija kecman in ue5-main branch]
2022-08-16 13:49:37 -04:00
semion piskarev
3cc8f15db4 MeshModelingTools: Various CubeGrid improvements.
- Made the tool Accept/Cancel.
- Added the ability to set block size at current power.
- Added ability to initialize the grid from a given actor, initialized to current target.
- Added the option for the grid sizes to follow the default editor grid (1, 5, 10, 50, 100, etc).
- Allowed global mode for gizmo manipulation, to allow editor grid snapping to work.
- Removed the non-useful selection plane tolerance setting

#rb Jimmy.Andrews
#jira UE-153345, UE-152029
#preflight 62f163f9185da2495f83831e

[CL 21274412 by semion piskarev in ue5-main branch]
2022-08-08 16:01:14 -04:00
Ryan Schmidt
c793d4bfa8 SelectionManager: modify Shutdown() to handle clearing active targets itself, as calling ClearActiveTargets() on editor shutdown can result in error if Component is already destroyed
#rb none
#preflight 62d976e53122bf80ae015983

[CL 21203457 by Ryan Schmidt in ue5-main branch]
2022-07-21 12:52:31 -04:00
matija kecman
f4900ae7a1 Render Capture Baking: Use depth capture to eliminate occlusion artefacts which can appear when baking non-convex shapes and look like weird sihouettes/blotches in the base color channel
Also removed artefacts that became visible after the ones fixible with a depth test were resolved. These were related to linearly interpolating data on the photosets, this was fixed since the baking framework is where texture filtering should take place

#rnx
#rb lonnie.li, ryan.schmidt
#jira none
#preflight 62d473b0dc4397d384a06bc8

[CL 21148985 by matija kecman in ue5-main branch]
2022-07-18 11:21:15 -04:00
Ryan Schmidt
986547914e Move GeometrySelection.h and GeometrySelectionUtil.h to GeometryProcessing plugin. Move types in GeometrySelection.h into UE::Geometry:: namespace. Fix up usage sites.
#rb none
#preflight 62d1c7222e3e5993c351a126

[CL 21117964 by Ryan Schmidt in ue5-main branch]
2022-07-15 17:53:52 -04:00
Ryan Schmidt
6032c02f0e ModelingMode: add Delete command for current Mesh Selection
ToolsFramework:
add UInteractiveCommand and UInteractiveCommandArguments types, base classes for 'interactive commands' which are intended to be used for atomic actions, ie stateless, no user interaction, etc
ModelingComponents:
add UGeometrySelectionEditCommand/Arguments, this is a UInteractiveCommand that uses a FGeometrySelection as an argument
add UGeometrySelectionManager::CanExecuteSelectionCommand() and ExecuteSelectionCommand()

MeshModelingTools:
add UDeleteGeometrySelectionCommand, deletes selected mesh geometry by converting input selection to list of triangles

ModelingToolsEditorMode:
add Delete command to ModelingMode and UI. ModelingToolsEditorMode currently is keeping active command set alive via new UModelingToolsEditorMode::ModelingModeCommands member.

#rb none
#preflight 62d195b9a66919b6701d89a8

[CL 21113757 by Ryan Schmidt in ue5-main branch]
2022-07-15 13:49:13 -04:00
Ryan Schmidt
9c4efbe435 ModelingComponents: Add UE::Geometry::GetCurrentGeometrySelectionForTarget() util function to query current UGeometrySelectionManager for active Selection. Modify UE::Geometry::GetCurrentToolInputSelection() to return converted selection from UGeometrySelectionManager instead of using the now-disabled UPersistentMeshSelectionManager. Deprecate UPersistentMeshSelectionManager and related functions/classes.
#rb none
#preflight 62c60a31892b4d4f308ca646

[CL 20983305 by Ryan Schmidt in ue5-main branch]
2022-07-07 09:44:46 -04:00
Ryan Schmidt
9ccacbd088 ModelingComponents: fix mismatched loctext key
#rb none
#preflight skip

[CL 20900253 by Ryan Schmidt in ue5-main branch]
2022-06-30 14:13:04 -04:00
Ryan Schmidt
96bcffd475 ModelingComponents: add new geometric-element Selection system
GeometrySelection.h/cpp: FGeometrySelection, FGeometrySelectionEditor, representation and manipulation of a generic element-level selection, stored as a set of uint64. Editor makes changes to Selection while tracking deltas.
GeometrySelectionUtil.h/cpp: utility and helper functions for editing/processing a mesh+selection
GeometrySelector.h: FGeometryIdentifier type used to identify target objects with element-level selection support. IGeometrySelector interface that defines API for element selection for a type of target object. Factory type for spawing instances. IGeometrySelectionTransformer interface that defines API for element-level transformation
GeometrySelectionManager.h/cpp: UGeometrySelectionManager that maintains set of 'active targets' with associated Selector, Selection, and SelectionEditor, and provides high-level API for creating and querying element selections, 3D transforms of selections, selection undo/redo, and (currently) limited debug rendering
GeometrySelectionChanges.h/cpp: FChange types for element selection changes
DynamicMeshSelector.h/cpp: implementation of IGeometrySelector for UDynamicMesh/Component

#rb jimmy.andrews
#preflight 62bdb9cbb024a2608c38b72d

[CL 20896967 by Ryan Schmidt in ue5-main branch]
2022-06-30 12:09:44 -04:00
Ryan Schmidt
c5e859dbdc GeometryCore: Add FColliderMesh::FindNearestHitTriangle() and FColliderMesh::FindNearestTriangle() wrappers around AABBTree functions. Replace most calls to these functions via AABBTree w/ calls to FColliderMesh functions. Rename ::GetAABBTree() to ::GetRawAABBTreeUnsafe() to discourage usage (intention long-term is to encapsulate the spatial data structure, so it is not exposed)
#rb jimmy.andrews
#preflight 62b5f31a3646551b1139502e

[CL 20813267 by Ryan Schmidt in ue5-main branch]
2022-06-24 14:08:36 -04:00
Ryan Schmidt
636abcceee SceneSnappingManager: add ::PauseSceneGeometryUpdates() and ::UnPauseSceneGeometryUpdates(), these temporarily disable/re-enable geometry updates (eg BVH rebuilds) on DynamicMeshComponents, for use in live-edit situations where we can't defer mesh updates (because render geometry needs to update) but don't want a per-frame BVH build
#rb none
#preflight 62ab7bb82804d6adf7f72f97

[CL 20692560 by Ryan Schmidt in ue5-main branch]
2022-06-16 15:25:58 -04:00
Marc Audy
2666d80819 Non-unity and Static analysis fixes
#rnx
#preflight

[CL 20680993 by Marc Audy in ue5-main branch]
2022-06-16 00:49:39 -04:00
nathan mitchell
3ba92badec UVEditor: Enable support for selection mechanics within in the 3D viewport.
#rb semion.piskarev
#preflight 62aa68f9102b5101ccdc6d13

[CL 20679008 by nathan mitchell in ue5-main branch]
2022-06-15 19:31:42 -04:00