SFTtech/openage

Stencil tests for GUI elements

Opened this issue · 0 comments

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, ....)