FResources::NumClusters now reflects the number of clusters after trim, not before.
#rb brian.karis
[FYI] graham.wihlidal, jamie.hayes
[CL 27830347 by rune stubbe in ue5-main branch]
Enabled by default. When disabled UVs are not lerped in the simplifier. This is useful when data stored in UVs isn't valid to interpolate, for example indexes.
Fixed long standing bug where locked boundary verts still would get attributes recalculated when taking part in an edge collapse. This results in them not matching when later merged with their neighbor, causing attribute discontinuities where they previously weren't. That will degrade further simplification, bloat vertex work, bloat vertex storage, and generally look worse.
Can reduce rendered vertex count by 14% and disk size by 3%.
#rb rune.stubbe, graham.wihlidal
#lockdown marc.audy
[CL 27715715 by Brian Karis in ue5-main branch]
Fixed NANITE_SANITY_CHECK_STREAMING_REQUESTS path so it compiles again and reduced size of Magic to make room for wider page indices.
Changed independent coding of PageIndex and ClusterIndex in FVisibleCluster to a smaller combined encoding.
Added more descriptive error messages when running out of pool space.
#rb graham.wihlidal
[FYI] brian.karis, jamie.hayes
[CL 27504613 by rune stubbe in ue5-main branch]
-Delta code vertex attributes and cluster refs
-ZigZag code deltas
-Store them as whole bytes
-Split high/mid/low bytes into separate streams
Transcode
-Transcode is now split into an independent pass and a number of dependent passes
-Launch a group per cluster instead of launching a group per potential cluster in a page and have them early out
Got rid of unused vertex color mode: NANITE_VERTEX_COLOR_MODE_WHITE
#rb brian.karis
[FYI] graham.wihlidal, jamie.hayes
#jira
[CL 27132972 by marc audy in ue5-main branch]
Clusters already have a max range for position. An additional exponent bit has been added to the position encoding to cover that range.
Added sanity check to make sure the largest possible cluster bound can always be encoded with the current position encoding parameters.
#rb jamie.hayes
[FYI] brian.karis, graham.wihlidal
[CL 26630917 by rune stubbe in ue5-main branch]
Disk pages sizes can now have arbitrary sizes, but are assumed to rarely be more than ~1.5x when reserving memory or sizing the upload staging buffer.
#rb ola.olsson
[FYI] brian.karis, graham.wihlidal, jamie.hayes
[CL 26534981 by rune stubbe in ue5-main branch]
-Replaced slow doubly-linked list LRU with array based LRU
-Replaced hash tables for mapping virtual pages to physical pages with direct lookups (+2 dwords per virtual page)
-Removed custom hash table for fast request deduplication (FRequestsHashTable)
-Trimmed one dword from FPageStreamingState (-1 dword per virtual page)
-Made a direct mapping from RuntimeResourceID to root page / FResource to avoid more expensive hashmap lookups
-Cache array of virtual page dependencies for resident pages to accelerate parent traversal
-Improved locality of assignment of groups to pages. Reduces streaming pool memory requirements by ~3-4%
Added Magic word to FFixupChunk to make it easier to identify corrupt data
#rb graham.wihlidal
[FYI] brian.karis, jamie.hayes
[CL 26080397 by rune stubbe in ue5-main branch]
- Modified Nanite::IBuilderModule::FInputMeshData to take FBounds3f instead of FBoxSphereBounds since NaniteBuilder doesn't require sphere bounds.
- Calculate VertexBounds in DisplaceNaniteMesh(...) and BuildMeshDataFromGeometryCollection(...)
#rb rune.stubbe
#preflight 64258edb973e609670eb2ef0
#lockdown marc.audy
[CL 24884479 by marc audy in ue5-main branch]
Don't round up lock region to po2
#fyi brian.karis, graham.wihlidal
#preflight 63fdeb8df43e53f6817231a4
[CL 24440617 by Rune Stubbe in ue5-main branch]
This is an enum to say which target to reduce to for the fallback. It makes the default "Auto" which gives us more ability to change the default heuristic without needing to change uproperty defaults.
Along with this added r.Nanite.Builder.FallbackTriangleThreshold. Any mesh with source triangle count less than this threshold uses the source triangles directly for the fallback.
#rb graham.wihlidal
#lockdown marc.audy
#preflight 63f0041b1d71bcd26225228c
[CL 24330590 by brian karis in ue5-main branch]