Commit Graph

642 Commits

Author SHA1 Message Date
sebastien hillaire
91590374cf AtmosphericFog component removal from UE5.
Clean up atmospheric fog and have it instaciate a sky atmosphere by default instead
AtmosphericFog now inherits from SkyAtmosphere and looks vaguely similar. Serialisation is handled with a serialisation enum + ue5 version.
"ClassRedirects" could not be used because parameters are not compatible and also due to different serialisation on both component.

So instead Skyamtosphere now has a bool bIsAtmosphericFog (false by default).
AtmosphericFog component now inheriting from Skyatmosphere is setting that to true so that serialisation can be properly handled for both cases : pure Skyatmosphere or SkyAtmosphere replacing a AtmosphericFog with loading/saving. This also supports StaticLightingGUID once converted, see USkyAtmosphereComponent::Serialize.

SkyAtmosphere aerial perspective is now properly gated behind the base pass vertex shader designed for that using BASEPASS_SKYATMOSPHERE_AERIALPERSPECTIVE.

Removed all AtmosphericFog related render code.
Renamed a bunch of shader permutation.

UActorFactoryAtmosphericFog is removed so that the actor is no longer visible and instanciable from menu (existing actors in levels are still created correctly)
UAtmosphericFogComponent is made notplaceable.

ShooterGame compiled and ran succesfuly.
Colton Daniels (QA) will upate reference screneshot in a later CL.

#rb Charles.derousiers, Marc.Audy, Kevin.Ortegren

#ROBOMERGE-SOURCE: CL 16455741 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v818-16446889)

[CL 16455757 by sebastien hillaire in ue5-release-engine-test branch]
2021-05-25 16:33:58 -04:00
Sebastien Hillaire
baed13200f AtmosphericFog component removal from UE5.
Clean up atmospheric fog and have it instaciate a sky atmosphere by default instead
AtmosphericFog now inherits from SkyAtmosphere and looks vaguely similar. Serialisation is handled with a serialisation enum + ue5 version.
"ClassRedirects" could not be used because parameters are not compatible and also due to different serialisation on both component.

So instead Skyamtosphere now has a bool bIsAtmosphericFog (false by default).
AtmosphericFog component now inheriting from Skyatmosphere is setting that to true so that serialisation can be properly handled for both cases : pure Skyatmosphere or SkyAtmosphere replacing a AtmosphericFog with loading/saving. This also supports StaticLightingGUID once converted, see USkyAtmosphereComponent::Serialize.

SkyAtmosphere aerial perspective is now properly gated behind the base pass vertex shader designed for that using BASEPASS_SKYATMOSPHERE_AERIALPERSPECTIVE.

Removed all AtmosphericFog related render code.
Renamed a bunch of shader permutation.

UActorFactoryAtmosphericFog is removed so that the actor is no longer visible and instanciable from menu (existing actors in levels are still created correctly)
UAtmosphericFogComponent is made notplaceable.

ShooterGame compiled and ran succesfuly.
Colton Daniels (QA) will upate reference screneshot in a later CL.

#rb Charles.derousiers, Marc.Audy, Kevin.Ortegren

[CL 16455741 by Sebastien Hillaire in ue5-main branch]
2021-05-25 16:33:27 -04:00
Marc Audy
e80ea6b959 Merge from Release-Engine-Staging @ 16444985
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16445122 by Marc Audy in ue5-release-engine-test branch]
2021-05-25 02:43:26 -04:00
Brice Criswell
139a4bed28 Chaos : Geometry Collection
Collision Attribute Restructuring.
-	Updated the size specific data to be the primary container for collision settings within the geometry collection.
-	Removed non size specific default parameters from the asset.
-	Added support for Capsule collisions.
#jira none
#rb Benn.Gallagher
#fyi Brett.Miller, Cedric.Caillaud
#okforgithup, public, internal
#preflight 60a91c321d78490001621e41

[CL 16429701 by Brice Criswell in ue5-main branch]
2021-05-22 12:07:31 -04:00
jamie hayes
9389c3eb1e Add another optional separate translucency pass that gets composited after motion blur. Has no depth test (due to TAA color upsample with no upsampled depth), and is intended to work around reprojection and motion blur artifacts with translucency.
#rb zach.bethel, michal.valient
#jira none

[CL 16381727 by jamie hayes in ue5-main branch]
2021-05-19 02:09:02 -04:00
kriss gossart
e0a82bc5df Chaos Cloth - Add material stiffness weight maps, make the stiffness value exponential, and tidy up solver files. [Merging CL 16355390 via CL 16369406]
#rb Michael.Forot
#preflight 60a299c122cce0000150e9d1

CIS - Fix non unity build erroring on Chaos cloth constraints. [ Merging CL 16360199 via CL 16369406]
#rb trivial
#preflight 60a2e286292e320001258316

Chaos Cloth - Add ISPC weight maps implementation for material constraints. [Merging CL 16367050 via CL 16369406]
#rb Cedric.Caillaud
#preflight 60a3924207285b0001094352

[CL 16369488 by kriss gossart in ue5-main branch]
2021-05-18 12:32:29 -04:00
Helge Mathee
57e8a49d69 Control Rig: Refactor CopyOp to contain all required information for a copy
Also fixes UE-115756

#rb sara.schvartzman
#jira na

[CL 16354335 by Helge Mathee in ue5-main branch]
2021-05-17 12:35:41 -04:00
kriss gossart
f587099dd9 Chaos Cloth - Add paintable TetherScale, Drag, and Lift weightmaps.
Chaos Cloth - Change anim mesh visualization color to better differentiate it against the physics mesh.
[Integrate CL 16297075 via 16313688]

Cloth - Add a ClearColllisionSources method so that all collision sources can be removed without knowledge of any of the original sources. [Integrate CL 16305946 via 16313688]

#rb trivial

[CL 16313742 by kriss gossart in ue5-main branch]
2021-05-13 11:42:54 -04:00
aurel cordonnier
8eebe8841f Merge UE5/RET @ 16305968 to UE5/Main
This represents UE4/Main @ 16261013 and Dev-PerfTest @ 16259937

[CL 16306996 by aurel cordonnier in ue5-main branch]
2021-05-12 18:10:03 -04:00
Andrew Rodham
3254107855 Added missing changes that were erroneously excluded by robomerge
#rb none
#jira none

[CL 16278366 by Andrew Rodham in ue5-main branch]
2021-05-11 15:20:20 -04:00
paul chipchase
aef4aad935 Enabling the use of Virtualized BulkData api for both static meshes and textures. NOTE: This will not start virtualizing content data
This will cause the old bulkdata objects to be upgraded when loaded in the editor and saved out in the new format when the package is next saved.

#rb PJ.Kack
#rnx
#preflight 609a4df10ba7b600015e0da2

* UE5CookerObjectVersion
- Note that this work was done in CL 16266112 (it was easier to update this on the DevCooker branch)
- Moved UE_USE_VIRTUALBULKDATA to VirtualizationManager.
- Moved the virtualization versions to UE5MainStreamObjectVersion.
- Note that no package would have been saved with UE_USE_VIRTUALBULKDATA so it is safe to just move the versions.

* UE5MainStreamObjectVersion
- Added the virtialization versions here
- Fixed up some white space issues

* VirtualizationManager
- UE_USE_VIRTUALBULKDATA is now controlled from here.
- When disabled (set to 0) a new code path UE_VBD_TO_OLD_BULKDATA_PATH will be enabled that will attempt to allow packages saved with VBD to be reverted safely.
-- This requires that a new version be added to FUE5MainStreamObjectVersion, there is a static assert to warn people about this.

* VirtualizedBulkData
- Added a new method ::ConvertToOldBulkData which will load the VBD payload from disk and then pass it to the old bulkdata object provided. This is not as efficient as the OldBulkData->VBD path but is only provided as an emergancy way for us to back out if needed, we do not expect this code to actually be used.
- Fixed a bug where converting an empty bulkdata object to VBD would give a warning about invalid guids. If the provided bulkdata object is empty then it is likely that we will not have generated a unique guid for it anyway. A VBD object with no payload would expect to have an unset FPayloadId AND an invalid bulkdata identifier anyway so we can just do that and only warn in the case that a valid payload has no valid guid provided. This has a bonus of making the code easier to read as well.

* StaticMeshSourceData
- Updated MESHDATAKEY_STATICMESH_DERIVEDDATA_VER when UE_USE_VIRTUALBULKDATA is enabled again.
-- This probably isn't required but in theory some of our tests could've written mesh description data to the DDC with the old key, so we should update it to play it safe.

* Texture
- Converted to use FUE5MainStreamObjectVersion for it's version number
- Added a code path that will allow us to convert back to using old style bulkdata if UE_USE_VIRTUALBULKDATA is disabled and UE_VBD_TO_OLD_BULKDATA_PATH is enabled.

*MeshDescription
- Converted to use FUE5MainStreamObjectVersion for it's version number
-- Note that we don't have to tell the archive that we are using this because this was already happening.
- Added a code path that will allow us to convert back to using old style bulkdata if UE_USE_VIRTUALBULKDATA is disabled and UE_VBD_TO_OLD_BULKDATA_PATH is enabled.

[CL 16266408 by paul chipchase in ue5-main branch]
2021-05-11 06:28:45 -04:00
paul chipchase
def5860258 Clean up FUE5CookerObjectVersion/UE_USE_VIRTUALBULKDATA in preperation for enabling virtualized bulkdata.
- Moved UE_USE_VIRTUALBULKDATA to VirtualizationManager.h as it will no longer control versioning in any fashion.
- Remove virtualization versions from FUE5CookerObjectVersion (which were never enabled so this is safe to do)
- This is a partial extraction from the CL that will enable virtualized bulkdata but it will be easier to do some of the cleanup in DevCooker first and cherrypick to main then do a full merge up back to DevCooker to avoid a number of merging issues.
- Note that with this submit enabling UE_USE_VIRTUALBULKDATA will not work until the main submit to main, however nobody should be enabling that so it shouldn't matter.

#rb PJ.Kack
#rnx
#preflight 609a35e00fb8f20001688598
#ushell-cherrypick of 16265784 by paul.chipchase

[CL 16266112 by paul chipchase in ue5-main branch]
2021-05-11 04:42:24 -04:00
jonathan bard
2d40eb6cf0 Integrate 16197883 (+ build fix 16197886) :
* Removed dependency of WaterBodyData on MPC_Landscape and removed LandscapeWaterInfo : all MPC values to control water rendering should now be controlled by the WaterBrushManager
* All maps with a water velocity height texture need to be converted (update water brush manager) and a MapCheck displays a warning to do so with an hyperlink to trigger the action

#rb kevin.ortegren
#tests editor, PIE


#ROBOMERGE-OWNER: jonathan.bard
#ROBOMERGE-AUTHOR: jonathan.bard
#ROBOMERGE-SOURCE: CL 16166672 via CL 16166673 via CL 16166676
#ROBOMERGE-BOT: (v796-16191650)
#ROBOMERGE-CONFLICT from-shelf
#p4v-cherrypick 16197883

[CL 16224111 by jonathan bard in ue5-main branch]
2021-05-06 14:22:54 -04:00
JeanFrancois Dube
abb35c49a6 Implemented AActor::GetStreamingBounds that returns the actor bounds relevant to streaming.
- For editor-only actors this returns all the components bounds, otherwise it only includes non-editor components.
- Always skip transient components in the streaming bounds calculation.
- This fixes lights having a null bounds for streaming.

#rb none
#rb sebastien.lussier
#preflight 6091a12359592e0001fa3c4c

[CL 16219837 by JeanFrancois Dube in ue5-main branch]
2021-05-06 09:06:55 -04:00
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
JeanFrancois Dube
f3840c419a Shorten the cell level names to show more in STAT LEVELS.
#rb sebastien.lussier, richard.malo

[CL 16208284 by JeanFrancois Dube in ue5-main branch]
2021-05-05 11:56:27 -04:00
Matt Peters
6935c29d01 Create function UStruct::GetSchemaHash. This function provides a hash that can be used to check whether tagged property serialization stored in a saved package is a match for the current binary's UClasses. This hash can be used to test whether versioned tagged property serialization will produce unchanged results, and whether unversioned property serialization will succeed.
#rb Johan.Torp
#rnx

[CL 16186852 by Matt Peters in ue5-main branch]
2021-05-03 16:54:05 -04:00
Sebastien Hillaire
22bcce9dbf Directional lights now default to be atmosphere lights.
#rb Kevin.Ortegren
#jira UE-108480

[CL 16185752 by Sebastien Hillaire in ue5-main branch]
2021-05-03 14:24:43 -04:00
paul chipchase
71b969d9c4 Cherrypicking Mirage code base (disabled) from Dev-Cooker
- The mirage specific code is disabled behind the define UE_USE_VIRTUALBULKDATA, this means that some code paths in Texture/Mesh are much more complex than they need to be as we support both old and new paths. Once the system has been turned on and confirmed to cause no issues then this will be stripped out.
- SavePackageUtilities.cpp, SavePackage.cpp and SavePackage2.cpp are editgrates rather than integrations as those files have changes in DevCooker that we don't want to bring over immediately.
- Also includes a prototype system for storing bulkdata in a sidecar file in the workspace domain rather than in the .uasset/.umap file which although has been discontinued as part of mirage, will have applications for future work for non-virtualized projects and/or text based assets.

#rb Patrick.Finegan (all changes have been reviewed when submitted to Dev-Cooker)
#tests Cooking and running ShooterGame/Frosty and other sample programs using megascan assets
#rnx
#preflight  608be50d870cf400013ff99d

[CL 16167285 by paul chipchase in ue5-main branch]
2021-04-30 08:14:54 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
kriss gossart
4634bf5aa5 Cloth - Fix LOD transition maps, broken by mistakenly enabling multiple influences in the call to GenerateMeshToMeshSkinningData. [Integrate CL 16114138 from //UE5/Release-Engine-Staging]
#rb Jaco.VanDyk
[FYI] Tyson.Brochu
#jira UE-113373

[CL 16128222 by kriss gossart in ue5-main branch]
2021-04-27 11:33:24 -04:00
Jamie Dale
4afb7ce6bb Made EName an enum class to prevent implicit conversion to int
The following code would call the int overload rather than the name overload when passed an EName constant, which could easily lead to confusion and bugs:
    using FMyId = uint8;
    void DoThing(FName);
    void DoThing(FMyId);
    DoThing(NAME_Actor);

The change to use enum class requires that any code that actually deals with EName as an int (mostly internal name code and serialisation) be updated to explicitly cast, but prevents the implicit conversion that causes the issue above.

In order to preserve the NAME_X aliases that the old-style enum added to the global scope, new aliases have been added that point to the EName scoped versions. Unfortunately these can cause shadowing warnings if NAME_X is defined in the local scope, as the old-style enum used to allow that without shadowing, however there is no way to prevent this so we'll just need to fix any warnings that occur.

#rb Johan.Torp
#preflight 6087e06349a9840001414708

[CL 16126708 by Jamie Dale in ue5-main branch]
2021-04-27 10:11:18 -04:00
kriss gossart
d0250b46b1 Chaos Cloth - Rework Long Range Attachment initializations. [Integrate CL 15987361 from //UE5/Release-Engine-Staging]
[rb] Benn.Gallagher, Cedric.Caillaud
#jira UE-113018, FORT-358356

CIS - Fix Linux/Mac builds erroring on the TAtomic initialization. [Integrate CL 15987392 from //UE5/Release-Engine-Staging]
[rb] trivial

Chaos Cloth - Remove one unused line added by mistake during the large world coordinate merge. [Integrate CL 15989334 from //UE5/Release-Engine-Staging]
[rb] trivial

Chaos Cloth - Fix Long Range Attachement Euclidean distance that was missing the TetherView range update.  [Integrate CL 16022340 from //UE5/Release-Engine-Staging]
[rb] Benn.Gallagher
#jira UE-113018

Chaos Cloth - Improve Long Range Attachment stiffness.  [Integrate CL 16044944 from //UE5/Release-Engine-Staging]
[rb] Benn.Gallagher, Cedric.Caillaud
#jira FORT-339100, UE-99753

CIS - Fix  multiply defined symbols found on FPBDStiffness caused by LWC merge. [Integrate CL 16044951 from //UE5/Release-Engine-Staging]
[rb] trivial

#rb trivial

[CL 16124913 by kriss gossart in ue5-main branch]
2021-04-27 09:30:28 -04:00
Jeremy Moore
8df4f00139 Convert decal materials to no longer use decal blend mode.
Decal blend properties are inferred from material blend mode and connected outputs.
Decal materials are converted on PostLoad but need to be saved for the conversion to persist.
#jira none
#rb jason.nadro
#preflight 608717673938bf00010eaef0

[CL 16123276 by Jeremy Moore in ue5-main branch]
2021-04-27 08:09:13 -04:00
Ben Ingram
e1f837484c Deprecate property used to control serialization of cached material data. Instead add an explicitly serialized flag. With the property it's easy to leak the value across serialize calls.
#rb pj.kack
#jira UE-106110

[CL 16094495 by Ben Ingram in ue5-main branch]
2021-04-22 12:18:40 -04:00