Home
  • English
  • 中文
Home
  • English
  • 中文
  • Get Started

    • Install
    • Hello LGUI
    • Custom Button
    • Use custom font
    • Prefab workflow
    • Interaction
    • Button from scratch
  • Sample Projects

    • Sample Projects
  • Prefab Workflow

    • LGUI Prefab
    • PrefabEditor
    • LGUILifeCycleBehaviour
    • LGUIPrefabInterface
  • Rendering

    • LGUICanvas
    • Screen Space Overlay
    • World Space - UE Renderer
    • World Space - LGUI Renderer
    • LGUI render flow
    • UICanvasGroup
  • Visual Components

    • UIText
    • UIEffect
    • TextAnimation
    • UIBackgroundBlur
    • UIBackgroundPixelate
  • Events

    • LGUIEventDelegate
    • LGUIEventSystem
  • Interaction Components

    • UISelectable component
  • Layout

    • Basic Layout
    • Auto Layout
  • Tween Animation

    • LTween
    • Use LTween for UI element
  • Performance

    • LGUI Stat
  • ReleaseNotes

    • LGUI 3.x
    • LGUI 2.x
  • FAQ

    • Why use prefab?
    • Update project from LGUI2 to LGUI3
    • Project 3d world position to LGUI's screen 2d position
    • Deproject LGUI's screen position to world
    • Use custom material for UI elements
    • Disable interaction component
    • Find Child by DisplayName
    • Get actor or component inside prefab
    • Anti-aliasing

LGUI render flow

Prepare render resource (game thread)

LGUIManagerActor is responsible for updating all LGUICanvas -> LGUICanvas to update all UIItem and UIBaseRenderable (renderable objects) -> UIBaseRenderable to create and update UIGeometry, UIPostProcessRenderProxy -> LGUICanvas to collect and create grids, textures, materials, merge drawcall -> LGUICanvas to create drawcall Rendering resources.

Rendering (rendering thread)

Screen space UI and world space UI rendered by LGUIRenderer

The LGUIRenderer renderer is extended from the ViewExtension of UE. It performs all rendering in the function XXX_RenderThread of the rendering thread and directly renders to the RenderTarget of the screen. It does not support UE's own post-production, lighting, anti-aliasing, etc.
The rendering process is similar to Slate. Set ViewUniformBuffer -> Specify RenderTarget -> Initialize GraphicsPipelineState -> foreach Drawcall -> Shader/Material -> SetGraphicsPipelineState -> DrawIndexedPrimitive -> foreach Drawcall

World Space UI

The world space UI uses UE's own rendering pipeline, and uses translucent materials by default to support UE's own post-production, lighting, anti-aliasing, etc.

Last Updated:
Contributors: lf2007hf
Prev
World Space - LGUI Renderer
Next
UICanvasGroup