Commit Graph

178 Commits

Author SHA1 Message Date
jimmy andrews
143d4cd0c4 add generated light map option to the modeling tools mesh creation settings + make the settings more consistently used by default
also, when creating a static mesh with lightmap enabled via modeling components, also set the lightmap channel and resolution to match the build settings values, to better match the importer results

#jira UE-143961
#8929
#rb ryan.schmidt
#preflight 6406adbf0c7df1967f461e2d

[CL 24542092 by jimmy andrews in ue5-main branch]
2023-03-07 12:04:54 -05:00
semion piskarev
6dd5376acb MeshModelingTools: Fix volumes always having per-triangle normals when not going through volume to mesh tool.
#rb Jimmy.Andrews
#jira UE-152032
#preflight 63f78bb0ae54ee4ce9599a84

[CL 24432234 by semion piskarev in ue5-main branch]
2023-02-27 16:25:17 -05:00
nathan mitchell
b27788dcea ModelingTools: Replaces the wireframe visuals in the UVLayoutPreview with an instance of MeshElementsVisualizer, instead of the built in wireframe provided by PreviewMesh. This helps address some of the visual z-fighting issues that were being seen and provides more control over the wireframe visuals.
#rb Jimmy.Andrews
#preflight 63f0072561378b7ea04b9209

[CL 24327480 by nathan mitchell in ue5-main branch]
2023-02-20 17:06:25 -05:00
jimmy andrews
d6daff005b Make mesh elements visualizer distinguish between normal and tangent seams like the mesh inspector does
#rb david.hill
#preflight 63ee4e7d500c05a6244b020b

[CL 24270353 by jimmy andrews in ue5-main branch]
2023-02-16 17:39:45 -05:00
joe kirchoff
44e52d14d1 More parent include path fixes
#rnx
#rb trivial

[CL 24138215 by joe kirchoff in ue5-main branch]
2023-02-11 13:04:14 -05:00
ryan schmidt
af5699f133 ModelingTools: improve handling of invalid input selections to PolyEd Tool
Add UGeometrySelectionManager::GetActiveSelectionInfo, returns info about current selection w/o having to copy selection
Override UEditMeshPolygonsActionModeToolBuilder::CanBuildTool, use this new function to do specific per-action filtering to limit to supported input selection types
UEditMeshPolygonsSelectionModeToolBuilder::InitializeNewTool() now filters UI panels for current input selection if available, update Selection-palette PolyEd button to use this builder instead
#jira UE-176168
#preflight 63e2c886c2257e56f413b805
#rb david.hill

[CL 24068438 by ryan schmidt in ue5-main branch]
2023-02-08 01:21:37 -05:00
matija kecman
4db50ffff3 Fix horde issue 259463
This is the second attempt to fix this problem, sorry! It's a PVS static analysis problem.

#rb trivial
#preflight 63e2abef797b029c0a874d82

[CL 24061767 by matija kecman in ue5-main branch]
2023-02-07 17:52:01 -05:00
matija kecman
f33be98d26 Fix horde issue 259463
Note this issue is occurring in a `if constexpr (false)` block. This problem previously occurred in horde issue 259313 with some other things that may have since been fixed

#rb trivial
#preflight 63e23339c11233cdca859cf4

[CL 24050765 by matija kecman in ue5-main branch]
2023-02-07 11:41:05 -05:00
matija kecman
faf75b50c8 Fix crash in BakeRC tool caused by not checking for validity of SceneCapture
#jira UE-176114
#preflight 63e140131466610c647cdcbe

[CL 24036693 by matija kecman in ue5-main branch]
2023-02-06 14:59:38 -05:00
matija kecman
7f6c5fb7e7 Fix incorrect handling of texture source format BGRE8 in UE::AssetUtils::ReadTexture function
#jira UE-175010
#preflight 63de2fd4af610ffb8b605079
#rb jimmy.andrews

[CL 24028051 by matija kecman in ue5-main branch]
2023-02-06 06:03:33 -05:00
matija kecman
f05215f1c5 Render Capture Baking: Fix a crash which occurred because the SceneCapture state was not properly updated when its computation was cancelled
#jira UE-175047
#preflight 63d94591f626715201e45242

[CL 23933594 by matija kecman in ue5-main branch]
2023-01-31 14:12:46 -05:00
frederic doll
a3110d9d6e Make sure we clear the NavCollision before updating it within StaticMesh tools, to make sure the data is computed properly and the DDC is updated
#rb mieszko.zielinski, ryan.schmidt
#preflight 63d80999f6267152017dc401

[CL 23933248 by frederic doll in ue5-main branch]
2023-01-31 13:59:41 -05:00
semion piskarev
7d679bef32 MeshModelingTools: Retarget gizmo numerical UI on different bound gizmo if current one is hidden by tool.
#rb Jimmy.Andrews
#preflight 63d42ac3d21dbe1d294132f4

[CL 23895915 by semion piskarev in ue5-main branch]
2023-01-27 19:26:21 -05:00
semion piskarev
be670eb605 MeshModelingTools: Change numerical UI display name to transform panel. Tweak how the numerical gizmo UI deals with scrubbing zero-valued scale in uniform scaling to match what editor does. Fix a typo and updating of last values.
#rb Ryan.Schmidt, Matija.Kecman
#preflight 63d04bb56730a500ffe1d810

[CL 23844457 by semion piskarev in ue5-main branch]
2023-01-25 01:34:34 -05:00
semion piskarev
356bd898fb ModelingTools: Fix static analysis warning about inconsistent (unnecessary) null checks.
#rb none
#preflight none

[CL 23843525 by semion piskarev in ue5-main branch]
2023-01-24 21:44:03 -05:00
matija kecman
dfe144b82b Render Capture Baking: Remove sub-classing of BakeRC from UBakeMeshAttributeMapsToolBase and implement a few fixes
Fixed materials in the BakeRC tool missing UV layer switches or controls for brightness of the Base Color, Subsurface Color or Emissive channels
Removed the unused AO Multiplier setting that appeared in the Preview panel of the tool UI
Improved performance of BakeRC tool baking step by not recomputing the target mesh spatial index and uv charts
Improved the clarity of the analytics code since the sub-classing has enabled us to more easily use custom BakeRC analytics


#rb lonnie.li
#rnx
#preflight 63cfaa1ed83c1837b182104b
#jira none

[CL 23828120 by matija kecman in ue5-main branch]
2023-01-24 05:18:59 -05:00
semion piskarev
f18d6198cc MeshModelingTools: Add gizmo numerical UI.
- Added FTransformGizmoDataBinder which allows for gizmos to be bound to vectors such that the vectors are updated when the gizmo changes, and the gizmo is updated from vectors when asked. This should make it easy-ish to create displays of gizmos.
- Used the data binder in STransformGizmoNumericalUIOverlay, an overlay containing a draggable numerical UI panel for gizmos. Note that currently all changes, including typing, intentionally go down a gizmo drag path, meaning that they trigger the begin/end transform edit sequence calls, to make the tools treat them as a gizmo drag (in part because some tools might otherwise assume that a gizmo update is from an undo transaction or some other path that is special-cased).
- Added some slate things to ModelingEditorUI to support the numerical UI, in particular a viewport draggable box, and a widget that emits a tick delegate.
- Added some delegates to gizmo context object and combined transform gizmos to allow things to bind/unbind to/from them appropriately.

#rb Ryan.Schmidt
#preflight 63ce97ebf2318350a2f3a6c4

[CL 23815889 by semion piskarev in ue5-main branch]
2023-01-23 12:48:47 -05:00
ryan schmidt
9290a31c7e ModelingComponents: add FDynamicMeshPolygroupDeformer, applies GroupTopologyDeformer to a MeshSelection. Use in DynamicMeshSelector when selection has Polygroup topology.
#preflight 63cc5028f2318350a2597338
#rb none

[CL 23805236 by ryan schmidt in ue5-main branch]
2023-01-22 13:04:22 -05:00
ryan schmidt
227ac3d087 ModelingTools: Add OffsetMeshSelectionTool and RetriangulateGeometrySelectionCommand
#preflight 63cb1d78574ab9cae448312c
#rb none

[CL 23803436 by ryan schmidt in ue5-main branch]
2023-01-21 13:02:53 -05:00
ryan schmidt
ce1ea03e1d ModelingComponents: fix paste-o found by static analysis
#rb none
#preflight none

[CL 23802439 by ryan schmidt in ue5-main branch]
2023-01-21 00:00:08 -05:00
ryan schmidt
10924781b2 ModelingMode: add support for Editor Marquee in new Mesh Selection system.
Add IGeometrySelector::UpdateSelectionViaShape() API, takes a FConvexHull to use as selection shape. Implement in DynamicMeshSelector.
Add UGeometrySelectionManager::UpdateSelectionViaConvex() API, calls above
ModelingToolsEditorMode now implements ILegacyEdModeSelectInterface, ::FrustumSelect() implementation calls above w/ frustum convex hull

Hide Marquee drag mode option, set default drag mode to "none"
Add save/restore of selection mode, drag mode, and volume/staticmesh toggles via UModelingToolsModeCustomizationSettings
Remove old selection toggle commands that were replaced w/ combined commands
Call DeleteSelectionCommand in UModelingToolsEditorMode::ProcessEditDelete() if there is an active selection

#preflight 63cac131fa66be4cc33661a9
#rb none

[CL 23796046 by ryan schmidt in ue5-main branch]
2023-01-20 15:30:23 -05:00
ryan schmidt
fb77bece49 ModelingComponents: compact mesh after welding/etc in BrushToDynamicMesh, to avoid complications with downstream code
#rb none
#preflight 63cab74a7a1539b28ced87a9

[CL 23795953 by ryan schmidt in ue5-main branch]
2023-01-20 15:26:57 -05:00
ryan schmidt
70ac55822d ModelingMode: improve interop with new Selection System and existing Tools
Add support for Tools to provide an "output" selection. Add UGeometrySelectionManager::SetSelectionForComponent() which can set an explicit externally-provided selection. FBaseDynamicMeshSelector::UpdateSelectionFromSelection() now supports selection conversion when available and requested (is used to implement SetSelectionForComponent). New GeometrySelectionUtil functions InitializeSelectionFromTriangles() and ConvertSelection() are used to implement this (note: only Triangles->other conversion is currently supported). Add HaveAvailableGeometrySelection() and SetToolOutputGeometrySelectionForTarget() in StoredMeshSelectionUtil.h, this is the top-level function that Tools can use to set an Output selection.

ExtrudeMeshSelectionTool now emits output selection.

Update EditMeshPolygonsTool to use new Selection system and allow individual operations to be utilized as standalone Tools. Convert EditMeshPolygonsTool to be a USingleTargetWithSelectionTool, use FGeometrySelection to initialize selection. Add bTerminateOnPendingActionComplete flag, which is set when Tool is directly initialized to a specific operation, and forces tool to shut down when operation completes. This allows it to be used to more cleanly implement multiple action buttons in Modeling UI. When in this mode, selection panels are not shown. On Shutdown, now emits an "output" selection which GeometrySelectionManager can use to provide new selection to user. Update UPolygonSelectionMechanic Set/Get selection APIs to use FGeometrySelection instead of UPersistentMeshSelection.

port UVProjectionTool to derive from USingleTargetWithSelectionTool, use FGeometrySelection to initialize target ROI

deprecate UPersistentMeshSelection and related functions in StoredMeshSelectionUtil.h. Deprecate Tool Input Selection APIs in USingleSelectionMeshEditingTool and Builder.

Repurpose old ModelingMode-level PolyModel tab operations for new Selection Tools UI, now support Inset, Outset, Cut Faces, Insert Edge Loop, PushPull, and Bevel.

#rb none
#preflight 63c84fa2b065224750b9831f

[CL 23766643 by ryan schmidt in ue5-main branch]
2023-01-18 17:59:31 -05:00
ryan schmidt
46630c002f ModelingMode: Selection system improvements. Add Disconnect command and various new Selection-Edit Commands
Add UInteractiveCommandResult, UInteractiveCommand::ExecuteCommand() now optionally can return a result subclass
Add UGeometrySelectionEditCommandResult, UGeometrySelectionEditCommand now can optionally return an "output" selection via this type
UGeometrySelectionManager::ExecuteSelectionCommand optionally can restore a selection after a command, via UGeometrySelectionEditCommandResult

Add UDisconnectGeometrySelectionCommand, implements disconnection of selected triangles (ie separates but not into a new mesh)
Add UModifyGeometrySelectionCommand, implements various selection edits (select all, expand to connected, invert, invert connected, expand, contract)
Add IGeometrySelector::InitializeSelectionFromPredicate() and ::UpdateSelectionFromSelection(), implement in UDynamicMeshSelector, used to implement selection edit commands
Add UI to enable new commands in Modeling Mode

#rb none
#preflight 63c047f4305002c64170f6a2

[CL 23667880 by ryan schmidt in ue5-main branch]
2023-01-12 14:52:52 -05:00
matija kecman
346ead8222 Render Capture Baking: Refactor how the scene capture and baking steps are managed to fix a crash when scene capture parameters changed and implement other improvements
The crash that was fixed occured when, for example, the userturned off a capture channel while the baking background compute was running
The refactoring has enabled the tool to only bake the newly captured channels only, previously when the scene capture was incrementally updated all pre-existing channels were baked again
The refactoring should enable us to more easily support a feature where the user toggles capture directions or adds new ones manually


#preflight 63c02c46345a532dfc273e6a
#rb lonnie.li
#rnx

[CL 23663959 by matija kecman in ue5-main branch]
2023-01-12 11:09:29 -05:00