Today, I'm going to write a class that represents a texture resource in the low-level render engine. We can use this class to read form texture data while rendering objects. In addition, we can also use it to create textures that can be written to by the graphics pipeline. For example, we can use i…
Game Engine Programming 033.2 - Use the free-list with utl::vector and std::vector | C++ Game Engine
Previously, I wrote a free-list container which had a vector as its buffer and I ran into the problem of conflicting destruction of items which made it necessary to write our own vector container that has an extra template parameter to control whether the items should be destructed upon deletion or…
Today's video is less related to game engine programming and more about creating utility functions that we need in order to organize the data within the engine. Of course, it's hard to go about without good containers and as we have seen in the previous episodes we're desperately in need of having …
In the last video, I made a render surface class that uses a DXGI swap chain and today I'm going to integrate that class into our low-level renderer, so that we can create render surfaces and use them for displaying each frame.
?(Red Episode)
✅ Support Game Engine Series https://patreon.c…
Right now we're in the middle of implementing a DirectX 12 renderer and so far we've created a d3d12 device, a command structure to submit work to GPU, and we spent the last episode writing a descriptor heap allocator which helps us to easily place descriptors in descriptor heaps. Now we've got eno…
In the last video we started implementing an allocator class for managing descriptor heaps. After writing the initialize and allocate functions, we ran into a problem caused by the fact that resources and descriptors can't be removed in an immediate fashion, because we're using a multi-frame render…
In this new episode, I'm going to write an allocator class that keeps track of resource descriptors for our graphics resources. I'll start with a high-level explanation of resources, descriptors and descriptor heaps and will continue implementing the allocator class. (Red Episode)
Support Game Engin…
In the last video, we set up a command queue, command list and a set of command allocators to be used for multiple frame buffers in such a way that enables the CPU and GPU to work in parallel. However, because we have a limited number of frame buffers, we need to synchronize CPU and GPU. In this vi…
Last time, we set up the graphics engine architecture, consisting of a high-level renderer and one or more low-level renderers. We also started implementing a DirectX 12 renderer and, so far, we successfully initialized a Direct3D device that represents the graphics card. In this episode, we'll be …
Previously, I set up the high-level renderer and defined how it would interact with a low-level renderer through an interface. I also added the required headers for DirectX 12 so that we can access its API. Today, I'm going to start with writing the initialization and shutdown code for the D3D12 lo…