AKA: I know what you did last Christmas ! Hello folks, I'd like to share with you a few things that I did during this Xmas. Besides the fact I'll never ever take a vacation before Xmas, because Brasov is a tourist attraction and it was FULL of tourists in that period. I could ski […]
Continuing our blog post series about the rewrite of Qt3D. One of the biggest driving factors behind the design of Qt3D 2.0 is the ability to configure the renderer in order to accommodate custom rendering techniques. In this blog post I will explain how to render a scene in Qt3D with shadows. The complete working […]
An Example of Rendering with Qt3D In the previous article we learned about the requirements and high-level architecture of Qt3D 2.0. In order to put some of this into context and to give you a concrete example of how it looks to draw something in Qt3D using the QML API, we will now briefly show […]
by Sean Harmer of KDAB Back in the days when Qt was owned by Nokia, a development team in Brisbane had the idea of making it easy to incorporate 3D content into Qt applications. This happened around the time of the introduction of the QML language and technology stack, and so it was only natural […]
Introduction Back in the days when Qt was owned by Nokia, a development team in Brisbane had the idea of making it easy to incorporate 3D content into Qt applications. This happened around the time of the introduction of the QML language and technology stack, and so it was only natural that Qt3D should also […]
Introduction Following on from the previous articles on SlideViewer, we shall now investigate another piece of the puzzle towards making SlideViewer usable in practise. Namely, getting the content rendered from our domain specific language and on to the screen or projector for the audience to marvel at. Those of you that have ever presented at […]
This article concludes our series on what is new in Qt 5.1 with respect to OpenGL. Earlier articles in this series are available at: Part 1 Part 2 Part 3 Part 4 More shader stages In Qt 5.0 the QOpenGLShader and QOpenGLShaderProgram classes only had support for Vertex and Fragment shaders. Qt 5.1 will include […]
This article continues our series on what is new in Qt 5.1 with respect to OpenGL. Earlier articles in this series are available at: Part 1 Part 2 Part 3 OpenGL Debug Output The traditional way to debug OpenGL is to call glGetError() after every GL function call. This is tedious, clutters up our code, […]
This article continues our series on what is new in Qt 5.1 with respect to OpenGL. If you haven't already seen them, you may be interested in reading Part 1 and Part 2. Timer Queries OpenGL on the desktop exposes a very useful tool in the shape of timer query objects. These can be used […]
This article continues our series on what is new in Qt 5.1 with respect to OpenGL. The first installment can be found here. Vertex Array Objects Qt has QOpenGLBuffer (and before that QGLBuffer) to help manage various types of OpenGL buffer objects such as per-vertex attribute data and element index buffers. OpenGL also has a […]
This blog is the first in a series that will show how to use OpenGL with Qt 5. In this article, we shall take a very quick look at Qt's historical support for OpenGL and then go on to describe the first batch of new features coming in Qt 5.1 that will enhance Qt's OpenGL […]
Creating 3D applications can be overwhelming due to terminology, visual concepts, and advanced math. KDAB simplifies this task, providing you with the best solution for your 3D project, easing complexities and maximizing efficiency.
Create intelligent, patient-focused medical software and devices backed by the expertise of KDAB.
Boost your OpenGL performance with KDAB's expert consulting, development, and training services. We specialize in optimization, debugging, integration, and hardware selection for OpenGL and OpenGL ES projects. Learn more about KDAB's 3D graphics expertise.
Are you on a journey to create visually stunning, ultra-realistic 3D graphics, dynamic 2D user interfaces, or leveraging the power of hardware-accelerated computation? KDAB stands ready to guide you along this path.
When Bridgin, the developers of iDig, an intuitive excavator machine control, needed to enhance their guidance system with complex 3D surface modeling and rendering capabilities, they sought the expertise of KDAB, drawing to their deep experience with Qt in general and Qt 3D in particular.
KDGpu is a thin wrapper around Vulkan to make modern graphics easier to learn and use.
KDAB has embraced the potential of the Vulkan API specification and its power to deliver high-performance graphics and compute functionality on current and future GPU hardware. Leveraging our wealth of 3D experience, we are well-prepared to bring this cutting-edge, high-performance API to your application, allowing you to harness its capabilities fully.
Learning to create 3D applications can be an overwhelming task even for seasoned developers because of all the new terminology, visual concepts, and advanced math. To simplify the job, many developers use a framework like Qt 3D, which KDAB developed and contributed to Qt. In this paper, the first of 3 whitepapers, you will learn about the structure of a Qt 3D program – the nature of entities, components, and aspects, and how those are incorporated into the scene graph and frame graph. The Qt 3D Basics series is intended to help developers create highly polished Qt 3D applications, including descriptions of the technology components, the rationale behind their designs, and straightforward examples.
The ability to create a 3D applications is a skillset that is increasingly in demand as it plays a crucial role in advanced UX design, virtual reality, game development, and more. While developing a modern 3D program requires many disparate skills, there are frameworks that help the developer stitch it all together. Qt 3D, developed by KDAB, is one such framework.
Our first Qt 3D whitepaper helped us understand the structure of a Qt 3D program - the nature of the entities, components and aspects, in the scene graph and frame graph. This paper shows how to incorporate those elements into a functioning program by examining how to receive user input and how to animate objects in a scene.