Hi,

On 05/12/2016 17:59, Juan Jose Casafranca wrote:
Just for curiosity, why it is not typed as QCameraLens as that it is the
"real" camera?

Because QCameraLens is only responsible for the projection matrix part of the overall transformation. It only cares about field of view, aspect ratio etc.

The other part, the view matrix, comes from the camera's position and orientation. That is conveniently provided by the Qt3DCore::QTransform component.

QCamera needs both those things and so aggregates both types of component.

Hope this helps,

Sean



El 5 dic. 2016 6:34 PM, "Philip Schuchardt" <vpica...@gmail.com
<mailto:vpica...@gmail.com>> escribió:

    Awesome, thanks!
    On Mon, Dec 5, 2016 at 12:32 PM Sean Harmer <sean.har...@kdab.com
    <mailto:sean.har...@kdab.com>> wrote:



        On 05/12/2016 16:37, Philip Schuchardt wrote:
        > Awesome! Thanks! I really like the entity and component system
        in qt3d!
        > It just takes time to understand all the components and how
        they play
        > together with each other.

        Yeah, it's a little bit of a mental shift from traditional OOP
        but means
        we can keep adding more components and aspects without baking many
        assumptions into the core framework of Qt 3D.

        > If I aggregate the QTransform and QCameraLens
        > into my own camera code, do I need to subclass framegraph node
        to select
        > my custom camera?

        Nope, no need to subclass. The QCameraSelector framegraph node's
        camera
        property is intentionally typed as QEntity* for this reason.

        Cheers,

        Sean

        >
        >
        > On Mon, Dec 5, 2016 at 3:52 AM Sean Harmer
        <sean.har...@kdab.com <mailto:sean.har...@kdab.com>
        > <mailto:sean.har...@kdab.com <mailto:sean.har...@kdab.com>>>
        wrote:
        >
        >     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
        >     <vpica...@gmail.com <mailto:vpica...@gmail.com>
        <mailto:vpica...@gmail.com <mailto:vpica...@gmail.com>>
        >     > <mailto:vpica...@gmail.com <mailto:vpica...@gmail.com>
        <mailto:vpica...@gmail.com <mailto:vpica...@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@qt-project.org <mailto:Interest@qt-project.org>
        <mailto:Interest@qt-project.org <mailto:Interest@qt-project.org>>
        >     > http://lists.qt-project.org/mailman/listinfo/interest
        <http://lists.qt-project.org/mailman/listinfo/interest>
        >     >
        >
        >     --
        >     Dr Sean Harmer | sean.har...@kdab.com
        <mailto:sean.har...@kdab.com> <mailto:sean.har...@kdab.com
        <mailto:sean.har...@kdab.com>>
        >     | Managing Director UK
        >     KDAB (UK) Ltd, a KDAB Group company
        >     Tel. +44 (0)1625 809908 <tel:+44%201625%20809908>
        <tel:+44%201625%20809908>; Sweden (HQ)
        >     +46-563-540090 <tel:+46%20563%2054%2000%2090>
        <tel:+46%20563%2054%2000%2090>
        >     Mobile: +44 (0)7545 140604 <tel:+44%207545%20140604>
        <tel:+44%207545%20140604>
        >     KDAB - Qt Experts
        >     _______________________________________________
        >     Interest mailing list
        >     Interest@qt-project.org <mailto:Interest@qt-project.org>
        <mailto:Interest@qt-project.org <mailto:Interest@qt-project.org>>
        >     http://lists.qt-project.org/mailman/listinfo/interest
        <http://lists.qt-project.org/mailman/listinfo/interest>
        >
        > --
        > Phi|ip

        --
        Dr Sean Harmer | sean.har...@kdab.com
        <mailto:sean.har...@kdab.com> | Managing Director UK
        KDAB (UK) Ltd, a KDAB Group company
        Tel. +44 (0)1625 809908 <tel:+44%201625%20809908>; Sweden (HQ)
        +46-563-540090 <tel:+46%20563%2054%2000%2090>
        Mobile: +44 (0)7545 140604 <tel:+44%207545%20140604>
        KDAB - Qt Experts

    --
    Phi|ip

    _______________________________________________
    Interest mailing list
    Interest@qt-project.org <mailto:Interest@qt-project.org>
    http://lists.qt-project.org/mailman/listinfo/interest
    <http://lists.qt-project.org/mailman/listinfo/interest>



_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to