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 an 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).
BRE is a rendering framework or engine which purpose is to have a codebase on which develop techniques related to computer graphics and also to apply the stuff I learn about DirectX 12.
In the following list of articles, that will be constantly updated, you can read about its architecture, techniques and other topics.
Source Code and Videos
The source code is stored in GitHub, in this repository. You can see BRE in action the following videos