Language Selection

English French German Italian Portuguese Spanish

Qt 3D Discussed

Filed under
Development
KDE
  • Qt 3D Will Still Be Improved On Alongside Qt Quick 3D

    While Qt Quick 3D has been talked up a lot recently with The Qt Company's plans for that new 3D module inside the current Qt5 and future Qt6 tool-kits, Qt 3D itself is not going away.

    Qt Quick 3D will offer 3D support to Qt Quick via QML and C++ APIs but the existing Qt 3D support isn't going to be eliminated and in fact will be improved upon as we near the Qt 6.0 release in about one year's time.

  • The Future of Qt 3D

    As you will have read, a new module called Qt Quick 3D will begin offering 3D capabilities to Qt Quick via a QML API (and a planned C++ API for Qt 6). What does this mean for Qt 3D and where will it fit in the Qt ecosystem? Hopefully this blog post and the following one will help answer that question as well as give some insights into what we are working on in Qt 3D. This blog post will focus on the changes coming with Qt 5.x and the following article will details some of the research we are doing to improve Qt 3D on the Qt 6 timescale.

  • Qt 3D: One too many threads

    Qt 3D makes heavy use of threads, as a way to spread work across CPU cores and maximize throughput, but also to minimize the chances of blocking the main thread. Though nice on paper, the last case eventually leads to added complexity. Sometimes, there are just one too many threads.

    In the past, we’ve been guilty of trying to do too much within Qt 3D rather than assuming that some things are the developer’s duty. For instance there was a point in time where we’d compare the raw content of textures internally. The reason behind that was to handle cases where users would load the same textures several times rather than sharing one. This led to code that was hard to maintain and easy to break. Ultimately it provided convenience only for what can be seen as a misuse of Qt 3D, which was not the the original intention.

    We had similar systems in place for Geometries, Shaders… Part of the reason why we made such choices at the time was that the border between what Qt 3D should or shouldn’t be doing was really blurry. Over time we’ve realized that Qt 3D is lower level than what you’d do with QtQuick. A layer on top of Qt 3D would have instead been the right place to do such things. We’ve solved some of these pain points by starting work on Kuesa which provides assets collections.

Qt 3D apparently is here to stay (and improve)

  • Qt 3D apparently is here to stay (and improve)

    Users of Qt 3D might fear their favourite tool is set to disappear, now that Qt Quick 3D is on its way. KDAB senior software engineer Sean Harmer took to the Qt blog to dispel those doubts and give a detailed overview of what’s to come for the library.

    Qt 3D is a library for near real-time simulations, which was introduced to the public in June 2016. It was developed to allow users to integrate 3D content into their applications and create mixed dimensional user interfaces for domains such as automotive and medical visualisation.

    Since using it can get quite tricky quite fast, Qt Quick 3D was presented in August 2019 as a way to facilitate adding simple 3D elements to a project. This left some wondering about the future of Qt 3D, but Harmer is certain there will always be a place for the library – and not just because his company used it as a foundation for another tool and various projects.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

More in Tux Machines

today's howtos

Raptor Computing Is Working On More AMD Radeon Driver Improvements For POWER

Similar to 64-bit ARM (AArch64) improvements we've seen with time for the Radeon Linux driver, Raptor's Timothy Pearson has been working to improve the Radeon support for PowerPC or more specifically POWER9. While NVIDIA offers a POWER9 graphics driver for IBM POWER servers, AMD Radeon graphics jive much better with Raptor's target customers thanks to the open-source driver stack -- allowing a fully open-source graphics/compute stack with the AMD hardware sans the closed-source microcode required by the GPUs, but much better than the completely closed-up NVIDIA driver stack. Read more

Using Menus For Command Line Programs and Scripts

THE holidays are coming (Christmas approaching), so I've taken advantage of some spare time to menu-ise commands that I use frequently. Those commands aren't the mere opening of an application and they often require dealing with input and output (in the command line). So I've created menu.sh and used dialog to craft the following menu, e.g. for operations associated with Techrights. I invoke this menu with the click of one button (of the mouse).

Rianne has a similar menu for commands she often runs (which are long and would otherwise need pasting or typing in length). Her menu looks something like this:

Rianne's menu

Here's the code (bash file) that renders the menu above (it's really that simple!):

#!/bin/bash

HEIGHT=15
WIDTH=40
CHOICE_HEIGHT=4
BACKTITLE="Aloha, Rianne"
TITLE="Rianne @ Ted"
MENU="Choose one of the following options:"

OPTIONS=(1 "Start VPN"
         2 "REDACTED"
         3 "REDACTED"
	4 "REDACTED"
	5 "REDACTED"
	6 "REDACTED"
	7 "REDACTED"
)

CHOICE=$(dialog --clear \
                --backtitle "$BACKTITLE" \
                --title "$TITLE" \
                --menu "$MENU" \
                $HEIGHT $WIDTH $CHOICE_HEIGHT \
                "${OPTIONS[@]}" \
                2>&1 >/dev/tty)

clear
case $CHOICE in
        1)
            echo "You chose Option 1"
sh ~/vpn.sh ;;

        2)
            echo "You chose Option 2"
REDACTED COMMAND ;;
        3)
            echo "You chose Option 3"
REDACTED COMMAND ;;
        4)
            echo "You chose Option 4"
REDACTED COMMAND ;;
        5)
            echo "You chose Option 5"
REDACTED COMMAND ;;
        6)
            echo "You chose Option 6"
REDACTED COMMAND ;;
        7)
            echo "You chose Option 7"
REDACTED COMMAND ;;

esac

Hopefully this inspires other people out there to do the same. It takes a while to set up, but it's a big time saver over the long run.

Android Leftovers