Without this when static components are moved in editor they continue to write velocity after they stop moving.
This can be extra bad if the component was snapped to a final location so that it writes a bad velocity.
#preflight 628d547baf76b78af553c18c
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 20357954 via CL 20357959 via CL 20357973
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v948-20297126)
[CL 20359821 by jeremy moore in ue5-main branch]
Tidy up use of FPrimitiveSceneProxy velocity getters.
Now DrawsVelocity() is only for velocity relevance.
And HasDynamicTransform() is for determining if we need to store previous transform state.
VSM caching was using PRIMITIVE_SCENE_DATA_FLAG_DRAWS_VELOCITY so replaced that with PRIMITIVE_SCENE_DATA_FLAG_SHOULD_CACHE_SHADOW which should use the old behavior and can be tweaked in future using ShouldCacheShadow().
A common pattern for determining whether to output velocity now is to check if a previous transform exists, and to OR in AlwaysHasVelocity().
I found some proxy types that don't check for previous transform.
Also I found that the debug physics aggregate types *never* check for previous transform.
These are pre-existing potential bugs for fixing in another pass.
Also I found some proxies that don't currently fill out velocity relevance.
These are pre-existing potential bugs for fixing in another pass.
#preflight 62863f789016c6dd897f1cd2
#fyi andrew.lauritzen
[CL 20279797 by Jeremy Moore in ue5-main branch]
Previously FScene contained an array of RT-shadowed lights which was updated when a light is added/removed.
However, this is incorrect as the light RT shadow state depends on CVars that may be changed dynamically.
The solution is to check if the scene currently contains any RT-shadowed lights during rendering. This is more expensive but robust.
The array of RT-shadowed lights is removed as it was not used beyond checking if it's empty.
#rb juan.canada
#preflight 6271aa653e1f2a9d3a4dd84c
[CL 20041248 by Yuriy ODonnell in ue5-main branch]
Mark mobile directional light UBs as SingleFrame since they are updated every frame and should use ring buffer
#rb none
#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 20038889 via CL 20038910 via CL 20038914 via CL 20038922 via CL 20038926
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20039254 by dmitriy dyomin in ue5-main branch]
* Objects that are in front of camera will be culled if they are closer than MinDrawDistance.
* Controlled by r.RayTracing.Culling.UseMinDrawDistance (disabled by default for now).
#rb Juan.Canada
#preflight 62611dba731f07cd5cc66930
#ROBOMERGE-AUTHOR: aleksander.netzel
#ROBOMERGE-SOURCE: CL 19846165 via CL 19846200 via CL 19846207
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19846535 by aleksander netzel in ue5-main branch]
Local light shadows are supported on mobile forward and deferred, need to enable full depth prepass to generate the ShadowMaskTexture.
Remove the 4 maximum local lights limitation on mobile forward.
Remove the "High Quality Reflection" on mobile forward.
Disable simple lights on mobile forward.
#jira UE-149064
#rb Dmitriy.Dyomin
#preflight 625d17da772cf82d3a6059a6
[CL 19784597 by Wei Liu in ue5-main branch]
This change also remaps the original bEvaluateWorldPositionOffset on SMC into bEvaluateWorldPositionOffsetInRayTracing, because this var was only ever driven by ray tracing specific methods. The original bEvaluateWorldPositionOffset is now used by this more generic API.
Lastly, a new cvar (r.OptimizedWPO) has been added that indicates if the hint should be respected or not (default is false, which means WPO is always active, regardless of hint)
#rb rune.stubbe, marc.audy, derek.ehrman
[FYI] brian.karis, jamie.hayes, ola.olsson, andrew.lauritzen, jian.ru
#preflight 6244a8dcdc6183e3f5f8de98
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 19564957 via CL 19564973 via CL 19564978
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)
[CL 19566743 by graham wihlidal in ue5-main branch]
- Avoid extra copy and upload of transforms.
- Added FRayTracingGeometryInstance::BaseInstanceSceneDataOffset to skip creating an array of instance data offsets when they are continuous.
- Saves around 50MB on CitySample.
#rb yuriy.odonnell
#preflight 6225f85bb97fb949cf3518fa
[CL 19302183 by tiago costa in ue5-main branch]
Rather than performing the change detection on the game thread, perform it only for the rendering primitive that might impact the path tracer. In particular, this avoids updates to the static meshes representing cameras. The camera transforms are handled on a per view basis, which means cameras not being moved will not have their output invalidated.
#jira UE-143951
#preflight 62200f6c943787f1d21ae666
#rb Alejandro.Arango,Simon.Therriault
#lockdown Juan.Canada
#ROBOMERGE-AUTHOR: chris.kulla
#ROBOMERGE-SOURCE: CL 19245026 in //UE5/Release-5.0/... via CL 19249057
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v924-19243027)
[CL 19262938 by chris kulla in ue5-main branch]
Configurable real time capture with respect to cost/latency: sky and cloud captures can be timesliced per face now.
Fixed potential issue in deprecated SetXXX fucntions.
Removed advanced tag from sample count because those are too important to hide by default.
#rb Daniel.Wright
#preflight 62206f4537049be5174a1215
[CL 19239678 by Sebastien Hillaire in ue5-main branch]
* Invalidate Path Traced output when component transforms change (this catches cases that don't re-create a primitive info object)
* Invalidate Path Traced output when light color or intensity changes
* Fix invalidation in a scene only affecting a single view (or view family). Instead of a single boolean, the scene now keeps a counter that ticks on changes and each view remembers the last value of this counter to detect changes.
#jira UE-124715
#rb Ryan.Vance,Juan.Canada
#lockdown Juan.Canada
#preflight 6210149c676ae0301347db71
#ROBOMERGE-AUTHOR: chris.kulla
#ROBOMERGE-SOURCE: CL 19087008 via CL 19092565 via CL 19092634 via CL 19093389 via CL 19101802
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19141734 by chris kulla in ue5-main branch]