[Interest] Qt5.6 Qt3D* module names?

Brett (Gmail) brettbibby at gmail.com
Mon Dec 21 14:31:48 CET 2015


Very useful info, thanks.

Is there a specific mailing list, forum or chat dedicated to Qt3D*? Or is this list the best place?

> On Dec 21, 2015, at 2:24 PM, Sean Harmer <sean.harmer at kdab.com> wrote:
> 
> On Monday 21 December 2015 13:05:19 Brett wrote:
>> Looks like “3drenderer” is now “3drender”.
> 
> Yes that is correct.
> 
>> I changed that and lots of
>> errors. Appears lots of changes to the underlying method names, classes,
>> etc.
> 
> The modules now match between C++ and QML in terms of namespaces. So whereas 
> before all C++ classes were in the Qt3D namespace, they are now in Qt3DCore, 
> Qt3DRender, Qt3DInput or Qt3DLogic. The corresponding QML imports are 
> Qt3D.Core, Qt3D.Render, Qt3D.Input and Qt3D.Logic.
> 
> If you are using C++, the easiest way to adapt is to remove any Qt3D:: 
> namespace prefixes and add using Qt3DCore etc to those compilation units.
> 
> If you are using QML, just search/replace Qt3D.Renderer/Qt3D.Render.
> 
> The other main location of API changes from 5.5 is in the Qt3DCore::QTransform 
> (Transform in qml) component. Instead of building your transform up from a 
> list of "sub" transforms the QTransform component itself now does much more.
> 
> If wanting to apply transforms in the common scale, rotate, translate (SRT) 
> ordering (i.e. an simple affine transformation) then you can directly set the 
> scale/scale3d, rotation, and translation properties. There are helpers on 
> QTransform (invokable from qml) to help you construct rotation quaternions.
> 
> If you want to do something more complex, such as rotating about a point or 
> some other combination of affine transformations (which at the end of the day 
> still results in another affine transformation) then you can set the matrix 
> property of Qt3DCore::QTransform.
> 
> How you do this again depends upon your needs. If rotating about a point, 
> there is another invokable helper on Qt3DCore::QTransform. If you want 
> something else then you can build up your own QMatrix4x4 for the matrix 
> property as shown in many of the examples. This last option is completely 
> analogous to the older api that is now removed but saves creating a lot of 
> QObjects.
> 
> In the majority of cases the new transform API results in far less code being 
> required and also opens the door for some other features we'd like to add in 
> next year (updates to frontend transformations from the backend aspects).
> 
> There's also a bunch of other new stuff in 5.6 such as a mostly complete input 
> aspect (remaining missing bits will come with 5.7); thanks to Laszlo, we now 
> have much better support for lights; we now support instanced rendering for 
> drawing potentially many 10's of thousands of copies of a mesh. Plus the usual 
> pile of bug fixes.
> 
> This is still a tech preview although we don't expect the API to change much 
> at all between 5.6 and 5.7. The main points being worked on are the top level 
> "entry points" and convenience classes.
> 
>> Is there an upgrade guide for Qt3d and all the changes somewhere?
> 
> The above or git log :)
> 
> If you have any more questions, feel free to fire them here.
> 
> Cheers,
> 
> Sean
> 
>> 
>>> On Dec 21, 2015, at 12:50 PM, Brett (Gmail) <brettbibby at gmail.com> wrote:
>>> 
>>> Hi,
>>> Did the module names change for Qt3d in 5.6?
>>> 
>>> My 5.5 project has:
>>> 
>>> QT += core gui sql 3dcore 3drenderer 3dinput
>>> 
>>> But now I’m getting "Unknown module(s) in QT: 3drenderer” type of errors
>>> when I try to compile. I see the frameworks in clang_64/lib so they got
>>> installed but not getting found.
>>> 
>>> Thanks,
>>> Brett
> 
> --
> Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK
> Klarälvdalens Datakonsult AB, a KDAB Group company
> Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
> KDAB - Qt Experts - Platform-independent software solutions




More information about the Interest mailing list