Qt Quick 3D, een hoogwaardige 3D-API voor Qt Quick

ontwerpStudio3D

Qt 6 begint duidelijk aangekondigd te worden en de details van deze versie zijn correct, vooral op 3D-niveau. Nou, in een aankondiging mensen die de leiding hebben over ontwikkeling heeft een nieuwe API voor 3D uitgebracht in Qt Quick: Qt Quick 3D.

Deze zou concurreren met Qt 3D, een reeds volledige 3D-engine geïntegreerd met Qt, zelfs als ze allebei dezelfde abstractie zouden gebruiken. Het belangrijkste verschil tussen Qt Quick 3D en Qt 3D zou het abstractieniveau zijn, waarbij Qt Quick 3D abstracter is. De ontwikkeling van Qt 3D zou moeten doorgaan, vooral op het gebied van prestaties​ Qt Quick 3D zou echter de rendering-engine van Qt 3D Studio moeten vervangen: Qt Quick 3D is op deze basis gebouwd. Er zullen tools worden verstrekt om de overgang naar Qt Quick 3D te vergemakkelijken.

Over Qt Quick 3D

Voor Qt 6, Qt Quick zal een grafiek blijven gebruiken voor weergave, maar het zal extensies hebben om 3D te beheren, deze extensies worden Qt Quick 3D genoemd.

Het belangrijkste doel is om de synchronisatiemoeilijkheden tussen de 2D- en 3D-onderdelen te beperken van een interface: op dit moment worden beide afgehandeld door totaal verschillende rendering-engines die geen gemakkelijke manier hebben om te synchroniseren, wat een behoorlijk vreemde weergave voor animaties kan geven.

De prestaties worden ook beïnvloed door het gebruik van twee verschillende motoren die niet speciaal zijn ontworpen om samen te werken. Met Qt Quick 3D zou de situatie eenvoudiger moeten zijn: een runtime, Qt Quick, een scènegrafiek, een combinatie van 2D en 3D, een interface-bewerkingsinterface, Qt Design Studio.

De Qt Quick 3D API moet dezelfde principes volgen als de Qt Quick API's- Het moet gebruiksvriendelijk zijn, hoge prestaties leveren, zonder de details van de implementatie van de rendering-engine te hoeven begrijpen.

Qt Quick 3D is niet bedoeld voor complexe en specifieke 3D-toepassingen, maar voor de meeste grafische interfaces, die 2D en 3D combineren. (Uiteindelijk zou een steeds groter deel van de rendering-API zichtbaar moeten zijn, waardoor geavanceerdere toepassingen mogelijk zijn.)

Qt Quick 3D kan al worden gebruikt met Qt 5, hoewel niet in zijn definitieve vorm (de volledige integratie met Qt Quick vereist enkele wijzigingen in binaire compatibiliteit, het zal alleen gebeuren met Qt 6): in het begin zal alleen een QML-API zijn beschikbaar, maar een C ++ API zou snel moeten volgen.

ook Er wordt een reeks componenten van zeer hoog niveau aangeboden.l om een ​​weergave van de 3D-inhoud te definiëren: lichten, camera's, te renderen materialen, maar details van de implementatie zullen niet worden gezien.

Daarom moet de API heel eenvoudig te gebruiken zijn, ook al heeft hij beperkte mogelijkheden: het zal niet mogelijk zijn om heel precies aan te passen aan de manier waarop een 3D-scène wordt weergegeven, in tegenstelling tot Qt 3D. In het bijzonder is de enige rendering-engine die momenteel beschikbaar is voor Qt Quick 3D gebaseerd op een enkele stap vooruit (nogmaals, in tegenstelling tot Qt 3D).

TochQt Quick 3D heeft al een aantal primitieve componenten: Node wordt het 3D-equivalent van Item for Qt Quick.

De camera zorgt voor de transformatie van een 3D-scène naar een 2D-oppervlak, met een 3D-positie en een projectie.

Hoewel de View3D-component de enige is die de QQuickItem-klasse erft, is het in C ++ de enige die kan worden weergegeven in een Qt Quick-scène.

De 3D-scène kan worden gedefinieerd als of buiten de View3D-subcomponent; zo kan een scène zichtbaar zijn vanuit een enkele 3D-weergave of meerdere gezichtspunten hebben. View3D vertegenwoordigt het standpunt van een cameracomponent.

Voorlopig Qt Quick 3D is niet geïntegreerd met Qt, de bijbehorende module moet apart worden gedownload. Qt 5.12 is de minimaal vereiste versie.

De module zou moeten integreren met Qt 5.14, als een technologievoorbeeld, met volledige Qt 5.15-ondersteuning. Momenteel wordt de nieuwe rendering-engine niet voor alle toepassingen gebruikt.

bron: https://blog.qt.io/


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.