This aims to preserve the surface area during simplification. If area is lost, open boundary edges of the mesh are dilated to compensate. This is useful for foliage that tends to thin out in the distance if not enabled.
Also include misc fixes:
Collapses that completely remove disjoint triangles have an error of the area of what was removed.
Would not alias 0 and -0 verts due to binary comparison.
#rb graham.wihlidal
#preflight 63349e32141f314ed601978d
#ushell-cherrypick of 22229630 by Brian.Karis
#preflight 6334c401f418a1071a35b4a4
[CL 22260505 by graham wihlidal in ue5-main branch]
- Static mesh editor LOD number not updated when importing custom LOD asynchronously
- Static mesh reimport LOD with new file need to dirty the ddc key
- Gltf translator must set a valid local transform on the root scene node
#jira none
#rnx
#rb jeanmichel.dignard
#preflight 632a800afc7f1efbdf781075
[CL 22113972 by alexis matte in ue5-main branch]
- If a static mesh is detected to use Nanite or a project is configured to use Virtual Shadow Maps and SM6 is not in the project settings, show a warning that SM6 needs to be enabled.
- Both cases only warn if the project was already configured to use a D3D platform.
- Added a UI option for enabling Nanite in project settings.
#jira UE-162011
#rb mihnea.balta
#preflight 6324cabf5f55ba280e1fb164
[CL 22064124 by christopher waters in ue5-main branch]
Gray out Fallback Triangle Percent and Fallback Relative Error when a model is specified in Source Import Filename
#preflight 631f5ed412092e9faa846d86
#rb graham.wihlidal
[FYI] Ryan.Schmidt
[CL 21989542 by rune stubbe in ue5-main branch]
Removed redundant private include paths from build.cs files.
Fixed include paths to be relative to the private or public folders.
Hid or removed includes that reached into other private module folders.
Updated PublicInclude paths when necessary.
#jira
#preflight 631e283bec5b0c765fc0ffdb
[CL 21960084 by bryan sefcik in ue5-main branch]
Artists can import/reimport(/new file)/remove nanite hi res data from the staticmesh editor.
Artists can import/reimport(/new file)/remove nanite hi res data from the content browser context menu.
Artists can easily see in the static mesh editor if the nanite hi res data is generated or imported.
#rnx
#rb jeanmichel.dignard
#preflight 630f837d98103d4521d33738
[CL 21724936 by alexis matte in ue5-main branch]
+ Replaced a few use cases of UEnum::LookupEnumName with FindObject where LookupEnumName was used to find a known UEnum object
#preflight 63075f9b03520e063c2926c9
#rb Steve.Robb
[CL 21590471 by robert manuszewski in ue5-main branch]
* Useful to hide window frames in the distance field to work around over-occlusion
#ROBOMERGE-AUTHOR: daniel.wright
#ROBOMERGE-SOURCE: CL 19416394 via CL 19416400
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v928-19376421)
[CL 19417073 by daniel wright in ue5-main branch]
#rb michael.galetzka
#ROBOMERGE-AUTHOR: stu.mckenna
#ROBOMERGE-SOURCE: CL 19311513 via CL 19313582 via CL 19315919 via CL 19315942
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19347739 by stu mckenna in ue5-main branch]
* Added r.MeshCardRepresentation.Debug for surface cache debugging. It skips DDC reads and writes, allows to regenerate per static mesh on demand and appends extra debug visualization data to every generated mapping
* Surfels are now weighted by opacity - ratio of rays which hit in a given cell, and by visibility - how many rays can hit a given Surfel from outside the mesh. This helps to select most important surfaces to cover when hitting limits
* Removed distance constraint. It�s no longer needed when card discontinuities are already handled inside the surface cache sampling code. This allows to generate larger and more optimal cards
* Limit max number of surfels to prevent generation time from exploding, as dense two sided meshes like large trees can generate many more surfels than simple walls
[FYI] Daniel.Wright
#ROBOMERGE-AUTHOR: krzysztof.narkowicz
#ROBOMERGE-SOURCE: CL 19304117 via CL 19304128
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346860 by krzysztof narkowicz in ue5-main branch]
These both trim detail from the Nanite data that is stored to disk and can be used to optimize disk size after import. Should be a super useful tool late in production.
#rb rune.stubbe
#lockdown michal.valient
#preflight 61fb25e6033a864b77e11ed6
#ROBOMERGE-AUTHOR: brian.karis
#ROBOMERGE-SOURCE: CL 18838594 in //UE5/Release-5.0/... via CL 18838602 via CL 18838937
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18838962 by brian karis in ue5-main branch]
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]
* First mesh is voxelized by tracing rays in every voxel
* Then voxel faces are clustered in parallel to build continuos cards. Clustering follows voxel distance, card ratio, density and other metrics
* Finally a specificied number of cards is selected per mesh (user parameter). This allows to tradeoff between coverage and runtime overhead
Other:
* Added surface cache coverage view mode for debugging coverage issues - r.Lumen.Visualize.Mode 6
* Fixed r.LumenScene.SurfaceCache.CardMinResolution to be able to go below 2
#preflight 61d478acdb0309127dfaf8ec
#rb Daniel.Wright
#ROBOMERGE-AUTHOR: krzysztof.narkowicz
#ROBOMERGE-SOURCE: CL 18519098 in //UE5/Release-5.0/... via CL 18519102
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18519115 by krzysztof narkowicz in ue5-release-engine-test branch]
#rb sebastien.nordgren
#preflight 61af8895ee6e47a827e8ca45
#ROBOMERGE-AUTHOR: jason.stasik
#ROBOMERGE-SOURCE: CL 18397192 via CL 18402589 via CL 18402955 via CL 18402999 via CL 18434850 via CL 18437275
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18437332 by jason stasik in ue5-release-engine-test branch]
Added UI for changing minimum residency
Decoupled imposter data allocation from root page allocation
Removed convoluted logic around a page's dependencies including itself for legacy reasons
Made streaming of imposter data optional (r.Nanite.Streaming.Imposters)
#rb andrew.lauritzen, ola.olsson
#preflight 6163f8f8eaa06c0001e409ee
#lockdown michal.valient
#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: rune.stubbe
#ROBOMERGE-SOURCE: CL 17770690 via CL 17986013 via CL 18368123 via CL 18368152
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18368223 by jon nabozny in ue5-release-engine-test branch]