Commit Graph

145 Commits

Author SHA1 Message Date
jamie hayes
89e2aeefe3 Bug fixes for static mesh DDC issues that have cropped up as a result of 35004573:
- Fix an issue where building a static mesh could change its own DDC key, causing duplicate render data to be cached and built.
- Fix an issue where static mesh DDC could have the Nanite resources stripped differently between Nanite and non-Nanite platforms that share cache.

Nanite builder fix (from Rune.Stubbe):
- Fixed rare builder crash when cluster group has to be split into more than 8 parts

#rb graham.wihlidal
#jira UE-220876, FORT-768796
[FYI] thierry.begin, jonathan.bard, rune.stubbe

[CL 35571580 by jamie hayes in ue5-main branch]
2024-08-15 14:31:43 -04:00
jamie hayes
fb5e785c36 Fix a crash in recent static mesh builder changes that were encountered with some assets in the Lyra project.
#tests Lyra PIE automation test

[CL 35019837 by jamie hayes in ue5-main branch]
2024-07-23 11:19:00 -04:00
jamie hayes
2f2694fc6d Fix Mac compile error
[CL 35006462 by jamie hayes in ue5-main branch]
2024-07-22 19:18:51 -04:00
jamie hayes
b51241fb94 Fix linux compile warning, and possible UB.
[CL 35005289 by jamie hayes in ue5-main branch]
2024-07-22 18:38:51 -04:00
jamie hayes
2d076c123a Nanite fallback static mesh build refactor:
* Stop using Nanite builder to generate the first reductions of fallback LOD, and instead only use Nanite to generate the first LOD, and perform the reductions with the mesh reduction module.
* Split out parts of the Nanite build portion of static mesh to prepare for upcoming changes (Nanite Assemblies) that will require building Nanite meshes with multiple inputs for the same static mesh.
* Re-introduce a Nanite DDC data fix since these changes require version bumps anyway.

#rb brian.karis
#jira UE-207151

[CL 35004573 by jamie hayes in ue5-main branch]
2024-07-22 18:16:52 -04:00
tiago costa
a879eeb8d0 Initial implementation of FStaticMeshRayTracingProxy.
- members of FStaticMeshRayTracingProxy can point to either ray tracing specific mesh data or reuse the rendering LODs (in this initial CL only rendering LODs are supported).

#rb aleksander.netzel
#jira UE-216293

[CL 34054854 by tiago costa in ue5-main branch]
2024-06-01 09:48:03 -04:00
tiago costa
7c964bec02 Store pointer to FRayTracingGeometry in FStaticMeshLODResources instead of object.
- only create FRayTracingGeometry objects if ray tracing is enabled on static mesh, project and platform.

#rb aleksander.netzel, Kenzo.Terelst

[CL 33969193 by tiago costa in ue5-main branch]
2024-05-29 07:22:38 -04:00
tiago costa
d9f1c76fd5 Provide TargetPlatform to FStaticMeshBuilder.
- used to decide whether to build nanite data and soon ray tracing proxies.

[CL 33888724 by tiago costa in ue5-main branch]
2024-05-24 04:17:14 -04:00
alexis matte
f605234b9c StaticMesh: Make sure static mesh validation verify the LOD 0 contain a valid geometry. Test also the hi-res mesh if exist also contain a valid geometry.
#rb jeanluc.corenthin
#rnx

[CL 33407148 by alexis matte in ue5-main branch]
2024-05-02 15:44:20 -04:00
bob tellez
655216348a #UE Fix NaN bounds on meshes that have no verts that contribute to bounds
[FYI] Graham.Wihlidal

[CL 32754350 by bob tellez in ue5-main branch]
2024-04-05 03:12:31 -04:00
jeanluc corenthin
e8fff13968 Modified logic to allow a static mesh to have an empty mesh description
#rb Alexis.Matte
#rnx

[CL 32448449 by jeanluc corenthin in ue5-main branch]
2024-03-22 16:24:07 -04:00
jimmy andrews
230b4408b7 fix incorrect scaling of tangents w/ non-uniform BuildScale in StaticMeshBuilder, but support still using incorrect scaling as a legacy option on static mesh (enabled on existing meshes that have non-uniform build scales, and disabled on all new meshes or meshes with uniform build scale). Add the legacy option flag to the static mesh DDC key suffix so that the mesh is rebuilt when the flag changes.
#rb Alexis.Matte, David.Hill, Richard.TalbotWatkin

[CL 29964987 by jimmy andrews in ue5-main branch]
2023-11-28 13:43:35 -05:00
tiago costa
1334d92ec1 Removed some code related to Nanite Coarse Mesh Streaming
- don't modify DDC key based on cvar since it doesn't impact LOD generation since CL 18820056.
- removed bGenerateCoarseMeshStreamingLODs parameter from a few functions since it isn't used anymore.

#rb brian.karis
#prelight 652516f53a59af0b367fbd0b

[CL 28614902 by tiago costa in ue5-main branch]
2023-10-10 07:29:08 -04:00
alexis matte
2a152ff6e2 Downgrade a log verbosity from Error to Display to avoid breaking the CIS.
#rb trivial
#rnx

[CL 27956157 by alexis matte in ue5-main branch]
2023-09-18 09:50:56 -04:00
alexis matte
8872049eea Make sure Hires mesh number of sections is equal or lower than LOD 0 number of sections. Issue an Error log if the hires is invalid and default nanite on the LOD 0.
#jira UE-194416
#rb jeanluc.corenthin
#rnx

[CL 27893484 by alexis matte in ue5-main branch]
2023-09-14 16:24:58 -04:00
alexis matte
eb0a09d380 [Backout] - CL27835483
[FYI] Alexis.Matte
Original CL Desc
-----------------------------------------------------------------
Make sure Hires mesh number of sections match LOD 0 number of sections.
#jira UE-194416
#rb jeanluc.corenthin
#rnx

[CL 27853575 by alexis matte in ue5-main branch]
2023-09-13 17:45:11 -04:00
alexis matte
a76f93ad5b Make sure Hires mesh number of sections match LOD 0 number of sections.
#jira UE-194416
#rb jeanluc.corenthin
#rnx

[CL 27835504 by alexis matte in ue5-main branch]
2023-09-13 12:21:38 -04:00
tiago costa
abca6b5a6c Resubmit CL26160360, 26146080, 26137852, 26126752
Only leaving CL 26157603 reverted since accessing GenerateSource in FDistanceFieldVolumeData::CacheDerivedData is not safe due to async mesh compilation.

#prelight 64948190a26e02126bc0a64f
#rb Krzysztof.Narkowicz

[CL 26206875 by tiago costa in ue5-main branch]
2023-06-23 04:28:57 -04:00
bob tellez
4c7e2e1b32 [Backout] - CL26160360, 26157603, 26146080, 26137852, 26126752
[FYI] tiago.costa
Original CL Desc
-----------------------------------------------------------------
Use FSignedDistanceFieldBuildSectionData when generating distance fields for Nanite meshes.

Context:
- Nanite meshes distance fields are generated using the original mesh data instead of the coarse representation generated by Nanite, however that code path was not checking section data such as blend mode, two sided, etc.

Fix:
- Modified FStaticMeshBuilder::BuildMeshVertexPositions(...) to also output a FStaticMeshSectionArray.
- Updated MeshRepresentation::SetupEmbreeScene(...) to check section flags when using SourceMeshData.IsValid() code path.

#prelight
#rb Krzysztof.Narkowicz

[CL 26174853 by bob tellez in ue5-main branch]
2023-06-22 00:25:01 -04:00
tiago costa
2b73cf0aa3 Use FSignedDistanceFieldBuildSectionData when generating distance fields for Nanite meshes.
Context:
- Nanite meshes distance fields are generated using the original mesh data instead of the coarse representation generated by Nanite, however that code path was not checking section data such as blend mode, two sided, etc.

Fix:
- Modified FStaticMeshBuilder::BuildMeshVertexPositions(...) to also output a FStaticMeshSectionArray.
- Updated MeshRepresentation::SetupEmbreeScene(...) to check section flags when using SourceMeshData.IsValid() code path.

#prelight
#rb Krzysztof.Narkowicz

[CL 26160411 by tiago costa in ue5-main branch]
2023-06-21 16:17:07 -04:00
simon barratt
4f8613a16f Adjusted error localisation keys to be more specific (and not duplicated)
[CL 26007802 by simon barratt in ue5-main branch]
2023-06-15 06:01:08 -04:00
simon barratt
31da8dcdc7 Catching of StaticMesh and FortBuilding errors with ContentWorker error codes
[CL 25858999 by simon barratt in ue5-main branch]
2023-06-07 17:28:13 -04:00
graham wihlidal
f44e4131c5 Changed Nanite::FResources member on static mesh render to an abstracted TPimplPtr<> to fully decouple NaniteResources.h from StaticMeshResources.h, avoiding costly full engine rebuilds whenever we iterate on Nanite, and provide us a mechanism going forward to move more of our API private.
#rb brian.karis, rune.stubbe
#fyi christopher.waters, juan.canada, yuriy.odonnell, henrik.karlsson
#preflight 6470360127390642751d5d60

[CL 25638055 by graham wihlidal in ue5-main branch]
2023-05-26 00:55:23 -04:00
Rune Stubbe
737c77422f Nanite support for explicit tangents
#jira UE-166732
#rb brian.karis
#fyi graham.wihlidal, jamie.hayes
#preflight 644f9d045403400548450480

[CL 25282711 by Rune Stubbe in ue5-main branch]
2023-05-01 07:48:12 -04:00
graham wihlidal
0d2d57eb0b Added two missing error messages to BuildNanite that now prevent a failed build from continuing (and producing broken data and/or various ensures in the slow task dialog).
#preflight trivial
#jira FORT-582521
#fyi graeme.thornton

[CL 25109636 by graham wihlidal in ue5-main branch]
2023-04-19 12:50:34 -04:00