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.
Blog Archives
Optimizing and Sharing Shader Structures
When writing large graphics applications in Vulkan or OpenGL, there’s many data structures that need to be passed from the CPU to the GPU and vice versa. There are subtle differences in alignment, padding and so on between C++ and GLSL to keep track of as well. I’m going to cover a tool I wrote […]
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.
FMA Woes
Floating-point math is hard, and compilers will exploit every language loophole to make our FP calculations go faster, sometimes with surprising results.
Efficient Custom Shapes in QtQuick : Shaders
A long time ago, I wrote a post about creating custom shapes in Qt Quick, via the scene-graph APIs. That post covered defining suitable geometry to draw a part of a circle, known also as a ‘sector’, efficiently, since such sectors occur commonly in instrument and vehicle interfaces. I started writing the second part, about […]
Qt 3D Renderer changes and improvements in Qt 6
With Qt 6 well on its way, it’s about time we go over some of the internal changes and optimizations made to Qt 3D for the upcoming release. In a separate article, my colleague Mike Krus has already highlighted the API changes we’ve made in Qt 3D for Qt 6. This post will dive into […]
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 […]
Writing a Custom Qt 3D Aspect – part 1 Extending Qt 3D via Aspects
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:
Safety critical drawing with OpenGL SC The main sticking points when migrating OpenGL ES software to functionally safe OpenGL SC
Bringing software into a safety critical environment can be tricky, especially when using the complex APIs needed for modern 3D graphics. That’s what makes OpenGL SC (Safety Critical) so important: it bridges the gap between beautiful displays and functional safety, while trying to remain as close to existing embedded standards that we all know and love. OpenGL SC will only […]