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 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”

BRE Architecture Series Part 1 – Overview

Many years ago, I chose to study Computer Sciences because I always knew I wanted to work in the video games industry or something related with that. First, I learned the C programming language in the university, and then I learned C++ reading books because in GameDev forums and other web pages mentioned it was the most used programming language in the AAA video games industry. Also, I read some suggestions in Game Development Magazine about that specialization is very important in that industry too. That is why I began with artificial intelligence first, reading Matt Buckland’s books, but then I decided that computer graphics was the area that I most enjoyed. At that moment, I bought some books and read tutorials about DirectX 9.0c. In addition to reading the theory about computer graphics and DirectX API, and making some basic demos, I always wanted to write my own rendering engine. I did not want to make a complete game engine to make games, but a rendering engine to make interactive 3D application where I can develop state of the art computer graphics techniques. The first try was with DirectX 11, but at that time I already heard about DirectX 12 and the paradigm change it was going to be. That is why I decided to begin from scratch with DirectX 12. I am not going to mention all the advantages and complexities of DirectX12 because they are very well known, but the learning curve is much more smooth in DirectX 11 than in DirectX 12. When at last I had a general understanding of this new API, I began to develop BRE (which stands for Bertoa Rendering Engine).

Continue reading “BRE Architecture Series Part 1 – Overview”

Create a website or blog at WordPress.com

Up ↑