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]
* 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]
[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]
[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]
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]
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]
* 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]
* 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]
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]
* 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]
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]