View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004706 | NoesisGUI | Unreal | public | 2026-01-15 11:13 | 2026-01-20 10:56 |
| Reporter | JinFox | Assigned To | hcpizzi | ||
| Priority | normal | Severity | major | ||
| Status | resolved | Resolution | fixed | ||
| Product Version | 3.2.10 | ||||
| Target Version | 3.2.11 | Fixed in Version | 3.2.11 | ||
| Summary | 0004706: [3.2.10 Unreal] World UI sample has some issues of Culling and positioning | ||||
| Description | Hello, 2- A bit rarer but happens often after several play/Stop on Play in Editor the positioning logic seems to be wrong and do not follow the actor it is attached to upon moving the player pawn (see WorldUIBUGPositioning1.gif. I had to compress those gif quite a bit to make them small enough but I remain available to send you a video if need be. | ||||
| Attached Files | |||||
| Platform | Any | ||||
|
We've identified the issue. It's all in plugin code, so I've attached a patch for it. It will be fixed in 3.2.11. 4706.patch (3,160 bytes)
Index: NoesisInstance.cpp
===================================================================
--- NoesisInstance.cpp (revision 16499)
+++ NoesisInstance.cpp (revision 16500)
@@ -362,7 +362,6 @@
RenderDevice->SetScene(Scene);
RenderDevice->SetRHICmdList(&RHICmdList);
RenderDevice->SetGammaAndContrast(EngineGamma, SlateContrast);
- Renderer->SetRenderRegion(0.f, 0.f, Right - Left, Bottom - Top);
if (WithViewProj)
{
if (IsMobileMultiView || IsInstancedStereo)
@@ -390,10 +389,6 @@
const auto ViewFamily = View->Family;
ViewRect = View->ViewRect;
- Left = ViewRect.Min.X;
- Top = ViewRect.Min.Y;
- Right = ViewRect.Max.X;
- Bottom = ViewRect.Max.Y;
Scene = ViewFamily->Scene;
WorldTime = ViewFamily->Time;
IsMobileMultiView = View->bIsMobileMultiViewEnabled && View->StereoPass == EStereoscopicPass::eSSP_PRIMARY;
@@ -418,7 +413,7 @@
auto RightEyeViewProjectionMatrix = InstancedView->ViewMatrices.GetViewProjectionMatrix();
RightEyeViewProj = UnrealToNoesisViewProj(RightEyeViewProjectionMatrix, InstancedRight - InstancedLeft, InstancedBottom - InstancedTop);
- RHICmdList.SetViewport(Left, Top, 0.0f, View->InstancedStereoWidth, Bottom, 1.0f);
+ RHICmdList.SetViewport(ViewRect.Min.X, ViewRect.Min.Y, 0.0f, View->InstancedStereoWidth, ViewRect.Max.Y, 1.0f);
}
else
#endif
@@ -438,7 +433,7 @@
auto RightEyeViewProjectionMatrix = InstancedView->ViewMatrices.GetViewProjectionMatrix();
RightEyeViewProj = UnrealToNoesisViewProj(RightEyeViewProjectionMatrix, InstancedRight - InstancedLeft, InstancedBottom - InstancedTop);
- RHICmdList.SetStereoViewport(Left, InstancedLeft, Top, InstancedTop, 0.0f, Right, InstancedRight, Bottom, InstancedBottom, 1.0f);
+ RHICmdList.SetStereoViewport(ViewRect.Min.X, InstancedLeft, ViewRect.Min.Y, InstancedTop, 0.0f, ViewRect.Max.X, InstancedRight, ViewRect.Max.Y, InstancedBottom, 1.0f);
}
}
else
@@ -446,7 +441,7 @@
auto MonoViewProjectionMatrix = View->ViewMatrices.GetViewProjectionMatrix();
ViewProj = UnrealToNoesisViewProj(MonoViewProjectionMatrix, Right - Left, Bottom - Top);
- RHICmdList.SetViewport(Left, Top, 0.0f, Right, Bottom, 1.0f);
+ RHICmdList.SetViewport(ViewRect.Min.X, ViewRect.Min.Y, 0.0f, ViewRect.Max.X, ViewRect.Max.Y, 1.0f);
}
// We shouldn't use the versions of Render that use ViewProj if it's invalid, but we still need to call Render
@@ -1093,8 +1088,12 @@
ENQUEUE_RENDER_COMMAND(FNoesisInstance_Tick3DWidget_UpdateSlateElement)
(
- [NoesisSlateElement = NoesisSlateElement, Scene = Scene, WorldTime = WorldTime](FRHICommandListImmediate& RHICmdList)
+ [NoesisSlateElement = NoesisSlateElement, Scene = Scene, WorldTime = WorldTime, Left = Left, Top = Top, Right = Left + Width, Bottom = Top + Height](FRHICommandListImmediate& RHICmdList)
{
+ NoesisSlateElement->Left = Left;
+ NoesisSlateElement->Top = Top;
+ NoesisSlateElement->Right = Right;
+ NoesisSlateElement->Bottom = Bottom;
NoesisSlateElement->Scene = Scene;
NoesisSlateElement->WorldTime = WorldTime;
NoesisSlateElement->UpdateRenderTree();
|
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-01-15 11:13 | JinFox | New Issue | |
| 2026-01-15 11:13 | JinFox | File Added: BUGCulling-3-2-10.gif | |
| 2026-01-15 11:13 | JinFox | File Added: WorldUIBUGPositioning1.gif | |
| 2026-01-15 11:19 | sfernandez | Assigned To | => hcpizzi |
| 2026-01-15 11:19 | sfernandez | Status | new => assigned |
| 2026-01-15 11:19 | sfernandez | Product Version | 3.2 => 3.2.10 |
| 2026-01-15 11:19 | sfernandez | Target Version | => 3.2.11 |
| 2026-01-19 17:54 | hcpizzi | Note Added: 0011706 | |
| 2026-01-19 17:54 | hcpizzi | File Added: 4706.patch | |
| 2026-01-19 17:54 | hcpizzi | Status | assigned => resolved |
| 2026-01-19 17:54 | hcpizzi | Resolution | open => fixed |
| 2026-01-19 17:54 | hcpizzi | Fixed in Version | => 3.2.11 |