Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The best way to get insight of how GPU work is to try to adapt your code for par
### Vulkan/DirectX12

At this point you should be quite familiar with graphic API and can implement some basic algorithms in graphics. From here you can move forward to more advanced APIs, like Vulkan, DirectX12 or Metal, which are positioned as industry standard in most companies which focus on gamedev/CGI. It does not actually matter a lot which API from these three you choose, as they are all quite simular and it does not take much time to switch from one to another. In this guide we suggest to stick with Vulkan, because it is cross-platform, have lots of great tutorials and materials and introduce most of the graphic API concepts which you potentially may encounter while working with any other graphic API.
As you already have an OpenGL renderer, a good idea will be to port it to Vulkan API (or maybe support both APis). To begin with, we suggest to follow [Intel's Vulkan guide](https://software.intel.com/content/www/us/en/develop/articles/api-without-secrets-introduction-to-vulkan-preface.html), with assist of some additional resources, like [`Vulkan Engine Guide`](https://vkguide.dev/) and [`Writing an efficient Vulkan renderer` by Zeux](https://zeux.io/2020/02/27/writing-an-efficient-vulkan-renderer/). During development you will definitely encounter some problems which may seem hard to deal with, such as barrier placement, descriptor allocation, render pass manegement. As they are quite common, people have already come up with some good solid solutions, like [render-graph based rendering](https://themaister.net/blog/2017/08/) and [hybrid rendering](https://media.contentapi.ea.com/content/dam/ea/seed/presentations/wihlidal-halcyonarchitecture-notes.pdf).
As you already have an OpenGL renderer, a good idea will be to port it to Vulkan API (or maybe support both APis). To begin with, we suggest to follow [Intel's Vulkan guide](https://software.intel.com/content/www/us/en/develop/articles/api-without-secrets-introduction-to-vulkan-preface.html), with assist of some additional resources, like [`Vulkan Engine Guide`](https://vkguide.dev/) and [`Writing an efficient Vulkan renderer` by Zeux](https://zeux.io/2020/02/27/writing-an-efficient-vulkan-renderer/). During development you will definitely encounter some problems which may seem hard to deal with, such as barrier placement, descriptor allocation, render pass management. As they are quite common, people have already come up with some good solid solutions, like [render-graph based rendering](https://themaister.net/blog/2017/08/) and [hybrid rendering](https://media.contentapi.ea.com/content/dam/ea/seed/presentations/wihlidal-halcyonarchitecture-notes.pdf).
So, all in all, the main goal for your at this stage is to create a high-performance, low overhead rendering framework with convinient to use interface. It will be both a good pet project for your graphics developer resume and an excellent sandbox with lots of opportunities for further experimentations.

## Graphic API
Expand Down