When it comes to new features, we have many things ongoing related to graphics, so I’ll start with that. One of the biggest things for 2018 is the unification of our 3D engines. Qt 3D Studio 1.x releases use the 3D engine contributed by NVIDIA. While it is a good and solid engine, the benefits for migrating on top of Qt 3D are clear: easier to use both pre-defined and programmatically created content in the same application, improved support for different operating systems and hardware, and of course also avoiding the need to develop and maintain two different 3D engines.
Activities for being able to run Qt 3D Studio applications on top of Qt 3D have been ongoing for a long time and there are quite many improvements also to Qt 3D itself done during the process. Some of these are the improvements done to Qt 3D performance and reducing memory consumption of Qt 3D needed to efficiently run complex Qt 3D Studio applications on top of it. A great example of the benefits of unification is that these performance improvements to Qt 3D benefit also the existing Qt 3D applications – in addition to the upcoming Qt 3D Studio 2.0 applications.
Another major item for graphics is asset conditioning, essential for being able to reach optimal performance on target hardware. Both for 2D and 3D graphics, the size of assets is often a significant part of the overall application size and especially runtime memory footprint. During 2018 we continue to improve the asset conditioning support in Qt by adding more supported texture compression and packaging formats and making it easier to handle the graphical assets in build system and tooling.
Basic support for ETC1, ETC2 and ETC2_EAC compression was added already with Qt 5.10. Qt 5.11 improves the texture compression implementation and adds support for the commonly used KTX (Khronos Texture) texture file format. Modern GPUs with OpenGL ES 3.x support can handle the compressed textures efficiently, leading into improved memory usage and performance with the new Qt versions. We aim to continuously improve the asset conditioning capabilities of Qt and are currently looking into texture atlassing and other possibilities in order to further improve the performance and memory usage of textures.
Improved and new tooling for Qt development
In the tooling area, we have been working hard to create the new Qt 3D Studio based on the NVIDIA contribution we received a year ago. Qt 3D Studio is a great tool for creating interactive 3D user interfaces and applications. The editor is a cross-platform Qt application running on Windows, Mac, and Linux. Qt 3D Studio is not a tool for designing 3D models, these can be imported from commonly used tools such as AutoDesk Maya, MODO by the Foundry and even Adobe Photoshop, to mention some examples. Qt 3D Studio comes with a large set of materials and other assets to complement the models imported from other tools. The big thing for 2018 is the Qt 3D Studio 2.0 release where we switch the runtime to be based on Qt 3D. This allows deeper integration with other Qt functionality, improved portability, reduced maintenance effort and many other benefits.
While many of our Qt 3D Studio examples are geared towards Automotive and Digital Cockpit use cases, it is by far not just a tool for Automotive. Need for 3D user interfaces exists in multiple other industries such and automation, medical, entertainment, home appliances and more. Qt 3D and Qt 3D Studio are also fit for the creation of AR and VR applications – a raising technology area that has many benefits both for consumer and business needs. Automotive is an important area for Qt and we continue to develop Qt 3D Studio according to the needs of it, but not as the only industry to cater for.
In Qt 3D Studio 2.0 as well as the 2.x releases later in 2018 we focus especially into interoperability with other parts of Qt, for example, seamless integration with Qt Quick as well as improved integration with Qt Creator IDE. One of the upcoming key improvements in the editor is completely rewritten timeline component, providing greatly improved ergonomics and workflow. With 2.0 we also aim to provide the final and fully supported Behavior API and Data Node API. We also continue to improve examples and documentation in order to make the creation of 3D user interfaces with Qt efficient, easy and fun.
http://blog.qt.io/blog/2018/02/22/qt-roadmap-2018/#comment-1202485