Commit Graph

101 Commits

Author SHA1 Message Date
sebastien lussier
2689dd71cb World Partition - HLOD: Added support for automatic texture sizing for Merged & Simplified HLODs
* Reused existing code to share it between all HLOD generation methods

#jira UE-161274, UE-156559
#rb patrick.enfedaque
#preflight 632927c99840225da23c49a5

[CL 22088941 by sebastien lussier in ue5-main branch]
2022-09-20 01:40:59 -04:00
sebastien lussier
f1d3663fa2 World Partition - HLOD
* Exposed proper Nanite generation settings: To control mesh fallback mesh generation, relative error is prefered over triangle percent
* Exposed "Support Ray Tracing" option
#preflight 632856a91c7511917a845ef2
#rb jeanfrancois.dube

[CL 22086940 by sebastien lussier in ue5-main branch]
2022-09-19 21:54:48 -04:00
nick darnell
8c6dccfce9 Core - Making some improvements to TObjectPtr, introducing some templating utilities so that we can better template match TObjectPtr vs UObject* pointers so that a single templated function can work for either.
Core - Added support for assigning a TObjectPtr<T> to a TScriptInterface just like you'd expect from a raw Object*.

Actor - Making a version of GetComponents that will work for TObjectPtr collections.  Additionally fixed several places in the engine where we're forcing the template parameter instead of allowing it to be determined automatically - which forced me to leave one of the GetComponent implementations, but I think we aught to remove it. e.g.

Don't Do

TArray<UPrimitiveComponent*> PrimComponents;
Actor->GetComponents<UPrimitiveComponent>(PrimComponents);

Do

TArray<UPrimitiveComponent*> PrimComponents;
Actor->GetComponents(PrimComponents);

Slate - Introducing support for collections of TObjectPtr<T>'s being used as source lists for the STableView.

#preflight 630f7af8e54ec9d581b03d65
[REVIEW] [at]Marc.Audy, [at]Steve.Robb, [at]Zousar.Shaker

[CL 21727328 by nick darnell in ue5-main branch]
2022-08-31 16:13:49 -04:00
benoit deschenes
cf4f142639 MeshMergeUtilities - Fix some logic that was locking the main thread while waiting for the StaticMesh async build to complete. Now the build is only triggered (by PostEditChange()) after we've done modifying the StaticMesh.
On a large test asset, this shaved off ~20 seconds on a ~1m50sec merge operation.

#rb Richard.TalbotWatkin
#preflight 630eaae3556fc14dce80cae6

[CL 21723945 by benoit deschenes in ue5-main branch]
2022-08-31 13:27:10 -04:00
sebastien lussier
ae47a6cb66 Fix crash switching levels after building HLODs
HLOD meshes were sometime referencing MaterialInstanceDynamic, that aren't assets (!RF_Standalone)
* MIDs are usually outered to the components they are assigned to
* Duplicate MIDs and outer them to the generated HLOD UStaticMesh
#rb jeanfrancois.dube
#preflight 6308dfc392620e5ec3b61103

[CL 21597931 by sebastien lussier in ue5-main branch]
2022-08-26 16:20:09 -04:00
kriss gossart
0422ca7705 Skeletal Mesh - Replace the newly created GetSkeletalMesh function by GetSkeletalMeshAsset so it matches the setter SetSkeletalMeshAsset function (which itself couldn't be named SetSkeletalMesh due to the function already existing and doing something else).
#rb Josie.Yang
#preflight 62fa2afeae3edb54c979492e
#jira none

[CL 21385959 by kriss gossart in ue5-main branch]
2022-08-15 09:26:50 -04:00
Josie Yang
6b15506e58 Replace direct access to SkeletalMesh object from USkinnedMeshComponent with GetSkeletalMesh function
#rb kriss.gossart
#preflight 62aafc9ada0af39a4783930a

[CL 20686007 by Josie Yang in ue5-main branch]
2022-06-16 09:14:04 -04:00
ryan schmidt
74aec81aab MergeActors: workaround for crash where unique material list is larger than number of unique sections
#rb jeanfrancois.dube
#preflight 621dae3c3e14f0c7e51bded0
#rnx
[FYI] sebastien.lussier

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 19197657 via CL 19202734 via CL 19207265 via CL 19210846
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19215690 by ryan schmidt in ue5-main branch]
2022-03-01 21:35:42 -05:00
sebastien lussier
4875b2627f #jira UE-132273
WP HLOD - Add Landscape support

Changes to support WP landscape material capture
* Moved IsValidBaseMaterial() from MeshMergeUtilities to MaterialUtilities
* Moved CreateProxyMaterialInstance() from MeshMergeUtilities to MaterialUtilities
* Added FCreateTexture2DParameters::bVirtualTexture
* Added FMaterialUtilities::ExportLandscapeMaterial() which doesn't need a list of primitives to hide (will only render the landscape component primitives)
* Added VT primming to ensure the captured textures have the expected resolution

#rb patrick.enfedaque
#preflight 6206a9e454003c49ad44c354

#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 18980162 in //UE5/Release-5.0/... via CL 18980592 via CL 18980979
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18981032 by sebastien lussier in ue5-main branch]
2022-02-14 12:01:24 -05:00
brian karis
a208fbc50b Changed name on Nanite Proxy mesh to Nanite Fallback mesh.
Changed fallback settings to be largely error based with new property FallbackRelativeError.

Nanite builder will now provide the LOD fallbacks for all autogenerated LOD levels which is far faster than generating them from scratch.

#rb graham.wihlidal
#preflight 61f9e1fe9e4d23cd93b8d556

#ROBOMERGE-AUTHOR: brian.karis
#ROBOMERGE-SOURCE: CL 18820056 in //UE5/Release-5.0/... via CL 18820070 via CL 18822916
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18825066 by brian karis in ue5-main branch]
2022-02-02 08:19:56 -05:00
andrew davidson
3debbbd465 Fix FVector2D variant casts
Submitted on behalf of fred.kimberley
#rb andy.davidson
#preflight 61f8719ea6632a34f35e654b

#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 18801709 in //UE5/Release-5.0/... via CL 18802160 via CL 18821533
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18821619 by andrew davidson in ue5-main branch]
2022-02-02 01:45:23 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
dmytro vovk
fe6369b9ca Fixed SSE Math double precision issues
#jira none
#rb Zak.Middleton

#ROBOMERGE-SOURCE: CL 17033934 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v846-17029325)

[CL 17035634 by dmytro vovk in ue5-release-engine-test branch]
2021-08-03 14:44:57 -04:00
sebastien lussier
1ca8052222 Allow the use of alternate names for flattening material params
#jira UE-115794
#rb patrick.enfedaque

#ROBOMERGE-SOURCE: CL 16888386 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16888405 by sebastien lussier in ue5-release-engine-test branch]
2021-07-19 16:26:07 -04:00
sebastien lussier
3299f86f25 #jira UE-115630
Fixed static analysis warning
#rb patrick.enfedaque

#ROBOMERGE-SOURCE: CL 16841160 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16841178 by sebastien lussier in ue5-release-engine-test branch]
2021-07-13 15:26:20 -04:00
jamie dale
3271de479f Ensure that the ISMC created from Merge Actors is transactional and supports per-instance editing
#rb Sebastien.Lussier, Ryan.Schmidt

#ROBOMERGE-SOURCE: CL 16704233 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16704237 by jamie dale in ue5-release-engine-test branch]
2021-06-17 10:03:24 -04:00
sebastien lussier
c61ff6edd8 Added HLODBatchingPolicy (enum) member to UPrimitiveComponent
* Replaces the confusing bUseMaxLODAsImposter & bBatchImpostersAsInstances
* Modified ALODActor::IsBuilt() to avoid pulling on editoronly data
#rb luc.eygasier

#ROBOMERGE-SOURCE: CL 16699482 via CL 16699489
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16699499 by sebastien lussier in ue5-release-engine-test branch]
2021-06-16 20:50:26 -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
Sebastien Lussier
4ab1a29beb Added Nanite Proxy Percent option to MeshMergeSettings / MeshProxySettings
#rb patrick.enfedaque

[CL 16202021 by Sebastien Lussier in ue5-main branch]
2021-05-04 21:13:05 -04:00
Sebastien Lussier
e8c74f62ab #jira UE-114024
Fixed test failure - ActorMerging_SingleLODMaterialBaking

Corrected bad conversion from EMaterialProperty to EFlattenMaterialProperties using array indexing... now using a map.
Fixed slight delta in ground truth images as the floor pattern moved a bit (irrelevant to the actor merging test)
#rb patrick.enfedaque

[CL 16184268 by Sebastien Lussier in ue5-main branch]
2021-05-03 11:09:54 -04:00
Rune Stubbe
9dbd92093b New Nanite vertex quantization code that replaces the cluster-relative coordinates with quantization to an absolute po2-sized grid centered around the mesh center.
The scheme solves issues where meshes would no longer align properly after converting them to Nanite. It also solves the precision issues in clusters with triangles of non-uniform size.
By default the precision is heuristically selected by Nanite, but the user also has the ability to override with an explicit precision to solve issues or optimize for disk size.
Clusters store the coordinate components using the minimal number of bits required to span the range of values in the cluster.
Apart from fixing issues, the default quality seems no worse than before and is typically ~5-10% smaller than before.

Added Position Precision to the top left of Mesh viewer along with the other mesh stats.
Added Position Precision dropdown to Nanite import settings.
Added debug mode "r.nanite.visualize PositionBits" that shows the vertex position bit sizes for clusters.
New quantization code now updates float positions and cluster bounds to reflect the quantized coordinates.

#rb brian.karis, graham.wihlidal
#JIRA UE-102722
#preflight 607d56774df3b60001ef477c

[CL 16049335 by Rune Stubbe in ue5-main branch]
2021-04-19 06:58:00 -04:00
christopher waters
688c029803 Tessellation Removal: Removing Tessellation specific material parameters.
#jira UE-94564
#rb ben.ingram, sebastien.hillaire, arciel.rekman, jason.nadro
#preflight 6078b15161a9060001161a4c

[CL 16034000 by christopher waters in ue5-main branch]
2021-04-16 10:46:28 -04:00
sebastien lussier
25be01902a Avoid renderdata of HLOD being recomputed during cook package save because of non-deterministic guid
- Preserve guid during save if static mesh bulkdata content hasn't changed to avoid triggering unnecessary rebuilds
  - Make sure the next HLOD generation is going to use the HashAsGuid feature to avoid recompiling staticmesh that are generated if they are exactly the same as before

  - 31m10s to 14m15s to cook P_Construct_WP with a warmed-up DDC

#rb Matt.Peters, Sebastien.Lussier, Yuriy.ODonnell, Danny.Couture

#ushell-cherrypick of 15755322 by danny.couture
#lockdown simon.tourangeau

#ROBOMERGE-SOURCE: CL 15965125 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v787-15839533)

[CL 15981275 by sebastien lussier in ue5-main branch]
2021-04-12 15:18:55 -04:00
sebastien lussier
4fca75067f Allow the creation of virtual textures when baking HLODs
* Specifying a flatten material that use VT samplers will automatically create textures of the correct type
* Moved default flatten material to config
* Default is now to use VT for HLOD
#rb jeremy.moore
#jira none
#lockdown simon.tourangeau

#ROBOMERGE-SOURCE: CL 15947766 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v787-15839533)

[CL 15950281 by sebastien lussier in ue5-main branch]
2021-04-07 22:20:44 -04:00
sebastien lussier
8bc113f6ba ProxyLOD - Added support for providing instances transforms rather than having to build a gigantic FMeshDescription that include all instances
#rb jeanfrancois.dube

#ROBOMERGE-SOURCE: CL 15875370 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15875374 by sebastien lussier in ue5-main branch]
2021-03-31 10:52:22 -04:00