UV mirror seams are now considered an attribute discontinuity. This is handled through a cheap trick of changing the tops bits of the material index per triangle.
This should not strictly be necessary because the QEM could account for the difference but to get it to properly catch issues in practice required increasing the UV error weight high enough that it impacts all meshes including ones that didn't have noticable issues. Targeting the mirror case specifically was better even though it shouldn't be special theoretically.
This fixes Nanite UV bugs in Frosty.
#jira UE-113150
#ROBOMERGE-SOURCE: CL 16411470 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v804-16311228)
[CL 16412628 by brian karis in ue5-main branch]
- FMeshSceneAdapter updates
- if bThickenThinMeshes is enabled, then all instance meshes are converted to DynamicMesh and decomposed to find non-closed regions. Those regions are uniqued into separate meshes. The remaining closed geometry is separated out and kept as instanced.
- various utility functions added to support above
- previous code to explicitly 'thicken' open meshes into solids is removed. Instead unsigned distance is used to determine inside/outside and generate a 1/0 winding number
- instances are now sorted into an octree to speed up winding number evaluations
- If all meshes are closed (or effectively closed via above, ie will return integer winding number) then winding number query can early-out as soon as it finds a non-zero value
- Add hard-normals options in IGeometryProcessing_ApproximateActors (not exposed in MergeActors tool options yet)
- Added hard-normal callucation to ApproximateActorsImpl, and additional profiling
- Allow specification of actual ECollisionTraceFlag options in CreateStaticMeshUtil, instead of just a boolean
- Add FSparseDynamicOctree3::ContainmentQueryCancellable() variant that can early-exit
#rb none
#rnx
#jira none
#preflight 60a686274c320300018d3841
#ROBOMERGE-SOURCE: CL 16410125 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v804-16311228)
[CL 16412542 by ryan schmidt in ue5-main branch]
This override is only used if the list isn't empty, otherwise the project default is used. Cook-on-the-fly isn't impacted by this change, as it cooks assets on-demand so doesn't need to pre-cook a certain list of cultures.
#rb Patrick.Laflamme
[CL 16407969 by Jamie Dale in ue5-main branch]
-Add mechanism for ITextureFormat to have a generic and private "FormatSettings" block that can be global, but also exported with a texture build action and applied when a texture build is executed remotely. Also ensure that ChildTextureFormat is able to split and store/read the format settings for Child & Base format as separate sub-items.
-Allow the PS5TextureBuildWorker to compile in Oodle if the plugin is present and enabled.
#rb charles.bloom
[CL 16406838 by Zousar Shaker in ue5-main branch]
Also added CancelAsyncBuild and clarified the comments on how async builds work.
#rb Zousar.Shaker
#rnx
[CL 16406496 by Devin Doucette in ue5-main branch]
Cannot easily specialize the specialization's config settings, so a different approach is required.
#jira UE-115613
#rb none
#rnx
[CL 16382731 by David Harvey in ue5-main branch]
- Memory: Changed the "symbols resolved" message in status bar of Allocs Table to show also the number pending symbols to be resolved.
- Timing view: Hidden the "Exclusive Time percent in tooltip when event duration is 0 (instead of showing NaN).
#rb Catalin.Dragoiu
[CL 16367008 by ionut matasaru in ue5-main branch]