When a "Water Body River" is added to a Scene with a Landscape, eleven Render Targets are allocated for the water rendering. These Render Targets are sized according to the resolution of the Landscape. When determining this size the Render Targets are approximated to the nearest binary power of two. This results in an over correction for Landscape resolutions that are nearer the lower power of two ( e.g. a Landscape resolution of 5121 results in eleven textures at 8192 ) and consumes unnecessary memory as a result.
The licensee believes that change list 36523201 has potentially introduced this regression.
The licensee has noted that adding "render" as a dependency and inserting the following code snippet before the return statement of the AWaterBrushManager::RenderLayer_Native function in WaterBrushManager.cpp can mitigate the issue.
FTextureRenderTargetResource* RenderTargetResource = ReturnRT->GameThread_GetRenderTargetResource();
ENQUEUE_RENDER_COMMAND(ResetSceneTextureExtentHistory)(
[RenderTargetResource](FRHICommandListImmediate& RHICmdList)
);
1. Create a landscape with the following settings
a. Section size 255 x 255 quads
b. Sections per component 2 x 2
c. Number of Components 10 x 10
2. Enable the Water System Plugin
3. Add a "Water Body River" to the scene
4. select the "Landscape_WaterBrushManager" in the scene Outliner
5. Observe the "Landscape RT Res" value of 8192
6. Observe a spike in RAM and VRAM usage
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-256695 in the post.
0 |
Component | UE - Graphics Tools - Terrain |
---|---|
Affects Versions | 5.5 |
Target Fix | 5.6 |
Fix Commit | 41105785 |
---|
Created | Mar 17, 2025 |
---|---|
Resolved | Mar 27, 2025 |
Updated | Mar 27, 2025 |