Commit Graph

16 Commits

Author SHA1 Message Date
aidin abedi
21543249dd Fix material baking incorrectly stating that EmissiveColor is baked as sRGB while in reality it's always baked as linear because of the HDR rendertarget.
Please note that this change doesn't actually affect any baking results, because EmissiveColor always reads linear data from its HDR rendertarget regardless of PerPropertyColorSpace. The fix only affects the value returned by FMaterialBakingModule::IsLinearBake for EmissiveColor, which until now has been incorrect due to the missmatch between PerPropertyColorSpace and how EmissiveColor is actually baked.

#jira UE-184310
#review-25298709 @Jason.Nadro
#preflight 6450d1a70e33f2d51d22b142

[CL 25301160 by aidin abedi in ue5-main branch]
2023-05-02 10:11:29 -04:00
sebastien lussier
d5b66a61f2 Material Baking - Added optimized code path when baking a set of meshes with remapped UVs
* In this case, instead of baking each mesh material property to it's own buffer, we can write all the meshes to the same buffer as their UVs are already the final ones that do not overlap
* Memory usage is greatly reduced (in test case with ~300 materials to bake, peak is reduced by 5.5GB)
* A lot faster to process (~2x in most cases) as we are doing a single RT readback per baked material property
* We can also skip the final merge of the baked outputs, as we have a single one

Refactored the material baking module to have both code paths (single output and multi outputs) share as much code as possible

#rb jeanfrancois.dube
#preflight 63eba6e0284e76cdadbecb48

[CL 24226039 by sebastien lussier in ue5-main branch]
2023-02-14 22:23:44 -05:00
sebastien lussier
4f5f06aea0 Added a CRC to the MaterialBaking module, to be able to detect if code (by changing the base key) or setting changes could require an HLOD rebuild
#rb jeanfrancois.dube

[CL 24082386 by sebastien lussier in ue5-main branch]
2023-02-08 16:14:18 -05:00
aidin abedi
7205306d48 Add FMaterialBakingModule::IsLinearBake to determine if a material property is baked to a linear texture or not
#jira none
#review @Jason.Nadro @Kevin.Ortegren
#preflight 63c9795a0225f00e14a99bd8

[CL 23808244 by aidin abedi in ue5-main branch]
2023-01-23 01:21:39 -05:00
aidin abedi
8fe4cdb936 Add support for using material baking to efficiently check UV overlap
#jira UE-131151
#review @Kevin.Ortegren @Massimo.Tristano

(based on PR #8500)
#preflight 63c6c7ff02024f93d861359e

[CL 23739117 by aidin abedi in ue5-main branch]
2023-01-17 11:26:41 -05:00
Kevin Ortegren
be9daf93f6 PR #8499: Add support for transforming normals in material baking from world-space (Contributed by aidinabedi)
#jira UE-131150
#rnx
#rb none
#fyi sebastien.lussier
#preflight 61f3fce3f628752a568a332d

[CL 18770923 by Kevin Ortegren in ue5-main branch]
2022-01-28 09:40:17 -05:00
sebastien lussier
3b200ed189 PR #7916: Lucasfilm: MaterialBaking: Fixes and improvements for material baking (Contributed by lflecunneen)
- Fixes for baking decal materials
- Option to return full HDR emissive color value
- Option to make all values linear by default, except for colors
#jira UE-115192
#rb sebastien.lussier

#ushell-cherrypick of 16289332 by ben.ingram
#ushell-cherrypick of 16373665 by sebastien.lussier
#ushell-cherrypick of 16413094 by sebastien.lussier

#ROBOMERGE-SOURCE: CL 16480669 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v823-16466674)

[CL 16480676 by sebastien lussier in ue5-main branch]
2021-05-27 00:01:31 -04:00
Sebastien Lussier
c5173400fa MaterialBaking module - cleanup cached material proxies upon module shutdown & GC collect passes
#rb patrick.enfedaque
#robomerge Release-5.0-EarlyAccess

[CL 15419698 by Sebastien Lussier in ue5-main branch]
2021-02-16 13:37:31 -04:00
Marc Audy
a7f9391231 Merge UE5/Release-Engine-Staging @ 14811410 to UE5/Main
This represents UE4/Main @ 14768117

For ReleaseObjectVersion.h
#lockdown Marcus.Wassmer

[CL 14811440 by Marc Audy in ue5-main branch]
2020-11-24 18:42:39 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
sebastien lussier
ba57adfd4b Edigrating 3 CLs to improve HLOD generation time (faster material baking & mesh merging)
CL 10373564 by danny.couture
Optimize Material Baking (Phase 1)
  - Introduce a mecanism to override the vertex/index buffer allocator used for dynamic meshes
  - Avoid GDynamicMesh non-ticked pools build-up by using our own vertex/index buffer pool during baking
  - Reduce reallocation and incurred soft page faults by reusing a single set of vertex/index buffers big enough for the biggest mesh
  - Preemptively detect if smearing would result in monochrome texture to avoid useless work
  - Shrink smeared monochrome textures during the baking process for huge memory savings
  - Move UV smearing in worker threads to avoid blocking the game thread
  - Required shaders are now built asynchronously
  - Add progress bar for material baking
  - 28m23 [at] 150 GB RAM -> 2m14s [at] 45 GB RAM for 6 channels [at] 512x512 when baking materials on ProxyLOD for DATASET-0008a with DDC empty
#rb Jurre.deBaare, Sebastien.Lussier

CL 10516258 by danny.couture
Optimize Material Baking (Phase 2)
  - Implement pipelining with staging buffers to avoid GPU stalls when reading from render targets
  - Reuse the same prepared FMeshBatch instead of rebuilding it for each draw pass
  - Prepare the RenderItem in advance on other threads to reduce work on the game thread
  - Move the staging surface copy out of the render thread
  - Small vertex and index buffers are not reused to avoid dependency locks when mapping them
  - Fix bug in Canvas Flush_RenderThread found while running HLOD rebuild commandlet on Fortnite
  - Delete old and unused MaterialBakingModule.h from public files
  - 4m44s -> 59s for baking 6 channel [at] 1024x1024 when baking materials on ProxyLOD for DATASET-0008a with shaders already compiled
  - Time spent in Material Baking when rebuilding all HLOD on Apollo_POI_Large_HLOD (Phase 1 + 2 combined)
     - 10m18s -> 2m36s for a first rebuild all in editor with no shaders in DDC (cold)
     - 1m23s   -> 20s for a second rebuild all in editor (warm)
#rb Jeremy.Moore, Sebastien.Lussier

CL 11135986 by sebastien.lussier
Optimized mesh merging
* Added DeletePolygons() & DeleteTriangles methods to FMeshDescription which rely on TSets<> instead of performing costly TArray::AddUnique() calls()
* Parallelized UV generation and avoided duplicate processing of the same mesh+lod pairs
* Optimized FMeshDescriptionOperations::GenerateUniqueUVsForStaticMesh()
* Goes from 100s to 10s in my test case
#rb danny.couture, jeanfrancois.dube, richard.talbotwatkin



#ROBOMERGE-OWNER: sebastien.lussier
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 11206337 via CL 11206341 via CL 11206346
#ROBOMERGE-BOT: (v643-11205221)

[CL 11206493 by sebastien lussier in Main branch]
2020-02-03 11:08:35 -05:00
ryan durand
471d972e62 Updating copyright for Engine Developer.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870584 by ryan durand in Main branch]
2019-12-26 15:32:37 -05:00
sebastien lussier
dd3e62a642 HLOD System - Rebuilding Medium HLODs sometimes results in bad textures
* Fixed stale materials in MaterialProxyPool
* Fixed memory leak
#jira UE-78913
[REVIEW] jeanfrancois.dube
[FYI] bryce.lumpkin


#ROBOMERGE-SOURCE: CL 8126046 via CL 8126053 via CL 8131826
#ROBOMERGE-BOT: (v401-8057353)

[CL 8156535 by sebastien lussier in Main branch]
2019-08-21 08:41:52 -04:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
Ori Cohen
25ae9b5661 Copying //UE4/Dev-AnimPhys to Dev-Main (//UE4/Dev-Main)
(will update this soon)

#lockdown Nick.Penwarden
#rb none

[CL 3502661 by Ori Cohen in Main branch]
2017-06-21 10:25:35 -04:00