Skip to content

Stencil tests for GUI elements #1538

@heinezen

Description

@heinezen

This could be a rather small optimization for the renderer. The idea is to save rendering time by not rendering pixels in the game world that would be hidden by GUI elements anyway. To do this, we would create a stencil mask from opaque elements in the GUI and apply this mask in all other render passes. Doing this allows the GPU to discard fragments masked by the stencil mask early and save some time during rendering as a result.

The time save depends on a few conditions. For example, the stencil test gets more effective if the GUI covers large parts of the screen and the elements don't change positions. However, this should be at least the case for the old AoE1/AoE2/SWGB GUIs.

Tasks:

  • Enable stencil tests in renderer
  • Create stencil mask from GUI texture
  • Upload stencil mask to renderer in other render stages (skybox, terrain, world, ....)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: rendererConcerns our graphics rendererarea: uiRelated to the graphical user interface (Qt)improvementEnhancement of an existing componentlang: c++Done in C++ code

    Projects

    Status

    🔖 TODO

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions