Sean Harmer
30 results
This is the second part of an in-depth look at improving the visual quality and computational throughput of systems with OpenGL from a KDAB expert and the maintainer of Qt 3D, writing for the USA's premium magazine for embedded computing: RTC magazine.
This is the first part of an in-depth look at improving the visual quality and computational throughput of systems with OpenGL from a KDAB expert and the maintainer of Qt 3D, writing for the USA's premium magazine for embedded computing: RTC magazine.
Safety critical drawing with OpenGL SC
Main sticking points when migrating OpenGL ES software to functionally safe OpenGL SC
This paper outlines the sticking points migrating from OpenGL ES to OpenGL SC, with a summary of the code affected, the rationale for each change, and workarounds.
Vulkan is a powerful new 3D graphics API from the Khronos Group, the same consortium that developed its spiritual predecessor, OpenGL and other related standards. Like OpenGL, Vulkan targets high-performance real-time 3D graphics applications such as games and interactive media, but offers higher performance and lower CPU usage, much like Direct3D 12 and Metal. This whitepaper, written in 2016 by Dr Sean Harmer, offers a fascinating quick-start primer on the nine things you need to know about this shiny new API.
Physically based rendering (PBR) emulates the interaction between light and materials and is a trend in real-time rendering. It offers developers more realistic computer generated imagery and is fast becoming a standard in the gaming world. This paper, written in 2016 by Dr Sean Harmer, offers an exhilarating ten-minute guide to the essentials.
Recap Recall that in Part 1 we discussed the differences between OpenGL and Vulkan when it comes to the fixed function parts of the graphics pipeline. We looked at how OpenGL's use of a left-handed set of coordinate axes for clip-space meant that projection matrices for OpenGL also incorporate a z-axis flip to switch from […]
Introduction When someone with an OpenGL background begins using Vulkan, one of the very common outcomes - beyond the initial one of "OMG how much code does it take to draw a triangle?" - is that the resulting image is upside down. Searching the web for this will give many hits on discussions about coordinate […]
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
22 June 2023
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 […]
Background of Shaders One particular facet of modern graphics development that is often a pain - even for AAA games -- is shader variants! If you have bought an AAA game in recent years and wondered what the heck it is doing when it says it is compiling shaders for a long time (up to […]
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 […]
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, […]
In the first blog in this series, I showed how we solved the original problem of how to use mmap() to load a large set of data into RAM all at once, in response to a request for help from a bioinformatics group dealing with massive data sets on a regular basis. The catch in […]
A few months ago, we received a phone call from a bioinformatics group at a European university. The problem they were having appeared very simple. They wanted to know how to usemmap() to be able to load a large data set into RAM at once. OK I thought, no problem, I can handle that one. […]
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 […]
Introduction Qt 3D has a flexible and extensible architecture that allows us to easily add our own new functionality to it without disrupting the existing features. The functionality of Qt 3D is divided among so-called aspects, each of which encapsulates a particular subject domain such as rendering, input, or animation. This short series of articles […]
Qt 3D Animation Easter Teaser
Using Blender and Qt 3D in Qt 5.9 to create, texture, and animate a model
As an Easter treat here is a quick taster of some of the animation goodies coming to Qt 3D along with Qt 5.9. In this post we will briefly outline the steps needed to create a simple Qt 3D application and the assets it uses to produce this little animation: The basic steps are: Create […]
Physics Based Rendering (PBR) is the latest and greatest trend in real-time rendering yielding much more visually believable images than the traditional Phong or ad-hoc lighting models. The underlying concept is that the shaders should use physical principles in the encoded models - chief of which are conservation of energy and the Fresnel effect. PBR […]
KDAB is pleased to announce that the Qt 5.5.0 release includes a Technology Preview of the Qt3D module. Qt3D provides a high-level framework to allow developers to easily add 3D content to Qt applications using either QML or C++ APIs. The Qt3D module is released with the Technology Preview status. This means that Qt3D will […]
OpenGL with Qt 5
9 March 2015
Abstract: Qt5 introduces better support for OpenGL from the QPA/Lighthouse abstraction, through a new set of OpenGL classes up to QtQuick 2 and Qt3D. OpenGL is also very often used for games and as the central content widget in desktop applications. With the advent of QtQuick 2 it is now easy to write entire user […]