BRE Architecture Series Part 11 – Ambient Occlusion Pass

In this opportunity, we are going to talk about the ambient occlusion pass. Its previous pass is GeometryPass and its next pass is EnvironmentLightPass. You can check BRE Architecture Series Part 7 – Geometry Pass and BRE Architecture Series Part 8 – Environment Light Pass. Before giving more details we are going to talk about ambient occlusion.

Continue reading “BRE Architecture Series Part 11 – Ambient Occlusion Pass”

BRE Architecture Series Part 10 – Tone Mapping Pass and Post Process Pass

In this opportunity, we are going to talk about tone mapping pass and post process pass. Before ToneMappingPass we have SkyBoxPass and just later is PostProcessPass that is the last one (at least at the time of writing this article). You can check BRE Architecture Series Part 9 – Skybox Pass. Before giving more details we are going to talk a little about tone mapping.

Continue reading “BRE Architecture Series Part 10 – Tone Mapping Pass and Post Process Pass”

BRE Architecture Series Part 9 – Skybox Pass

In this opportunity, we are going to talk about the skybox pass. Its previous pass is EnvironmentLightPass and its next pass is ToneMappingPass. You can check BRE Architecture Series Part 8 – Environment Light Pass and BRE Architecture Series Part 10 – Tone Mapping Pass and Post Process Pass. Before giving more details we are going to talk a little about skybox mapping.

Continue reading “BRE Architecture Series Part 9 – Skybox Pass”

BRE Architecture Series Part 6 – Render Manager and Command List Executor

In this opportunity, we are going to talk about one of the most important components in BRE: the RenderManager. It is a class that inherits from tbb::task and it runs in its own thread. It has several responsibilities:

  • Resource creation
  • Pass initialization and execution
  • Camera update
  • Frames presentation and synchronization

Continue reading “BRE Architecture Series Part 6 – Render Manager and Command List Executor”

BRE Architecture Series Part 2 – Managers

In this opportunity, we are going to see the “managers” of BRE. The managers are static classes (i.e. all its methods and member variables are static). My intention was to have global access and do not need to create instances to use them. There is always a battle between using classes with global access vs restricting its scope the more possible and pass instead instances as function parameters. While there are certain cases that I consider this is correct, I prefer to avoid growing the number of parameters in functions. For example, if I have a function that loads scenes, for example, LoadScene() and that uses the Manager1, Manager2, and Manager3, in my opinion, it is better to have the following implementation

Continue reading “BRE Architecture Series Part 2 – Managers”

Create a website or blog at WordPress.com

Up ↑