Makkonen Sami

Qt3D 2.0 Technology Preview

Published Wednesday July 1st, 2015
12 Comments on Qt3D 2.0 Technology Preview
Posted in Qt 3D, Uncategorized | Tags: ,

This blog post is written by a guest blogger, the maintainer of Qt3D module and the Managing Director KDAB UK Ltd, Dr Sean Harmer.

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 continue to see improvements across the API design, supported features and performance before release. It is provided to start collecting feedback from users and to give a taste of what is coming with Qt3D in the future. Please grab a copy of the Qt 5.5.0 release and give Qt3D a test drive and report bugs and feature requests.

Qt3D provides a lot of functionality needed for modern 3D rendering backed by the performance of OpenGL across the platforms supported by Qt with the exception of iOS. There is work under way to support Qt3D on iOS and we expect this to be available very shortly. Qt3D allows developers to not only show 3D content easily but also to totally customise the appearance of objects by using the built in materials or by providing custom GLSL shaders. Moreover, Qt3D allows control over how the scene is rendered in a data-driven manner. This allows rapid prototyping of new or custom rendering algorithms. Integration of Qt3D and Qt Quick 2 content is enabled by the Scene3D Qt Quick item. Features currently supported by the Qt3D Technology Preview are:

  • A flexible and extensible Entity Component System with a highly threaded and scalable architecture
  • Loading of custom geometry (using built in OBJ parser or assimp if available)
  • Comprehensive material, effect, render pass system to customise appearance
  • Data-driven renderer configuration – change how your scene is rendered without touching C++
  • Support for many rendering techniques – forward, deferred, early z-fill, shadow mapping etc.
  • Support for all GLSL shader stages (excluding compute at present)
  • Good support for textures and render targets including high-dynamic range
  • Support for uniform buffer objects where available
  • Out of the box support for simple geometric primitives and materials
  • Keyboard input and simple camera mouse control
  • Integration with Qt Quick 2 user interfaces

Beyond rendering, Qt3D also provides a framework for adding additional functionality in the future for areas such as:

  • Physics simulation
  • Skeletal and morph target animation
  • 3D positional audio
  • Stereoscopic rendering
  • Artificial intelligence
  • Advanced input mechanisms

To learn more about the architecture and features of Qt3D, please read KDAB’s series of blogs and the Qt3D documentation.

KDAB and The Qt Company will continue to improve Qt3D over the coming months to improve support for more platforms, input handling and picking, import of additional 3D formats, instanced rendering, more materials and better integration points to the rest of Qt. If you wish to contribute either with code, examples, documentation or time then please contact us on the #qt-3d channel on freenode IRC or via the mailing lists.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Qt 3D, Uncategorized | Tags: ,

12 comments

Sylv says:

Thanks a lot for your work!
It’s nice to see the Qt 3D framework back.
Do you think that Qt 3D 2.0 will be final wiithin Qt 5.6 ?

Sean Harmer says:

Yes 5.6 is the planned time for release. We have quite some work to do before the feature freeze in a few weeks time but we’re trying to meet this.

iOS is running Qt3D here now. Patches are in review, the most onerous of which is a segfault somewhere with QAtomicInteger on the A7 cpu. Looks like a miscompilation.

The main APIs we want to add before release are:

* Mouse input and picking
* Buffer and attribute API to allow more flexibility around geometry and instanced rendering.

Maxim says:

Would it be available for ‘open-source’ license after the final release?

@Maxim: Qt3D is available under LGPLv3/GPLv2+/Commercial licenses.

Andreykonn says:

Neither of Qt3D example projects works on my Windows 7 64-bit PC. They just don’t render anything. Does anyone else have this issue?

looping says:

Hi,
I’m waiting for this release for a long time… so that great to see Qt3D
but I have a problem with it: Assimp end Assimp-cpp exemples dont works, when I start it I only have a black sceen in the widow.
I really need this functionality.
Do you have an idea?

thank you

Mika Salmela says:

It sounds like you don’t have assimp library installed. First make sure that you have installed it from http://assimp.sourceforge.net/. Then take the source for the Qt3D and make & make install for that.

looping says:

I will try this
Thank you

UniversE says:

Congrats and thank you very much. I’v waited for the release of Qt3D 2.0 for a long time.

BTW, will Particle System be included in Qt3D?

Sean Harmer says:

It’s possible to implement a particle system now but would require writing some custom shaders.

We plan on adding a particle system that will work out of the box at some point. I don’t know when exactly but it’s unlikely to be with Qt 5.6 due to the short timescales before feature freeze.

UniversE says:

Thank you 🙂

I wait for that.

Andreykonn says:

Out-of-the-box physics is what is more imortant for the future of Qt3D. I’m afraid game developers won’t evaluate Qt3D for any project until collision detection is out of the box.

Commenting closed.

Get started today with Qt Download now