Showing how to derive the projection matrix, this second part of the series teaches how to create perspective projection matrices for Vulkan and adapt them to your needs.
Author Archives: Sean Harmer
Projection Matrices with Vulkan – Part 1 How transformations differ from OpenGL to Vulkan
This post explains the difference between OpenGL and Vulkan transformations and how to adapt code to get the desired results, plus actually understanding what's going on.
KDGpu v.0.1.0 is released a Vulkan wrapper to make modern graphics easier
We’re pleased to announce we’ve added a new library, KDGpu, to the arsenal of tools we invent to make our lives easier – and then share with you on KDAB’s GitHub. Who is this for? If you want to become more productive with Vulkan or learn the concepts of modern explicit graphics APIs, then KDGpu […]
Synchronization in Vulkan Learn about what Vulkan needs us to synchronize and how to achieve it
An important part of working with Vulkan and other modern explicit rendering APIs is the synchronization of GPU/GPU and CPU/GPU workloads. In this article we will learn about what Vulkan needs us to synchronize and how to achieve it. We will talk about two high-level parts of the synchronization domain that we, as application and […]
Shader Variants Explosions of the Combinatorial Kind
If you have bought an AAA game in recent years and wondered what it is doing when it says it is compiling shaders for a long time (up to an hour or more), then this blog will explain it a little.
Introducing KDBindings Reactive Programming and Data Binding in C++
All Qt developers should know about signals, slots, and properties. Those of you who have used QML will know that property bindings are super useful and cool. Bindings allow us to write more reactive and declarative style code. However, they are only available within QML, which means there are no compile time errors when you […]
Little Trouble in Big Data – Part 3 Dealing with resource bottlenecks
In the previous two blogs in this series I showed how solving an apparently simple problem about loading a lot of data into RAM using mmap() also turned out to require a solution that improved CPU use across cores. In this blog, I’ll show how we dealt with the bottleneck problems that ensued, and finally, […]
Little Trouble in Big Data – Part 2 improving CPU utilization across cores
In Part 1 of this series we solved the problem of using mmap() to load large set of data into RAM all at once. The catch was that it still took too long. In this blog, I describe how we solve this.
Little Trouble in Big Data – Part 1 how to use mmap() to load a large data set into RAM
We got a call from a bioinformatics group at a European university. The problem appeared simple, how to usemmap() to load a large data set into RAM all at once. OK, no problem I thought...
Writing a Custom Qt 3D Aspect – part 2 Setting up the backend and communications
Introduction In the previous article we gave an overview of the process for creating a custom aspect and showed how to create (most of) the front end functionality. In this article we shall continue building our custom aspect by implementing the corresponding backend types, registering the types and setting up communication from the frontend to […]