ADDED UE-14356 HLOD: Print user friendly message if you try build and meshes don't have have LODs
ADDED MergeStaticMeshComponets to MeshUtilities needed for next CHANGE
ADDED HLOD preview build step for maps, this only builds the clusters for previewing the settings
ADDED SphereComponent now takes into account min and max drawing distances
ADDED Global forward declares and removed local ones from HierarchicalLOD.h
ADDED Visualization to LODActor class, uses USphereComponent to render its bounds
ADDED IsPreviewActor flag to LODActor class, if true during cluster generation DrawSphereComponents bounds will be used instead of LODActor's
ADDED vertex duplication removal on import
ADDED vertex/index buffer cache optimization on import
CHANGED World.h now forward declares HierarchicalLODBuilder to minimize (re)compile time
CHANGED While building/merging actors HLOD system now takes the orginal staticmesh from previously merged LODActors, this to enable retrieving the correct LOD per mesh (related to UE-15398)
CHANGED HLOD Cluster generation process, now takes into account HierarchicalLODVolumes to exclude actors from cluster generation
CHANGED Renamed CalculateRawMeshTangents to ExtractMeshDataForGeometryCache
FIXED Crash where a nullptr actor was added to actors list for > LOD0 clusters
FIXED Bound creation for actor within a cluster used FVector.Size(), now used FVector.AbsMax()
MOVED FLODCLuster structure into seperate header and cpp file
[CL 2617884 by Jurre DeBaare in Main branch]
ADDED Support for importing GeometryCache assets from Alembic files
ADDED CalculateRawMeshTangets function that only calculates the tangents without building the RawMesh
[CL 2591762 by Jurre DeBaare in Main branch]
- Renamed DesiredBoundSize to DesiredBoundRadius - more clear and it implies sphere
- MergeSetting is now exposed if you decide not to simplify
- Shrink after all done so that we don't use that reserved mass memory
[CL 2530639 by Lina Halper in Main branch]
- Added build of UseLOD
- This allows user to merge actor using certain LOD as base
#code review: Dmitriy.Dyomin
[CL 2521575 by Lina Halper in Main branch]
- Made sure saving/loading works fine
- Packages are not created internally for merge actor if Outer exists - in this case, map
- It won't be visible in CB
#code review: Dmitriy.Dyomin
[CL 2521472 by Lina Halper in Main branch]
* Distance field building is now asynchronous and stored in the DDC separately from static mesh data.
* Added OcclusionMaxDistance and Contrast properties to Movable sky light
* Using the GBuffer normal instead of the generated distance field normal, fixes artifacts on two-sided materials and between modular pieces. Also saves about .7ms / 4.5ms
* Points in the distance field are only considered 'inside' the mesh if > 50% of all rays traced hit a backface. Most meshes can have a valid distance field generated with this heuristic. Meshes without a distance field representation can receive occlusion.
* Fortnite two-sided foliage with world position offset animation works fine now
* Using the resulting bent normal for diffuse lighting, improves consistency in occluded corners
* Resulting bent normal is also used to occlude skylight specular using an approximate cone-cone intersection, prevents leaking where SSR is not available
* Fixed stationary skylights not getting lightmap mixing
* Reflection captures now work with the movable skylight, which adds its diffuse contribution to IndirectIrradiance so their lightmap mixing works
* Added new show flag to visualize mesh distance fields, which ray traces through the distance fields and gives a sense of their shape
[CL 2276435 by Daniel Wright in Main branch]
World Browser: LOD maps generator now correctly handles maps under SC
ProxyMesh utilitiy now produces assets in a separate packages or in one single package
ProxyMesh and MergeActors utilities now use more consistent names for a produced assets (demolet naming conventions)
[CL 2104291 by Dmitriy Dyomin in Main branch]
* Provides mid-range stable AO for dynamic rigid meshes
* Movable sky lights are now supported, and distance field AO is used for shadowing Movable sky lighting from dynamic scenes
* Static meshes are preprocessed into signed distance field volumes at mesh build time when the r.AllowMeshDistanceFieldRepresentations project setting is enabled
* Non-uniform scaling does not work with this method (mirroring is fine), animating through world position offset also causes artifacts as the two representations diverge
* Occlusion is computed along cones to reduce over-shadowing, object distance fields are operated on directly (no hierarchy) to obtain enough resolution to prevent leaking, visibility traces are done with cone stepping to allow better parallelization, and shading is done adaptively in space and time using the surface cache.
[CL 2093556 by Daniel Wright in Main branch]