Qt3D Core

From Qt Wiki
Revision as of 09:53, 24 February 2015 by Maintenance script (talk | contribs)
Jump to navigation Jump to search


[toc align_right="yes" depth="3"]

Qt3D Core

Core elements

The Core exposes a few default elements that make up all Qt3D scenes.

Node

A base Qt3D element.

Entity

An Entity is a Node which has a list of Component properties. This is the type of elements that are actually rendered.

Component

Components are elements that are used to further specify an Entity.

Transformations

* Transform
A Component that contains a list of transformation
Transform {<br /> id : transform_0<br /> Rotate {<br /> axis : Qt.vector3d(0,1,0)<br /> angle : 30<br /> }<br /> Scale {<br /> scale3D : Qt.vector3d(0.5, 0.25, 0.5)<br /> }<br /> Translate {<br /> dx : 9; dy : 2; dz : 20<br /> }<br /> }
* LookAtTransform
Performs a LookAtTransform.
* MatrixTransform
Performs a transformation based on the Matrix provided.
* TranslateTransform
Performs a translation.
* RotateTransform
Performs a rotation around an axis.
* ScaleTransform
Performs a scaling.

http://i58.tinypic.com/2poe3bn.png

Others Components

* CameraLens'
Contains the lens properties of a Camera.
'
Projection Type
' Far plane
'
Near plane
' Field of view
'
Aspect ratio

Custom elements

Custom elements can be created by subclassing an Entity and predefining a set of properties.

===== * Camera
The Camera elements is an Entity that contains a Transform and a CameraLens.

Camera {<br /> id : camera2 =====

lens : CameraLens {<br /> projectionType: CameraLens.PerspectiveProjection<br /> fieldOfView: 45<br /> aspectRatio: 16/9<br /> nearPlane : 0.01<br /> farPlane : 1000.0<br /> }

transform : Transform {<br /> LookAt {<br /> position: Qt.vector3d( 0.0, 1.0, 5.0 )<br /> upVector: Qt.vector3d( 0.0, 1.0, 0.0 )<br /> viewCenter: Qt.vector3d( 0.0, 2.0, 10.0 )<br /> }<br /> Rotate {<br /> axis : Qt.vector3d(0, 0, 1)<br /> angle : 40<br /> }<br /> }<br /> }

Resources Management

To achieve high rendering performances, the memory access to the resources has to be properly managed and structured. Therefore, a set of templated resources management oriented classes have been developed in the core of Qt3D.

  • QHandle
  • QArrayResourcesManager
  • QListResourcesManager

The use of a Handle systems allows for resources to be easily accessed and managed while allowing for memory structure to be realigned so as to maintain a contiguous memory alignment and reduce fragmentation.
This should lower the amount of cache misses and speed up rendering.

Other Resources management oriented classes include :
* QCircularBuffer