Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Qt3D Core: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
= | [[Category:Developing_with_Qt::Qt3D]]<br />[toc align_right="yes&quot; depth="3&quot;] | ||
==Core elements== | = Qt3D Core = | ||
== Core elements == | |||
The Core exposes a few default elements that make up all Qt3D scenes. | The Core exposes a few default elements that make up all Qt3D scenes. | ||
===Node=== | === Node === | ||
A base Qt3D element. | A base Qt3D element. | ||
===Entity=== | === Entity === | ||
An Entity is a Node which has a list of Component properties. This is the type of elements that are actually rendered. | An Entity is a Node which has a list of Component properties. This is the type of elements that are actually rendered. | ||
===Component=== | === Component === | ||
Components are elements that are used to further specify an Entity. | Components are elements that are used to further specify an Entity. | ||
====Transformations==== | ==== Transformations ==== | ||
========== | ===== * '''Transform'''<br />A Component that contains a list of transformation<br /><code>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 /> }</code> ===== | ||
* ''' | ===== * '''LookAtTransform'''<br />Performs a LookAtTransform. ===== | ||
========== | ===== * '''MatrixTransform'''<br />Performs a transformation based on the Matrix provided. ===== | ||
* ''' | ===== * '''TranslateTransform'''<br />Performs a translation. ===== | ||
========== | ===== * '''RotateTransform'''<br />Performs a rotation around an axis. ===== | ||
* ''' | ===== * '''ScaleTransform'''<br />Performs a scaling. ===== | ||
[[Image:http://i58.tinypic.com/2poe3bn.png|http://i58.tinypic.com/2poe3bn.png]] | |||
==== Others Components ==== | |||
========== | ===== * '''CameraLens'''<br />Contains the lens properties of a Camera.<br />'''''' Projection Type<br />'''''' Far plane<br />'''''' Near plane<br />'''''' Field of view<br />'''''' Aspect ratio ===== | ||
=== Custom elements === | |||
Custom elements can be created by subclassing an Entity and predefining a set of properties. | |||
== | ===== * '''Camera'''<br />The Camera elements is an Entity that contains a Transform and a CameraLens.<br /><code>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 /> }</code> | |||
==Resources Management== | == 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. | 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. | ||
Line 72: | Line 57: | ||
* QListResourcesManager | * 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.<br /> This should lower the amount of cache misses and speed up rendering. | 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.<br />This should lower the amount of cache misses and speed up rendering. | ||
Other Resources management oriented classes include :<br />* QCircularBuffer | |||
Revision as of 09:53, 24 February 2015
[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 /> }
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