Commit Graph

182 Commits

Author SHA1 Message Date
jason stasik
222aef911e Add RowTags for StaticMeshBuildSettings customization
#rb none

[CL 22876442 by jason stasik in ue5-main branch]
2022-10-31 21:23:20 -04:00
david hill
58dd5cd3d4 StaticMeshEditor: fix implicit cast warnings
#preflight 633479a39768d784d9cfa72d
#rb jimmy.andrews

[CL 22262806 by david hill in ue5-main branch]
2022-09-29 23:43:57 -04:00
graham wihlidal
561e36e5c7 Nanite: Added "Preserve Area" checkbox to correct leaves disappearing on trees.
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]
2022-09-29 20:24:18 -04:00
alexis matte
fb24253449 Interchange: Fix the custom LOD import issues
- 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]
2022-09-21 11:36:20 -04:00
christopher waters
43aa8630c4 Shader Model 6 warning dialogs
- 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]
2022-09-16 20:30:43 -04:00
rune stubbe
76a529066f Nanite Hi-Res mesh is now built with the LOD0 build settings instead of the default ones
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]
2022-09-13 15:01:31 -04:00
bryan sefcik
b93a6cf7ed Pass 1 on editor include fixes:
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]
2022-09-11 18:33:06 -04:00
serge bernier
f540d59aa7 Expose PerQualityLevelsMinLod Set/Get to blueprints. Can also set the Default value if user input a value >= 0.
#rb josh.Adams

[CL 21929847 by serge bernier in ue5-main branch]
2022-09-09 18:17:10 -04:00
alexis matte
c2e9247564 Improve Nanite workflow.
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]
2022-08-31 14:18:54 -04:00
robert manuszewski
97e2da2b99 The internal list of all enum values will now store enum value names with the package name the enum was defined in to allow identically named enums in different packages.
+ 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]
2022-08-26 11:07:32 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
daniel wright
05e0e5f329 'Affect Distance Field Lighting' per Static Mesh Section
* 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]
2022-03-16 23:42:08 -04:00
stu mckenna
f51cf6a24a - Notify about changes to min lod so system can respond
#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]
2022-03-10 21:37:40 -05:00
krzysztof narkowicz
31a4f9aecb Lumen - surface cache generation improvements
* 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]
2022-03-10 20:49:33 -05:00
leon huang
0193ffe8d3 Fix for CIS warnings for localization duplicate keys. Fixes simply involve changing one of the colliding localization keys.
#rnx
	#rb: Vincent.Gauthier
	#jira: UE-143620
	#preflight: 6222489d2f7d78332e121416
	#lockdown Mitchell.Wilson

#ROBOMERGE-AUTHOR: leon.huang
#ROBOMERGE-SOURCE: CL 19272838 in //UE5/Release-5.0/... via CL 19273134
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v924-19243027)

[CL 19275063 by leon huang in ue5-main branch]
2022-03-04 16:10:23 -05:00
serge bernier
a558eda684 Add support for QualityLevelMinLod in SkeletalMesh.
-add clear minlod conversion data
 -add QualityLevelMinLOD tags for static meshes
 -fix qualityLevel property customization OnAddEntry and OnRemoveEntry slate event

#rb [at]jack.porter,[at]jian.ru
#test consoles, pc, mobile (results FNTEST-66031)

#ROBOMERGE-OWNER: serge.bernier
#ROBOMERGE-AUTHOR: serge.bernier
#ROBOMERGE-SOURCE: CL 19129732 via CL 19131639 via CL 19133087 via CL 19134011 via CL 19137049
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19155608 by serge bernier in ue5-main branch]
2022-02-25 15:46:30 -05:00
brian karis
de6db094d8 Added KeepTrianglePercent and TrimRelativeError properties to Nanite static mesh settings.
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]
2022-02-02 21:14:51 -05:00
brian karis
a208fbc50b Changed name on Nanite Proxy mesh to Nanite Fallback mesh.
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]
2022-02-02 08:19:56 -05:00
graham wihlidal
bac2a2b090 Moved all Nanite defines shared between C++ and shaders into a common header file, removing all the "keep this define in sync with this file" cases all over the code, and make the code a lot more maintainable. Common definitions now have a NANITE_ prefix to disambiguate global symbols
#rb rune.stubbe
#preflight 61f94f9ea6632a34f372dc39
[FYI] brian.karis, ola.olsson, jamie.hayes, andrew.lauritzen

#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 18808945 in //UE5/Release-5.0/... via CL 18809413 via CL 18822535
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18823295 by graham wihlidal in ue5-main branch]
2022-02-02 05:33:52 -05:00
UnrealBot
c47e81b2cb Branch snapshot for CL 18531810
[CL 18531810 in ue5-main branch]
2022-01-06 16:44:09 +00:00
UnrealBot
2987349d36 Branch snapshot for CL 18514113
[CL 18514113 in ue5-main branch]
2022-01-05 20:41:17 +00:00
krzysztof narkowicz
bbc28ea8b9 Lumen surface cache generation changes in order to fix surface coverage issues
* 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]
2022-01-05 10:30:05 -05:00
jian ru
88cdba5964 Add a NoRefStreamingLODBias setting for static and skeletal meshes. As the name suggests, it is a LOD bias that is only applied when a mesh doesn't have any component reference. The setting can be found in the static and skeletal mesh editors under the LOD Settings section. The default value is -1 which means using the value of r.Streaming.DefaultNoRefLODBias. If it is greater than or equal to 0, then the specified value will be used. The setting is implemented as a per quality level variable so users can specify different values for different quality levels. Users select what quality levels to use by setting r.Streaming.NoRefLODBiasQualityLevel under the ViewDistanceQuality sections in platform scalability ini files. For example, adding r.Streaming.NoRefLODBiasQualityLevel=0 and r.Streaming.NoRefLODBiasQualityLevel=1 to [ViewDistanceQuality[at]0] and [ViewDistanceQuality[at]1], respectively, in WindowsClientEngine.ini will make low and medium no-ref LOD biases selectable at runtime and they will be changed accordingly when changing view distance qualities. Since no value is specified for view distance quality 2 and up, the default no-ref LOD bias will be used. Note that this is the default value of the NoRefStreamingLODBias setting on a specific mesh. It is not r.Streaming.DefaultNoRefLODBias. The default value will be automatically set to the value of the lowest selected quality level. In the above example, if NoRefStreamingLODBias is 2 for low and 1 for medium, the default will be 2. If this is not desired, it is advised to explicitly specify the desired quality levels for all view distance qualities.
[FYI] bryce.lumpkin

#ROBOMERGE-OWNER: jian.ru
#ROBOMERGE-AUTHOR: jian.ru
#ROBOMERGE-SOURCE: CL 18501525 via CL 18501528 via CL 18501554 via CL 18501558 via CL 18505821 via CL 18505838
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18505843 by jian ru in ue5-release-engine-test branch]
2022-01-04 00:07:26 -05:00
jason stasik
6a2a6e029d Add customizable names to FPerPlatformPropertyCustomNodeBuilder
#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]
2021-12-10 20:34:26 -05:00
jon nabozny
b27dcfb385 Support for multiple root pages per Nanite resource
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]
2021-12-03 10:01:28 -05:00