[Interest] Qt3D - Setting the Camera's ViewMatrix Directly

Sean Harmer sean.harmer at kdab.com
Mon Dec 5 09:52:21 CET 2016


Hi,

I see you found it already but I'll explain for posterity. All Qt 3D 
wants from a "camera" is a view matrix and a projection matrix. These 
come from the QTransform and QCameraLens components respectively, which 
are aggregated by QCamera. QCamera itself is not special, it is just an 
entity with these components and provides some API for common 
operations. If QCamera doesn't suit your needs you can subclass QEntity, 
aggregate these components, plus any others you want (perhaps a light 
source), and add whatever API you like.

Cheers,

Sean

On 04/12/2016 20:49, Philip Schuchardt wrote:
> Nevermind, I figured it out. The QCamera can be accessed changed
> directly through QCamera::transform()->setMatrix().
>
>
>
> On Sun, Dec 4, 2016 at 9:54 AM Philip Schuchardt <vpicaver at gmail.com
> <mailto:vpicaver at gmail.com>> wrote:
>
>     In the next step of porting my OpenGL application to Qt3D, I trying
>     to use my existing camera and interaction code. My interaction code
>     creates and manipulates QMatrix4x4's for projection and view
>     matrixes. It seems like Qt3D's camera doesn't provide direct access
>     of ViewMatrix. My question is how do I set this directly? Can I
>     subclass QCamera and control it directly? Could I make my code
>     Camera an entry and not use QCamera? How would Qt3D interpret my
>     camera as a QCamera and set the necessary uniforms in the shaders.
>     Also, how would this play with CameraSelector nodes in the
>     framegraph? Would I have to make a custom CameraSelector framegraph
>     node?  The nice thing about direct control of the ViewMatrix is
>     there's no mystery about how the math works. Without direct access
>     to the ViewMatrix, it'll take me a decedent amount to port my camera
>     code...
>
>     Also, how do you unproject a point on the screen using the QCamera
>     and the viewport in Q3D? This is necessary for my interactions to
>     work correctly.
>
>     Thanks,
>     Phi|ip
>     --
>     Phi|ip
>
> --
> Phi|ip
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>

-- 
Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK
KDAB (UK) Ltd, a KDAB Group company
Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090
Mobile: +44 (0)7545 140604
KDAB - Qt Experts



More information about the Interest mailing list