- useful to gather shader bindings to evaluate materials in callable shaders.
- similar to how it supports compute and hit group shaders.
#rb yuriy.odonnell
#preflight 6287503ac057ee6e23f2f8dc
[CL 20292265 by tiago costa in ue5-main branch]
- raytracing instance culling doesn't apply far field offset to view origin (FRayTracingCullPrimitiveInstancesClosure::operator()).
- also don't need to refresh cached raytracing instances when far field offset changes anymore.
#preflight 6273d7e46a646b1d153e8e7d
#rb Patrick.Kelly
[CL 20057351 by tiago costa 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]
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 technique is guarded with by a projected settings. It is currently only supported on PC Dx12. This is the initial step for fine grain/per-pixel sorting.
#rb sebastien.hillaire
#jira none
#preflight 623a1884bc1cf2803867d8f8
[CL 19470340 by charles derousiers in ue5-main branch]
- Useful for procedural raytracing geometries.
#rb aleksander.netzel
#preflight 6230a67c050dc69468ba0b33
[CL 19386052 by tiago costa in ue5-main branch]
- Check that both InstanceTransforms and InstanceTransformsView are empty
#rb none
#preflight none
#jira none
[CL 19306476 by tiago costa 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]
Switched FDynamicBVH to use greedy insertion because branch and bound perf significantly degrades with heavily overlapped leaves.
Added closest point queries using branch and bound.
FBounds is now templated as TBounds.
#rb graham.wihlidal
#robomerge FNNC
#preflight 6216dbf9104496cff8abfc36
[CL 19107993 by Brian Karis in ue5-main branch]
#rb Graham.Wihlidal
#preflight 620ed139e8554a6f64ef8115
#jira UE-141348
#ushell-cherrypick of 19048514 by swarm
[CL 19061926 by graham wihlidal in ue5-main branch]
This enables the use of path tracing for the material editor and static mesh editors.
#rb Juan.Canada
#preflight 620c5818492761fc5ca38895
[CL 19009187 by chris kulla in ue5-main branch]
Context:
- There was a toggle in editor to assign primitives to FarField. However we currently only support HLODs in FarField.
- Only primitives with ERayTracingPrimitiveFlags::CacheInstances were getting mask set to RAY_TRACING_MASK_FAR_FIELD and ERayTracingPrimitiveFlags::FarField when assigned to FarField.
- Code path that gets instance transform from GPU scene when building RT instance buffer didn't apply FarField offset.
Change:
- Remove Editor toggle to control bRayTracingFarField assignment. HLODBuilder internally sets the flag when necessary.
- Don't modify ERayTracingPrimitiveFlags in FPrimitiveSceneInfo::UpdateCachedRayTracingInstance(...)
- Apply ERayTracingPrimitiveFlags::FarField in FPrimitiveSceneProxy::GetCachedRayTracingInstance(...)
- BuildRayTracingInstanceMaskAndFlags(...) applies RAY_TRACING_MASK_FAR_FIELD when requested.
- Apply FarField offset to GPUScene instances when building RT instance buffer.
#jira UE-141023
#rb yuriy.odonnell
#preflight 620394474c05b86e6d60770e
#lockdown juan.canada
#ROBOMERGE-AUTHOR: tiago.costa
#ROBOMERGE-SOURCE: CL 18916037 in //UE5/Release-5.0/... via CL 18920345 via CL 18922711
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)
[CL 18923433 by tiago costa in ue5-main branch]
- We were using ERayTracingPrimitiveFlags::CacheMeshCommands to identify non-nanite static meshes. This flag was set in CacheRayTracingPrimitive<...>(...) along with ERayTracingPrimitiveFlags::ComputeLOD.
- When UpdateCachedRayTracingInstances() is called (for example due to FarField ReferencePos changing) that primitive flag override is lost and non-nanite static meshes stop being added to RaytracingScene.
Fix:
- Stop overriding PrimitiveRayTracingFlags in CacheRayTracingPrimitive<...>(...).
- Added new flag ERayTracingPrimitiveFlags::StaticMesh to identify IsRayTracingStaticRelevant() instances instead of hijacking ERayTracingPrimitiveFlags::CacheMeshCommands.
- Apply ERayTracingPrimitiveFlags::StaticMesh | ERayTracingPrimitiveFlags::ComputeLOD when necessary in FPrimitiveSceneProxy::GetCachedRayTracingInstance(...)
#jira UE-141118, UE-141023
#rb yuriy.odonnell
#preflight 61fbd9ae176256ec4f6ff575
#lockdown michal.valient
#ROBOMERGE-AUTHOR: tiago.costa
#ROBOMERGE-SOURCE: CL 18844466 in //UE5/Release-5.0/... via CL 18844471 via CL 18844741
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18844747 by tiago costa in ue5-main branch]
- Only keep default codepaths (dont cache local transform, use lazy update)
#rb yuriy.odonnell
#preflight 61fa8ad3cc4b837d9c5d2f44
[CL 18825564 by tiago costa in ue5-main branch]
- can be used to track information about a primitive over time without needing to track changes in PackedPrimitiveIndex
- will have the same high-water mark to packed index, but will persist for longer, potentially (allocator picks new from the front).
- Add PersistentPrimitiveIndex to FPrimitiveSceneData / SceneData.ush, to enable access on the GPU
- Add FSpanAllocator, an incremental improvement over FGrowOnlySpanAllocator - which shrinks as well and has efficient allocation of unit-sized allocations.
#rb rune.stubbe,Krzysztof.Narkowicz
#preflight 61e6b538837b79f7ccdc860f
#ROBOMERGE-AUTHOR: ola.olsson
#ROBOMERGE-SOURCE: CL 18638699 in //UE5/Release-5.0/... via CL 18638708 via CL 18638715
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)
[CL 18638724 by ola olsson in ue5-main branch]
#rb Andrew.Ladenberger
[FYI] aurel.cordonnier
#ROBOMERGE-AUTHOR: simon.orr
#ROBOMERGE-SOURCE: CL 18609420 via CL 18609435 via CL 18609480 via CL 18609498 via CL 18614261 via CL 18614330 via CL 18614369
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)
[CL 18614399 by simon orr in ue5-main branch]