Qt 6 begynder at blive annonceret tydeligt, og detaljerne i denne version er nøjagtige, især på 3D-niveau. Nå, i en meddelelse de mennesker, der har ansvaret for udviklingen udgivet en ny API til 3D i Qt Quick: Qt Quick 3D.
Denne ville konkurrere med Qt 3D, en allerede fuld 3D-motor integreret med Qt, selvom de begge ville bruge den samme abstraktion. Den største forskel mellem Qt Quick 3D og Qt 3D ville være abstraktionsniveauet, hvor Qt Quick 3D var mere abstrakt. Qt 3D-udvikling bør fortsætte, især med hensyn til ydeevne. Imidlertid bør Qt Quick 3D erstatte Qt 3D Studios gengivelsesmotor: Qt Quick 3D er bygget på dette fundament. Der leveres værktøjer til at lette overgangen til Qt Quick 3D.
Om Qt Quick 3D
For Qt 6, Qt Quick fortsætter med at bruge en graf til gengivelse, men det vil have udvidelser til at styre 3D, disse udvidelser kaldes Qt Quick 3D.
Dens hovedformål er at begrænse vanskelighederne ved synkronisering mellem 2D- og 3D-delene af en grænseflade: i øjeblikket håndteres begge af helt forskellige gengivelsesmotorer, der ikke har en nem måde at synkronisere på, hvilket kan give en ret mærkelig gengivelse til animationer.
Ydelsen påvirkes også af brugen af to forskellige motorer, der ikke er specielt designet til at arbejde sammen. Med Qt Quick 3D skal situationen være enklere: en runtime, Qt Quick, en scenegraf, der kombinerer 2D og 3D, en interface-redigeringsgrænseflade, Qt Design Studio.
Qt Quick 3D API skal følge de samme principper som Qt Quick API'erne- Det skal være let at bruge, høj ydeevne uden at skulle forstå detaljerne i gengivelsesmotorimplementeringen.
Qt Quick 3D er ikke beregnet til komplekse og specifikke 3D-applikationer, men til de fleste grafiske grænseflader, dem der kombinerer 2D og 3D. (Til sidst skal en stadig større del af gengivelses-API'et være synlig, hvilket giver mulighed for mere avancerede anvendelser.)
Qt Quick 3D kan allerede bruges med Qt 5, selvom det ikke er i sin endelige form (Fuld integration med Qt Quick kræver nogle ændringer i binær kompatibilitet, det sker kun med Qt 6): i starten vil kun en QML API være tilgængelig, men en C ++ API skal hurtigt følge.
Også Der vil blive tilbudt en række komponenter på meget højt niveau.Jeg definerer en visning af 3D-indholdet: lys, kameraer, materialer, der skal gengives, men detaljer om implementeringen kan ikke ses.
Derfor skal API'en være meget enkel at bruge, selvom den har begrænsede muligheder: det vil ikke være muligt at tilpasse sig meget præcist, hvordan en 3D-scene vises, i modsætning til Qt 3D. Især er den eneste gengivelsesmotor, der i øjeblikket er tilgængelig for Qt Quick 3D, baseret på et enkelt skridt fremad (igen, i modsætning til Qt 3D).
Ikke desto mindre, Qt Quick 3D har allerede et antal primitive komponenter: Node vil være 3D-ækvivalent for Item for Qt Quick.
Kameraet håndterer transformationen af en 3D-scene til en 2D-overflade med en 3D-position og en projektion.
Mens View3D-komponenten er den eneste, der arver QQuickItem-klassen, er det i C ++ den eneste, der kan vises i en Qt Quick-scene.
3D-scenen kan defineres som eller uden for View3D-underkomponenten; således kan en scene være synlig fra en enkelt 3D-visning eller have flere synspunkter. View3D repræsenterer synspunktet for en kamerakomponent.
For øjeblikket Qt Quick 3D er ikke integreret med Qt, det tilsvarende modul skal downloades separat. Qt 5.12 er den krævede minimumsversion.
Modulet skal integreres med Qt 5.14 som en forhåndsvisning af teknologi med fuld Qt 5.15-understøttelse. I øjeblikket bruges den nye gengivelsesmotor ikke til alle applikationer.
kilde: https://blog.qt.io/
Vær den første til at kommentere