-- fixed a bug in calc bounds when creating a new (empty) rest collection
#jira none
#rb none
#ROBOMERGE-SOURCE: CL 15885801 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
[CL 15889600 by brett miller in ue5-main branch]
-- Removed vertex visibility test from CalcBounds as it was having the opposite performance effect than intended.
#jira none
#rb none
#ROBOMERGE-SOURCE: CL 15882294 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
[CL 15889237 by brett miller in ue5-main branch]
-- changed the way ISMCs are spawned for embedded geometry to correct issues with cache spawns.
#jira none
#rb none
#ROBOMERGE-SOURCE: CL 15869816 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
[CL 15869819 by brett miller in ue5-main branch]
-- Changed how particle to proxy mapping is implemented. Removed the map maintained on the solver. Each particle now maintains its own pointer to the associated proxy. Internal cluster particles are linked to multiple proxies (necessarily: they need this information to mark proxies dirty during the buffering process). Internal cluster particles have a set of proxy pointers that are used in situations that require it.
#jira none
[FYI] brett.miller
#rb brett.miller,benn.gallagher
#preflight 605e25c90944f600013b5281
#ROBOMERGE-OWNER: brice.criswell
#ROBOMERGE-AUTHOR: brice.criswell
#ROBOMERGE-SOURCE: CL 15843324 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
#ROBOMERGE-CONFLICT from-shelf
[CL 15843590 by brice criswell in ue5-main branch]
- account for component transform on a per frame basis
- updates kinematic particle accordingly
- add missing calls to the solver to support it
#rb brice.criswell, brett.miller
#jira none
[CL 15833163 by cedric caillaud in ue5-main branch]
-- Embedded geometry tweaked to make them compatible with chaos caching.
#jira none
#rb none
#ROBOMERGE-SOURCE: CL 15814675 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269)
[CL 15814730 by brett miller in ue5-main branch]
Added fence in GC to make sure the renderer is done with the Nanite resource before deleting it
#rb graham.wihlidal
#ROBOMERGE-SOURCE: CL 15786206 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269)
[CL 15790745 by rune stubbe in ue5-main branch]
-- re-instated shift-b to toggle bone colors in fracture mode.
#jira UE-110753
#rb none
#ROBOMERGE-SOURCE: CL 15756406 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269)
[CL 15767306 by brett miller in ue5-main branch]
-- wrapped PostEditChangeChainProperty in WITH_EDITOR to prevent build error for runtime.
#jira none
#rb none
#ROBOMERGE-SOURCE: CL 15745059 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)
[CL 15745060 by brett miller in ue5-main branch]
Fracture Mode
-- moved ShowBoneColors from FractureMode to GeometryCollectionComponent to make it persistent.
#jira UE-110753
#rb none
#ROBOMERGE-SOURCE: CL 15742420 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)
[CL 15743750 by brett miller in ue5-main branch]
Pretty nasty one where material slots are manually added/changed (differing from LOD0), Nanite encodes the material tables from that, but then the LOD0 of the mesh (which drives mesh draw commands wrt. material interfaces) no longer matches correctly 1:1, so you can have 1 mesh section with 1 material interface, but it's actually using material index 1.
From the normal mesh draw command side of things, this is all handled nicely, but Nanite and GPUScene don't upload LOD0 data, we go off of material slots when encoding the tables (we don't care about the LOD data). Basically it means we'd upload a material table entry to GPU Scene at (say) slot 1280 with a given depth value (as if the relative material index is 0), but the cluster material encoding would say the relative index is 1, causing depth export and culling to lookup the depth value from slot 1281 instead.
Reverb was mainly single material meshes (with a few exceptions), so we never encountered all the reimport and mismatch fun, and even for a long time on Frosty, multiple materials were fine (and of course well tested previously).
The start of the problems came from the previous bug of LOD0 coarse mesh simplification killing unreferenced materials, scrambling the indexing - while that bug was being fixed by us, artists started trying to fix it on their end by manually adjusting material slots, etc. This left a ton of meshes behind with crazy indexing like this, where even disabling coarse mesh still results in mismatches between LOD0 and the material slots.
While making these fixes, I also made a number of CPU optimizations to various parts of the Nanite material rendering code, and also refactored a lot of the geometry collection and (H)(I)SM deferred material code into a common path shared by all Nanite proxies.
#rb ola.olsson
#fyi brian.karis, rune.stubbe, juan.canada
#jira FROST-1224
#robomerge Release-5.0-EarlyAccess
[CL 15736080 by graham wihlidal in ue5-main branch]
-- corrected a bug that prevented collision events from notifying.
#jira UE-109894
#rb none
#ROBOMERGE-SOURCE: CL 15596645 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v777-15581079)
[CL 15596649 by brett miller in ue5-main branch]
- Simplifies the ifdef logic in both and cleans up naming significantly.
- also added support for GPU-scene instance culling.
#rb Graham.Wihlidal
#ROBOMERGE-SOURCE: CL 15567860 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15567868 by ola olsson in ue5-main branch]