Commit Graph

221 Commits

Author SHA1 Message Date
brett miller
da31181852 GeometryCollectionComponent
-- Corrected merge issue that prevented build

#jira none
#rb none

[CL 16389506 by brett miller in ue5-main branch]
2021-05-19 13:46:19 -04:00
brett miller
bb16c8f650 GeometryCollectionComponent
-- Removed comment in code preventing kinematic fields from expressing.

#jira none
#rb none

[CL 16388810 by brett miller in ue5-main branch]
2021-05-19 13:11:46 -04:00
julien marchand
b4484ee0d0 Fix to allow accessing the specific BodyInstance when the InstancedStaticMeshComponent has an array of BodyInstance instead of retrieving the default one in the primitive component base class.
[at]jaco.vandyk
#jira Frost-2381
#rnx

#ROBOMERGE-SOURCE: CL 16370533 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v804-16311228)

[CL 16372550 by julien marchand in ue5-main branch]
2021-05-18 14:32:57 -04:00
brett miller
d603e260ae GeometryCollection
-- Fixed namespace collision

#jira none
#rb none

#ROBOMERGE-SOURCE: CL 16363752 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v804-16311228)

[CL 16370331 by brett miller in ue5-main branch]
2021-05-18 13:07:36 -04:00
peter knepley
e07885e125 GeometryCollection
-- Support for Nanite to GeometryCollection conversion
-- Support for multiple UV sets

#jira UE-114992
#rb jimmy.andrews
[FYI] brice.criswell

#ROBOMERGE-OWNER: peter.knepley
#ROBOMERGE-AUTHOR: brett.miller
#ROBOMERGE-SOURCE: CL 16363667 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v804-16311228)
#ROBOMERGE-CONFLICT from-shelf

[CL 16370251 by peter knepley in ue5-main branch]
2021-05-18 13:03:42 -04:00
graham wihlidal
36beb84c0e - Added the ability to disallow falling back to proxy meshes if Nanite isn't supported by the platform (or if it is, but atomics are not supported). Default is proxy rendering, but some projects may not be built with proxy fallback in mind. Controlled with r.Nanite.ProxyRenderMode (0=fallback, 1=never render, 2=never render except SM editor toggle).
- Require 64bit atomic support for Nanite by default now (r.Nanite.RequireAtomic64Support=1)
- Cleaned up a bunch of cvar component reattach callbacks to use lambdas instead of redundant global functions
- Added UStaticMesh::HasValidNaniteData() as a helper to check if an asset has valid Nanite data
- Improved Nanite unsupported on screen error message so that we don't asks the user to update GPU drivers on a console :)

#rb nick.whiting
#jira UETOP-1646
[FYI] brian.karis, michal.valient

#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16363554 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v804-16311228)
#ROBOMERGE-CONFLICT from-shelf

[CL 16363648 by graham wihlidal in ue5-main branch]
2021-05-17 22:54:18 -04:00
cedric caillaud
591b22bf99 Fix rendering of GeometryCollection with LWC on
- change matrix types for dynamic data to be explicitly using float
- wrapped update of vertex buffer to ensure type check
- When LWC mode is on, convert double based matrices to they float equivalent ( sub-optimal, but necessary for now until we have a better way )

#jira UE-115570
#fyi brice.criswell, brett.miller

[CL 16333456 by cedric caillaud in ue5-main branch]
2021-05-14 15:26:37 -04:00
aurel cordonnier
8eebe8841f Merge UE5/RET @ 16305968 to UE5/Main
This represents UE4/Main @ 16261013 and Dev-PerfTest @ 16259937

[CL 16306996 by aurel cordonnier in ue5-main branch]
2021-05-12 18:10:03 -04:00
graham wihlidal
32e893af72 Fix for race condition where GCs might reach the call to RequestGPUSceneUpdate() on initial proxy creation before the primitive scene info has a valid index (entry in GPU Scene bookkeeping), causing the updates to silently skip. Normally this problem doesn't affect the majority of GCs, since most GCs have identify transforms in rest pose, except some GCs authored in external DCC tools could use non-identify transforms that wouldn't be correctly uploaded to GPUScene until simulation would start. Also took the time to remove the virtual function calls on IsNaniteMesh() and IsAlwaysVisible() since these are called super heavily in frustum culling and init views on the CPU.
#rb brett.miller
[FYI] brice.criswell, nick.whiting, brian.karis
#jira UE-115088

#ROBOMERGE-SOURCE: CL 16261925 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v799-16237190)

[CL 16264515 by graham wihlidal in ue5-main branch]
2021-05-11 01:18:05 -04:00
brett miller
4e958929e7 GeometryCollectionSceneProxy - Properly initialized LocalToWorld transform on Nanite scene proxy.
#jira UE-115088
#rb brice.criswell
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16261304 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v799-16237190)

[CL 16264510 by brett miller in ue5-main branch]
2021-05-11 01:17:48 -04:00
brett miller
2a138e24bc UGeometryCollection
-- Wrapped GeometrySource in header tool directive to be stripped out of shipping game builds.

#jira UE-115272
#rb brice.criswell
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16248584 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v799-16237190)

[CL 16263785 by brett miller in ue5-main branch]
2021-05-10 23:54:01 -04:00
Jimmy Andrews
3192560295 fix crash on trying to expand selection to neighbors when a transform w/ no geometry is selected
#rb trivial
#rnx
#preflight 60942bad3653dd000112b2c0

[CL 16224535 by Jimmy Andrews in ue5-main branch]
2021-05-06 14:59:48 -04:00
Brice Criswell
b17a87ae42 GeometryCollection : Bounds
- Added a debugging flag to enable single threaded bounds.
#jira FROST-2056
#rb Brett.Miller
#preflight 60932ea7c68b5a00017e5039

[CL 16216433 by Brice Criswell in ue5-main branch]
2021-05-05 21:03:44 -04:00
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
brett miller
6395ede18b GeometryCollectionSceneProxy
-- OnMotionEnd now resets instance transforms as well as component transforms.

#jira UETOP-1546
#rb brice.criswell
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16198557 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v796-16191650)

[CL 16198575 by brett miller in ue5-main branch]
2021-05-04 16:15:19 -04:00
graham wihlidal
254c5dedc9 Corrected OnMotionBegin/OnMotionEnd to run on the render thread, and refactored the previous in motion logic to use the new events.
#jira UETOP-1595
#rb brett.miller
#lockdown nick.whiting
[FYI] brice.criswell

#ROBOMERGE-SOURCE: CL 16178780 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v792-16166999)

[CL 16178783 by graham wihlidal in ue5-main branch]
2021-05-01 21:33:36 -04:00
brett miller
3e4e8bd152 GeometryCollectionComponent
-- Added state machine logic and scene proxy callbacks for triggering when motion begins and ends.

#jira UETOP-1546
#rb graham.wihlidal
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16178376 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v792-16166999)

[CL 16178381 by brett miller in ue5-main branch]
2021-05-01 17:51:29 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
graham wihlidal
efab24f960 Fix duplicate symbol unity build error
#rb trivial
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16151929 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16151940 by graham wihlidal in ue5-main branch]
2021-04-28 21:27:58 -04:00
graham wihlidal
28742c1787 Fixed locked previous GC transforms (locked motion blur) by detecting dynamic->static transition and resetting previous transforms to current.
#rb brice.criswell
[FYI] brett.miller
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16150932 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16150970 by graham wihlidal in ue5-main branch]
2021-04-28 19:53:28 -04:00
graham wihlidal
0fa361fa13 Fixed Nanite geometry collection velocity vectors, and optimizing transform updates for dummy GPU scene instance culling placeholders. Scene proxies can now fully own the concatenation of transform updates and avoid doing incorrect or redundant work during GPU Scene updates.
#jira UETOP-1352
#rb brandon.dawson
[FYI] ola.olsson, brian.karis, brice.criswell, brett.miller, michal.valient
#lockdown nick.whiting

#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16141209 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)
#ROBOMERGE-CONFLICT from-shelf

[CL 16141875 by graham wihlidal in ue5-main branch]
2021-04-28 05:36:47 -04:00
graham wihlidal
30b16a59f4 Do not skip InitDynamicData result if called from geometry collection initialization. Fixes corrupt rendering in TM-ChaosDestruction.
#rb trivial
[FYI] michal.lentine, brice.criswell
#lockdown nick.whiting
#jira UE-114231

#ROBOMERGE-SOURCE: CL 16107943 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16107947 by graham wihlidal in ue5-main branch]
2021-04-24 04:37:11 -04:00
brett miller
398661ca53 Fracture Tool
-- Removes Strip tool and fixed Validate tool to refresh Nanite geometry correctly.

#jira UE-113611
#rb brice.criswell
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16079452 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16079465 by brett miller in ue5-main branch]
2021-04-21 15:32:56 -04:00
graham wihlidal
ba3a7bf41e Rewrite of UGeometryCollection::InitDynamicData()
* Implemented thread safe object pool / free list allocator (FGeometryCollectionDynamicDataPool)
 * Added Chaos stats for total transforms and changed transforms
 * Removed TransformsAreEqual mechanism that caused full transform updates to occur unnecessarily for 2 subsequent frames, as the state wasn't stable until the previous 3 frames were stable. This was incredibly innefficient for GPUScene, etc..
 * InitDynamicData now returns the data allocation (which can be null if not dynamic or if no transforms have changed), users of this now check if it's available, and either skip or fall back to the static/rest path otherwise
 * Cleaned up some code paths by combining them with similar passes
 * Removed tons of allocations, including heavy allocations/memcopies of transform data, even on stable frames (which were immediately deallocated right after allocation and setup of the dynamic data)
 * Saves ~0.5 to 1.0ms of CPU time in heavy scenes
 * Saves ~0.5ms of GPU time doing far less GPUScene updates
 * Main optimization around this refactor is forthcoming in a followup CL (avoid calling MarkRenderTransformDirty in TickComponent).

#rb brett.miller, brice.criswell
#lockdown nick.whiting
[FYI] brian.karis, rune.stubbe
#jira UETOP-1088

#ROBOMERGE-SOURCE: CL 16059409 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16061411 by graham wihlidal in ue5-main branch]
2021-04-20 10:45:04 -04:00
brice criswell
3b557eb218 Geometry Collection : Render Bounds
- Fix to an indexing error when the bounds are setup on the FNaniteGeometryCollectionSceneProxy, and a transform error when updating the instance bounds.

#jira UE-113611
[FYI] brett.miller, graham.wihlidal
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16057336 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16061147 by brice criswell in ue5-main branch]
2021-04-20 10:31:10 -04:00