Commit Graph

28 Commits

Author SHA1 Message Date
jonathan bard
7490a489f2 Fixed missing transaction when overriding landscape properties
#jira UE-214859
#rb chris.tchou

[CL 33626906 by jonathan bard in ue5-main branch]
2024-05-14 08:08:57 -04:00
chris tchou
9c8d625ec5 Add per-platform controls over landscape compression.
Always show the landscape compression option under advanced settings in the landscape details.

#rb jonathan.bard
#jira UE-204800

[CL 30951644 by chris tchou in ue5-main branch]
2024-01-26 19:53:18 -05:00
jonathan bard
3ae783ade6 * Automated LandscapeInherited/LandscapeOverridable enforcement of properties on the proxies so that using the meta-data on the landscape proxy property is sufficient to get the required behavior
* Changed list of overridden properties to a list of FName (memory optimization)
* Made bBakeMaterialPositionOffsetIntoCollision LandscapeInherited since that's how it is used
* Various consolidations to landscape-related PostEditChangeProperty functions (use GET_MEMBER_NAME_CHECKED when possible, removed redundant clamping
* Removed useless recomputation of normals when changing the scale when edit layers are enabled
* Fixed LandscapeInherited/LandscapeOverride properties which were not detected as such because we were using Property->Name instead of MemberProperty->Name
* Solidified all landscape PostEditChangeProperty accordingly
* Tagged all remaining ALandscapeProxy properties as either LandscapeInherited or LandscapeOverride
* Fixed landscape proxy overridable/inherited property names that didn't always appear readonly (note, we use IsValueEnabled here but there seems to be a bug with it, which is tracked with UE-202147, that makes LightingChannels and PerLODMaterialOverrides look editable when overridable but not overridden)

#tests editor
#rb luc.eygasier

[CL 30297126 by jonathan bard in ue5-main branch]
2023-12-13 12:58:59 -05:00
jonathan bard
54268ac37a Fixed incorrect landscape CVar names
#rb chris.tchou
#tests editor

[CL 29990823 by jonathan bard in ue5-main branch]
2023-11-29 12:01:06 -05:00
don boogert
d01e192721 Landscape: Added a Nanite Position Precision property to Landscape Actors. Defaults to 1cm in worldspace.
#rb jonathan.bard

[CL 29938390 by don boogert in ue5-main branch]
2023-11-27 13:00:29 -05:00
don boogert
4ef23fca4d [Backout] - CL29911799
[FYI] don.boogert
Original CL Desc
-----------------------------------------------------------------
Landscape: Added a Nanite Position Precision property to Landscape Actors. Defaults to 1cm in worldspace.

#rb jonathan.bard

[CL 29925581 by don boogert in ue5-main branch]
2023-11-24 23:58:05 -05:00
don boogert
4c1ccc8aeb Landscape: Added a Nanite Position Precision property to Landscape Actors. Defaults to 1cm in worldspace.
#rb jonathan.bard

[CL 29911853 by don boogert in ue5-main branch]
2023-11-23 12:31:35 -05:00
don boogert
2dc081daf7 [Backout] - CL29761013
[FYI] don.boogert
Original CL Desc
-----------------------------------------------------------------
Landscape: Added a Nanite Position Precision property to Landscape Actors. Defaults to 1cm in worldspace.

#rb jonathan.bard

[CL 29835586 by don boogert in ue5-main branch]
2023-11-19 15:53:54 -05:00
don boogert
f489a00832 Landscape: Added a Nanite Position Precision property to Landscape Actors. Defaults to 1cm in worldspace.
#rb jonathan.bard

[CL 29761028 by don boogert in ue5-main branch]
2023-11-15 17:14:07 -05:00
jonathan bard
9be14b7df2 Fixed Per LOD material overrides not working on landscape streaming proxies
#jira UE-198859
#rb luc.eygasier
#tests editor

[CL 29048432 by jonathan bard in ue5-main branch]
2023-10-24 12:40:23 -04:00
jonathan bard
b5825eea45 Fixed landscape component count display in editor when selecting streaming proxies
#jira UE-189143
#rb roey.borsteinas

[CL 26155069 by jonathan bard in ue5-main branch]
2023-06-21 13:48:18 -04:00
luc eygasier
6c58a2bbcb Reworks landscape property sharing and override.
Adds LandscapeInherited and LandscapeOverridable meta tag to mark shared properties.
Enforce synchronicity between shared properties when editing and loading ALandscape and LandscapeStreamingProxy.
Modifies ALandscapeProxy detail panel to reflect how the properties are shared.

#jira UE-173875, FORT-600500
#rb Jonathan.Bard
#lockdown Marc.Audy

[CL 25992337 by luc eygasier in ue5-main branch]
2023-06-14 16:03:16 -04:00
jonathan bard
c0e960c793 Made landscape proxy count details more explicit
#rb trivial
#rnx

[CL 25824504 by jonathan bard in ue5-main branch]
2023-06-06 15:05:13 -04:00
chris tchou
1eab09f9c7 Landscape Texture Mip Storage Provider, give us an option to customize how Landscape Texture data is stored.
Currently, Landscape will only apply the new storage provider to it's heightmaps at cook time, when it sees that the landscape has been flagged to use the new compressed storage path (enabled under Landscape -> Advanced), and only for Windows platforms (to be expanded as we test other platforms).

The compressed storage path option on the landscape is hidden by default, and can be made visible via CVAR ("landscape.ShowCompressHeightMapsOption")

Makes use of a new All Mip Provider interface to Texture2Ds, that expands on the existing Mip Data Provider (that only supported providing streaming mips).
The new interface assumes you want to completely override the Texture2D mip data.

When Texture2D sees that it has an All Mip Provider, it will skip serializing it's own heavyweight mip data during cook, as it assumes the provider will take care of providing all mip data.

The majority of the implementation is in LandscapeTextureStorageProvider, which implements the AllMipProvider that can store landscape heightmaps in a custom compressed format.  Each mip's height data is stored using delta encoding, and normals are reconstructed.

#rb jonathan.bard, jian.ru
#jira UE-180654
#preflight 64541acf6c35ad81e61890cc
#preflight 64542713fd4b8f4e0d9a2ce9
#preflight 6459378bfd4b8f4e0dc206d2

[CL 25381191 by chris tchou in ue5-main branch]
2023-05-08 19:51:44 -04:00
jonathan bard
adf08a89ef * Made bEnableNanite and NaniteLODIndex shared properties for landscape proxies so that at cook time (where we cannot rely upon the presence of the parent landscape actor in the case of landscape streaming proxies) there's no ambiguity with regards to whether Nanite is enabled or not on a given proxy
* Added actionable map checks for when shared properties on proxies are not up-to-date
* Save Modified Landscapes now acts as a way to fix every landscape actor that needs to be updated because of such discrepancies
* Fixed ModifiedPackages system in ULandscapeInfo so that :
** It bypasses temp packages (e.g. when creating a new map out of a template map that has discrepancies within its shared properties itself, we don't want the user to be notified since nothing has been saved yet and all will be synchronized once the actors are)
** It doesn't act on actors belong to any other world type than Editor (e.g. we don't want the user to be notified when entering PIE since properties will be properly synchronized automatically and nothing needs to be saved afterwards)
** It doesn't do anything upon rolling back a transaction (e.g. since property sharing synchronization (i.e. FixupSharedData) runs on PostRegisterAllComponents, it would report the problem to the user while if we're undoing, we're already dirty anyway)

#rb chris.tchou
#preflight 642eadbff6304b1f0240db8b

[CL 24977308 by jonathan bard in ue5-main branch]
2023-04-10 10:30:39 -04:00
aleksander netzel
7abea0b9b0 UEFN - Expose Nanite Settings for Landscape.
#rb none
#preflight 63f481906928c1ca3d3a0c38

[CL 24336782 by aleksander netzel in ue5-main branch]
2023-02-21 06:00:28 -05:00
jonathan bard
a28e080471 Fixed random crash when closing a map with landscape proxy selected : the landscape actor can get unregistered by the destruction (ULandscapeInfo unregistering the actor) before the actor gets unselected, which can lead to FLandscapeProxyUIDetails updating a landscape proxy with no parent
#rb luc.eygasier
#rnx
#preflight 63c18e040225f00e14293854

[CL 23682289 by jonathan bard in ue5-main branch]
2023-01-13 13:48:07 -05:00
jonathan bard
53372ac98a Fixed double localization string
#rb trivial
#rnx

[CL 23247237 by jonathan bard in ue5-main branch]
2022-11-23 05:56:52 -05:00
jonathan bard
a9cc9c3029 Fix for undo with landscape Nanite and various Nanite landscape editor improvements :
* Unified all invalidation/update code paths so that we respect landscape.LiveRebuildNaniteOnModification in all modification cases
* Made NaniteComponent non-transactional and invalidate Nanite mesh upon undo (no need to clutter the transaction buffer with heavy redundant data)
* BuildNanite is now able to build either all proxies, like before, or only proxies from a list (including streaming proxies, in the case of a ALandscape)
* Build Nanite data can now be done per landscape proxy actors, allowing the user to update only a list of select actors (supports multi-selection)
* Added Rebuild Data button to landscape proxy actors to force building the Nanite data even if the content has not been detected as having been changed
* Landscape proxy actor details now supports multi-selection and allows to display landscape details only if all selected proxies are share the same parent ALandscape
* Fixed Nanite landscape which would fail to build at 64 components (while it actually supports up to 64 components)
* Fixed NaniteLODIndex, which would show in the details panel even when Nanite landscape is not enabled
* Added progress bar when building Nanite from the details panel buttons
* Disable navigation data on Nanite landscape static mesh

#rb chris.tchou
#preflight 637cec082a05dabce96cf332

[CL 23243849 by jonathan bard in ue5-main branch]
2022-11-22 19:52:28 -05:00
chris tchou
803094ae27 Change landscape info Proxy pointers to be TWeakObjectPtr, so they won't act as GC references
#rb jonathan.bard
#preflight 63335cb2dc213d2eadcd61b2

[CL 22217645 by chris tchou in ue5-main branch]
2022-09-27 23:53:05 -04:00
bryan sefcik
b93a6cf7ed Pass 1 on editor include fixes:
Removed redundant private include paths from build.cs files.
Fixed include paths to be relative to the private or public folders.
Hid or removed includes that reached into other private module folders.
Updated PublicInclude paths when necessary.

#jira
#preflight 631e283bec5b0c765fc0ffdb

[CL 21960084 by bryan sefcik in ue5-main branch]
2022-09-11 18:33:06 -04:00
bryan sefcik
0837230669 Ran IWYU again on half of the Engine/Source/Editor/... source files.
#jira

[CL 21716414 by bryan sefcik in ue5-main branch]
2022-08-30 23:03:03 -04:00
luc eygasier
164e1d0ca2 * Enables landscape mode for UEFN
* Whitelists Left Tab to allow Landscape mode panel to be hosted properly
* Adds Rowtag to Landscape Custom UI details to enable property filtering (custom details name were "None", therefore blocked)

#rb Jonathan.Bard
#preflight 62221bb5b066ef60bba698f0

#ROBOMERGE-AUTHOR: luc.eygasier
#ROBOMERGE-SOURCE: CL 19266167 via CL 19267521 via CL 19274783 via CL 19278382 via CL 19293680
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19345011 by luc eygasier in ue5-main branch]
2022-03-10 19:36:40 -05:00
robert manuszewski
97b5e82c0b Deprecating EInternalObjectFlags::PendingKill. Making sure iterators use the appropriate flags based on the current state of PendingKill being enabled or not.
#preflight 61f8f33d537702981c352c7a
#rb Steve.Robb

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 18806353 in //UE5/Release-5.0/... via CL 18808526 via CL 18821789
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18822151 by robert manuszewski in ue5-main branch]
2022-02-02 02:21:12 -05:00
jeremy moore
540bfc0785 Add button to landscape details panel to create RVT volumes for all set RVT assets.
Small quality of life improvement for RVT setup.
#preflight 61e9db58d3499d380f39e993

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 18682626 in //UE5/Release-5.0/... via CL 18682653 via CL 18682672
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v902-18672795)

[CL 18682696 by jeremy moore in ue5-main branch]
2022-01-20 17:23:55 -05:00