[Interest] [Qt3D] Camera controller

Nye kshegunov at gmail.com
Wed Dec 9 05:10:44 CET 2015


A guinea pig now, am I? ;)
Am I assuming correctly that these new changes are available through the
5.6 HEAD? If so I'll fetch the repo and rebuild.
I think I understand what steps I need to take, so I'll try to implement my
controller and will report any *thoughts* ...
Thanks for the help!

Kind regards,
Konstantin.

On Tue, Dec 8, 2015 at 9:00 PM, Sean Harmer <sh at theharmers.co.uk> wrote:

> Aha, a timely guinea pig :)
>
> We've just merged in a bunch of changes to extend the Qt3DInput library.
> Please take a look at:
>
>
> http://code.qt.io/cgit/qt/qt3d.git/tree/examples/qt3d/simple-qml/CameraController.qml
>
> for an example where we exercise the new API a little. We are in the
> process of folding something back into Qt3D proper to act as a camera (or
> anything else with a transform component) controller, but you can easily
> roll your own custom one with what is there now.
>
> The basic concepts are:
>
> 1) Instantiate 1 or more QAbstractPhysicalDevice's - MouseController,
> KeyboardController so far. These will be renamed to something without
> Controller appended shortly. These house a set of "axes" and "buttons". The
> axes can be processed in some simple ways as specified by an AxisSettings
> object.  E.g. for a gamepad controller or other analogue devices we can
> support deadzones (https://codereview.qt-project.org/#/c/143265/) and
> hopefully tomorrow, low pass filtering. We also have the ability to add
> more devices by way of plugins. We have a WIP plugin for the PS3 SixAxis
> controller for e.g.
>
> 2) The physical devices can be mapped onto LogicalDevices as shown in the
> simple-qml example above. This mapping takes the form of specifying axes
> and actions on the logical device and declaring which physical device
> axis/buttons they originate from. Support for chords and sequences will
> land shortly. The logical device allows you to customise the input within
> your application to map through to some named axes and actions in your
> application and allows support for multiple input devices and dynamically
> reconfiguring them.
>
> 3) Instantiate a AxisActionHandler component and associate a logical
> device with it. The handler's actionStarted(), actionFinished() and
> axisValueChanged() signals will be fired as appropriate for you to react to
> in a signal handler.
>
> 4) If you need to perform smooth animations per frame as a result of
> input, also instantiate a LogicComponent and implement it's signal handler
> which gets the frame delta-time passed in as an argument. Use this to
> multiply your calculated velocity (or whatever) by.
>
> Hope this helps. If you have ideas for how to improve this then please let
> us know.
>
> Cheers,
>
> Sean
>
>
> On 08/12/2015 14:51, Nye wrote:
>
> Hello,
> I wish to have the camera movement bound to a certain "slice" of the world
> space. I didn't see that to be available through the default
> implementation, so I assume I'd have to write my own component that
> implements the input aspect and attach it to my camera. I've gone through
> the sources, because at this point the documentation is pretty thin.
> Unfortunately, I don't seem able to grasp at this point how the aspect will
> notify my component of the input events. I have 2 questions:
> 1. For my case, am I assuming correctly that I'd need my own component to
> realize that functionality?
> 2. If I do need a separate component, how can I make it? I understand that
> I have to subclass from QComponent, but how would I be notified for the
> input events occurring? Do I need to implement some other classes to make
> it work (I saw a number of "functors" created in Qt3D's source)?
>
> Any help is greatly appreciated.
>
> Kind regards,
> Konstantin.
>
>
> _______________________________________________
> Interest mailing listInterest at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest
>
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20151209/e1268810/attachment.html>


More information about the Interest mailing list