les bases de qt 3d - ervin · les bases de qt 3d 2 0 1 6 les bases du tracé 3d p.34...
TRANSCRIPT
![Page 1: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/1.jpg)
LesbasesdeQt3DKévinOttens,ArtisanLogicielàKDAB
2016
![Page 2: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/2.jpg)
LesbasesdeQt3D
2016 LesbasesdeQt3D p.2
Fonctionnalités
SystèmeEntitéComposant?Kezaco?
HelloDonut
L'ECSdeQt3Dexpliqué
Gestiondesentrées
Lesbasesdutracé3D
Lapartieimmergéedel'iceberg
LefuturdeQt3D
![Page 3: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/3.jpg)
LesbasesdeQt3D
2016 Fonctionnalités p.3
Fonctionnalités
SystèmeEntitéComposant?Kezaco?
HelloDonut
L'ECSdeQt3Dexpliqué
Gestiondesentrées
Lesbasesdutracé3D
Lapartieimmergéedel'iceberg
LefuturdeQt3D
![Page 4: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/4.jpg)
Qu'est-cequeQt3D?
2016 Fonctionnalités p.4
Cen'estpasqu'unmoteur3D!
Généraliste,pasuniquementpourlesjeux
Moteurdesimulationtemps-réelsouple
Conçupourlepassageàl'échelle
Extensibleetflexible
![Page 5: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/5.jpg)
Moteurdesimulation
2016 Fonctionnalités p.5
Lecœurn'estpasspécifiqueàla3D
IlpeutgérerplusieursdomainessimultanémentIA,logique,audio,etc.Etbiensûrilfaitaussilerendu3D!
ToutlenécessairepourdessystèmesdesimulationcomplexesSystèmesmécaniquesPhysique...etaussilesjeux
![Page 6: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/6.jpg)
Passageàl'échelle
2016 Fonctionnalités p.6
Séparationfrontend/backendFrontendlégersurlathreadprincipaleBackendexécutédansunethreadsecondaire
Làoùrésidelasimulation
Communicationfrontend/backendnon-bloquante
Lebackendmaximiselachargeviaunepooldethreads
![Page 7: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/7.jpg)
Extensibleetflexible
2016 Fonctionnalités p.7
Lesdomainessontajoutésviadesaspectsindépendants...uniquementsiriennecorrespondàvosbesoins
FourniàlafoisdesAPIsC++etQML
S'intègrebienaveclerestedeQtQuiveutobtenirsesdonnéesdesimulationd'unebasededonnées?
SystèmeEntitéComposant(ECS)utilisépourcombinerlescomportementsdansvosobjets
Pasdehiérarchied'héritageprofonde
![Page 8: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/8.jpg)
LesbasesdeQt3D
2016 SystèmeEntitéComposant?Kezaco? p.8
Fonctionnalités
SystèmeEntitéComposant?Kezaco?
HelloDonut
L'ECSdeQt3Dexpliqué
Gestiondesentrées
Lesbasesdutracé3D
Lapartieimmergéedel'iceberg
LefuturdeQt3D
![Page 9: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/9.jpg)
ECS:Définitions
2016 SystèmeEntitéComposant?Kezaco? p.9
ECSestunpatrond'architecturePopulairedanslesmoteursdejeuxFavoriselacompositionplutôtquel'héritage
Uneentitéestunobjetgénéraliste
Uneentitéobtientsoncomportementencombinantdeladonnée
Ladonnéeprovientdecomposantstypés
![Page 10: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/10.jpg)
CompositionvsHéritage
2016 SystèmeEntitéComposant?Kezaco? p.10
Analysonsunexemplefamilier:SpaceInvaders
![Page 11: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/11.jpg)
CompositionvsHéritage(suite)
2016 SystèmeEntitéComposant?Kezaco? p.11
Hiérarchied'héritagetypique
![Page 12: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/12.jpg)
CompositionvsHéritage(suite)
2016 SystèmeEntitéComposant?Kezaco? p.12
Toutvabienjusqu'àcequeleclientdemandeunenouvellefonctionnalité:
![Page 13: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/13.jpg)
CompositionvsHéritage(suite)
2016 SystèmeEntitéComposant?Kezaco? p.13
Solutiontypique:ajouteràlaclassedebase
![Page 14: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/14.jpg)
CompositionvsHéritage(suite)
2016 SystèmeEntitéComposant?Kezaco? p.14
Nepassepasàl'échelle:
![Page 15: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/15.jpg)
CompositionvsHéritage(suite)
2016 SystèmeEntitéComposant?Kezaco? p.15
Etl'héritagemutiple?
![Page 16: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/16.jpg)
CompositionvsHéritage(suite)
2016 SystèmeEntitéComposant?Kezaco? p.16
Etl'utilisationd'interfaces?
![Page 17: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/17.jpg)
CompositionvsHéritage(suite)
2016 SystèmeEntitéComposant?Kezaco? p.17
Est-cequecelapasseàl'échelle?
![Page 18: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/18.jpg)
CompositionvsHéritage(suite)
2016 SystèmeEntitéComposant?Kezaco? p.18
L'héritageest-ilsuffisammentflexible?
![Page 19: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/19.jpg)
CompositionvsHéritage(suite)
2016 SystèmeEntitéComposant?Kezaco? p.19
Héritage:RelationfigéesàlaconceptionHiérarchiesd'héritagecomplexes:profondes,larges,héritagesmultiplesLesfonctionnalitéstendentàmigrerverslaclassedebase
SystèmeEntitéComposantAutoriselesmodificationsàl'exécutionÉviteleslimitationsdel'héritageAuncoûtsupplémentaire:
PlusdeQObjectsDifférentdeshabitudesdelaplupartdesdéveloppeursobjet
PasbesoindefigerdessuppositionssurQt3Dquinepourrontpasêtrechangéesplustardlorsdel'ajoutdenouvellesfonctionnalités
![Page 20: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/20.jpg)
LesbasesdeQt3D
2016 HelloDonut p.20
Fonctionnalités
SystèmeEntitéComposant?Kezaco?
HelloDonut
L'ECSdeQt3Dexpliqué
Gestiondesentrées
Lesbasesdutracé3D
Lapartieimmergéedel'iceberg
LefuturdeQt3D
![Page 21: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/21.jpg)
HelloDonut(QML)
2016 HelloDonut p.21
AvoiruneEntityracinepourreprésenterlascèneestunebonneidée
UneEntitypar"objet"danslascène
Lecomportementdesobjetsestobtenuenattachantdescomposants
PourafficheruneEntityilfaut:
UnegéométriepourdécriresaformeUnmatériaupourdécrirel'apparencedelasurface
Demoqt3d/ex-hellodonut-qml
![Page 22: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/22.jpg)
APIC++vsAPIQML
2016 HelloDonut p.22
L'APIQMLestunmiroirdel'APIC++
LesclassesC++sontnomméescommelerestedeQt
LenomdesélémentsQMLperdentlepréfixeQQt3DCore::QNodevsNodeQt3DCore::QEntityvsEntity...
![Page 23: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/23.jpg)
LesbasesdeQt3D
2016 L'ECSdeQt3Dexpliqué p.23
Fonctionnalités
SystèmeEntitéComposant?Kezaco?
HelloDonut
L'ECSdeQt3Dexpliqué
Gestiondesentrées
Lesbasesdutracé3D
Lapartieimmergéedel'iceberg
LefuturdeQt3D
![Page 24: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/24.jpg)
ToutestQNode
2016 L'ECSdeQt3Dexpliqué p.24
Qt3DCore::QNodeletypedebaseutilisépartoutIlhéritedeQObjectetdetoutessesfonctionnalitésAjoutelacommunicationfrontent/backendeninterne
Qt3DCore::QEntity
IlhéritedeQt3DCore::QNodeIlaggrègesimplementdesQt3DCore::QComponents
Qt3DCore::QComponent
IlhéritedeQt3DCore::QNodeLesdonnéessontfourniesparsesclassesfilles
Qt3DCore::QTransformQt3DRender::QMeshQt3DRender::QMaterial
...
![Page 25: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/25.jpg)
ToutestQNode(suite)
2016 L'ECSdeQt3Dexpliqué p.25
![Page 26: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/26.jpg)
Ilvousfautencoreunsystème
2016 L'ECSdeQt3Dexpliqué p.26
LasimulationestexécutéeparQt3DCore::QAspectEngine
Lesinstancesdesous-classesdeQt3DCore::QAbstractAspectsontenregistréessurlemoteur
LecomportementprovientdesaspectstraitantlesdonnéesdescomposantsLesaspectscontrôlentlesdomainemanipulésparvotresimulation
Qt3DfourniQt3DRender::QRenderAspectQt3DInput::QInputAspectQt3DLogic::QLogicAspect
Notezquelesaspectsn'ontpasd'APIToutestfournipardessous-classesdeQt3DCore::QComponent
![Page 27: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/27.jpg)
LesbasesdeQt3D
2016 Gestiondesentrées p.27
Fonctionnalités
SystèmeEntitéComposant?Kezaco?
HelloDonut
L'ECSdeQt3Dexpliqué
Gestiondesentrées
Lesbasesdutracé3D
Lapartieimmergéedel'iceberg
LefuturdeQt3D
![Page 28: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/28.jpg)
Périphériquesphysiques
2016 Gestiondesentrées p.28
Pourgérerlesentréesilnousfautd'abordgénérerlesévénementsd'entrée
Lessous-classesdeQt3DInput::QAbstractPhysicalDevicereprésententlespériphériquesd'entrée
Qt3DInput::QKeyboardDeviceQt3DInput::QMouseDevice
D'autrespeuventêtreajoutésplustard
ParluimêmeunpériphériquenefaitpasgrandchoseLesgestionnairesd'entréeexposentdessignauxémisenréponseauxévénements
![Page 29: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/29.jpg)
Pointage
2016 Gestiondesentrées p.29
Lepointagedehaut-niveauestfourniparlecomposantQt3DRender::QObjectPicker
ImplicitementassociéàlasourisUtiliseunpointagebasésurdulancerderayons
Qt3DRender::QObjectPickerémetsdessignaux:pressed(),released(),clicked()
moved()-uniquementquanddragEnabledestvraientered(),exited()-uniquementquandhoverEnabledestvrai
LapropriétécontainsMousefourniunealternativedéclarativepourentered(),exited()
![Page 30: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/30.jpg)
Périphériquesphysiquesvspériphériqueslogiques
2016 Gestiondesentrées p.30
Lespériphériquesphysiquesfournissentuniquementdesévénementsdiscrétisés
Ilestdifficiledelesutiliserpourcontrôlerunevaleurdansletemps
Lespériphériqueslogiquespermettent:D'obtenirunevueanalogiquesurunpériphériquephysiqueD'aggrégerplusieurspériphériquesphysiquescommeunpériphériqueunifié
![Page 31: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/31.jpg)
Actiond'entréelogique
2016 Gestiondesentrées p.31
Qt3DInput::QActionexposeunevaleurbinaire
Elleestactivéeparuneentréequipeutêtre:UnsimpleboutonavecQt3DInput::QActionInputUnecombinaisonsimultanéedeboutonsavecQt3DInput::QInputChordUneséquencedeboutonsavecQt3DInput::QInputSequence
Lorsquel'étatdel'actionchange,lapropriétéactivechanged'état
Demoqt3d/ex-logical-input-qml
![Page 32: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/32.jpg)
Axed'entréelogique
2016 Gestiondesentrées p.32
Qt3DInput::QAxisexposeunevaleuranalogiqueentre-1et1
Ellevariedansletempsquanduneentréeestgénérée:LorsqueunaxephysiquechangeavecQt3DInput::QAnalogAxisInputPendantqu'unboutonestpresséavecQt3DInput::QButtonAxisInput
Lorsquel'étatdel'axechange,lapropriétévaluechange
Demoqt3d/ex-logical-axes-qml
![Page 33: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/33.jpg)
Toutassemblerpourdéplacerdesboîtes
2016 Gestiondesentrées p.33
Lefocusestgéréaveclatouchetabulation
Laboîteayantlefocusestplusgrande
Lesflèchesdéplacentlaboîtesurlesol
Pageprécédente/suivantefaittournerlaboîtesursonaxeY
Lesboîtess'éclairentlorsquelasourislessurvole
Cliquersuruneboîteluidonnelefocus
Lesboîtespeuventêtredéplacéesaveclasouris
Demoqt3d/sol-moving-boxes-qml-step3
![Page 34: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/34.jpg)
LesbasesdeQt3D
2016 Lesbasesdutracé3D p.34
Fonctionnalités
SystèmeEntitéComposant?Kezaco?
HelloDonut
L'ECSdeQt3Dexpliqué
Gestiondesentrées
Lesbasesdutracé3D
Lapartieimmergéedel'iceberg
LefuturdeQt3D
![Page 35: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/35.jpg)
Legraphedescène
2016 Lesbasesdutracé3D p.35
LegraphedescènefournilareprésentationspatialedelasimulationQt3DCore::QEntity:cequiparticipeàlasimulationQt3DCore::QTransform:oùcelasetrouve,quelletaillecelaa,quelleorientation
Lestransformationshiérarchiquessontcontrôléesparlarelationparent/enfant
SimilaireàQWidget,QQuickItem,etc.
Silascèneesttracée,nousavonsbesoind'unpointdevuedessusIlestdécritavecQt3DRender::QCamera
![Page 36: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/36.jpg)
Qt3DCore::QTransform
2016 Lesbasesdutracé3D p.36
InheritsfromQt3DCore::QComponent
Representsanaffinetransformation
Threewaysofusingit:Throughproperties:scale3D,rotation,translationThroughhelperfunctions:rotateAround()Throughthematrixproperty
Transformationsareapplied:toobjectsinScale/Rotation/TranslationordertocoordinatesystemsinTranslation/Rotation/Scaleorder
Transformationsaremultipliedalongtheparent/childrelationship
![Page 37: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/37.jpg)
Transformations
2016 Lesbasesdutracé3D p.37
1 importQt3D.Core2.023 Entity{4 components:[5 Transform{6 scale3D:Qt.vector3d(1,2,1.5)7 translation:Qt.vector3d(0,0,-1)8 }9 ]1011 Entity{12 components:[13 Transform{translation:Qt.vector3d(0,1,0)}14 ]15 }16 }
![Page 38: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/38.jpg)
Géométries
2016 Lesbasesdutracé3D p.38
Qt3DRender::QRenderAspecttracelesQt3DCore::QEntitysavecuneforme
LapropriétégeometrydeQt3DRender::QGeometryRendererspéfifielaforme
Qt3Dfournidessous-classesdeQt3DRender::QGeometryRenderer:
Qt3DExtras::QSphereMeshQt3DExtras::QCuboidMeshQt3DExtras::QPlaneMeshQt3DExtras::QTorusMeshQt3DExtras::QConeMeshQt3DExtras::QCylinderMesh
QtDemoexamples/qt3d/basicshapes-cpp
![Page 39: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/39.jpg)
Matériaux
2016 Lesbasesdutracé3D p.39
SiuneQt3DCore::QEntityauniquementuneformeelleapparaîtranoire
LecomposantQt3DRender::QMaterialfournil'apparenced'unesurface
Qt3Dfournidessous-classedeQt3DRender::QMaterial:
Qt3DExtras::QPhongMaterialQt3DExtras::QPhongAlphaMaterialQt3DExtras::QDiffuseMapMaterialQt3DExtras::QDiffuseSpecularMapMaterialQt3DExtras::QGoochMaterial
...
Demoqt3d/sol-textured-scene
![Page 40: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/40.jpg)
Lumières
2016 Lesbasesdutracé3D p.40
Mêmeaveclesgéométriesetmatériauxonneverraitrien
Nousavonsbesoindelumières...heureusementQt3Dpositionneunelumièrepardéfautsiaucunen'estfournie
Engénéralonveutcontrôlerl'éclairaged'unescène
Qt3Dfournilestypesdelumièressuivants:DirectionalLightPointLightSpotLight
Labqt3d/ex-lights-qml
![Page 41: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/41.jpg)
LesbasesdeQt3D
2016 Lapartieimmergéedel'iceberg p.41
Fonctionnalités
SystèmeEntitéComposant?Kezaco?
HelloDonut
L'ECSdeQt3Dexpliqué
Gestiondesentrées
Lesbasesdutracé3D
Lapartieimmergéedel'iceberg
LefuturdeQt3D
![Page 42: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/42.jpg)
Fairesespropresgéométries
2016 Lapartieimmergéedel'iceberg p.42
GrâceàQt3DRender::QBuffernouspouvonscréernospropresvertices
GeometryRenderercontrôlecommentlesbufferssontcombinésetinterprêtés
Utilepourprogrammersespropresgéométries:DepuisunefonctionDepuisunensemblededonnéesDepuisuneinteractionutilisateur
Demoqt3d/ex-surface-function
![Page 43: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/43.jpg)
Compositiondetexturesetfiltrage
2016 Lapartieimmergéedel'iceberg p.43
Ilestpossibled'utiliserplusieurstexturesdepuisunseulmatériau
Ilestaussifacilederéutiliserlemodèled'éclairagepardéfaut
Ensuitevouspouvezcombinercommevouslesouhaitezdepuisunshader
Demoqt3d/sol-earth
![Page 44: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/44.jpg)
Texturesprocédurales
2016 Lapartieimmergéedel'iceberg p.44
Beaucoupd'exemplessontdisponiblessurleWebhttps://www.shadertoy.com/
EngénéralécritspourWebGLouOpenGLES2Peutnécessiterunpeud'adaptationLaplupartsontloind'êtretriviaux!
MaisilssontfacilesàintégrerdansMaterialetàparamétrer
Demoqt3d/ex-plasma
![Page 45: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/45.jpg)
IntégreravecQtQuickgrâceàScene3D
2016 Lapartieimmergéedel'iceberg p.45
FourniparlemoduleQtQuick.Scene3D
PrenduneEntityenenfantquiseravotrescènecomplète
Lesaspectschargéssontcontrôlésparlapropriétéaspects
LesévénementsdesurvoldelasourissontacceptésuniquementsilapropriétéhoverEnabledestvraie
Demoqt3d/ex-controls-overlay
![Page 46: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/46.jpg)
Etplus...
2016 Lapartieimmergéedel'iceberg p.46
Gestiondecouches
Matériauxetmodèlesd'éclairagespécifiques
Texturemipmaps
CubeMaps
Portabilitédevotrecodesurplusieursversionsd'OpenGL
Contrôlecompletsurl'algorithmederendu
Chargementd'objetsoudescènescomplètesdepuisdesfichiers(3ds,collada,qml...)
Effetsdepost-processing(simpleoumulti-passes)
Instancedrendering
etc.
Demoqt3d/ex-multiple-effects
Demoqt3d/sol-asteroids
![Page 47: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/47.jpg)
LesbasesdeQt3D
2016 LefuturdeQt3D p.47
Fonctionnalités
SystèmeEntitéComposant?Kezaco?
HelloDonut
L'ECSdeQt3Dexpliqué
Gestiondesentrées
Lesbasesdutracé3D
Lapartieimmergéedel'iceberg
LefuturdeQt3D
![Page 48: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/48.jpg)
Qu'est-cequiarriveradanslefuturdeQt3D?
2016 LefuturdeQt3D p.48
Qt3DCoreAméliorationdesperformancesAméliorationdelagestiondupooldethreadsurlebackend-jobsquicréentdesjobs
Qt3DRenderUtiliserQtQuickouQPainterpourtracerdansunetextureEmbarquerQtQuickdansQt3DavecgestiondesentréesSupportduniveaudedétailpourlesgéométriesBillboards-objetsfaisanttoujoursfaceàlacaméraSupportdutexte-2Det3DMatériauxadditionnelstelquelesupportduPhysicsBasedRenderingSystèmesdeparticules
EntréesQt3DAxesd'entréequiappliqueunevaleurcumuléetellequelaposition,lavélocitéoul'accélérationSupportdepériphériquesd'entréeadditionnels
Souris3D,manettesdejeuxEntréesénuméréescommelesboutons8positions,etc.
![Page 49: Les bases de Qt 3D - ervin · Les bases de Qt 3D 2 0 1 6 Les bases du tracé 3D p.34 Fonctionnalités ... En général on veut contrôler l'éclairage d'une scène Qt 3D fourni les](https://reader034.vdocuments.pub/reader034/viewer/2022042802/5f425ef24ede217ad77325c2/html5/thumbnails/49.jpg)
Qu'est-cequiarriveradanslefuturdeQt3D?
2016 LefuturdeQt3D p.49
Nouveauxaspects:Détectiondecollisions
Permetdedétecterdansdesentitéssontencollisionouentrent/sortentdevolumesdansl'espace
AnimationAnimationparkeyframeAnimationdesquelettesMorphingRetirerlesanimationsdelathreadprincipale
PhysiqueSimulationdescorpsrigidesetsouples
IA,Audiospatial...
Outillage:EditeurdescèneOptimisationd'assetspourlesgéométries,textures,etc.