MetalKit : Démarrer avec le framework graphique d'Apple
MaisonMaison > Nouvelles > MetalKit : Démarrer avec le framework graphique d'Apple

MetalKit : Démarrer avec le framework graphique d'Apple

Aug 20, 2023

MetalKit est un framework de haut niveau qui facilite la prise en main du Metal. Voici comment commencer à utiliser le framework 3D d'Apple.

Metal est le pipeline de graphiques et de jeux 3D d'Apple permettant de restituer des objets 3D sur les appareils Apple. Conçu pour remplacer OpenGL et autres frameworks 3D, Metal présente l'avantage d'être optimisé pour le matériel Apple afin d'obtenir des performances maximales.

Apple fournit un rendu 3D fluide sur les appareils Apple à des niveaux de performances impossibles avec d'autres frameworks 3D.

Vous avez probablement vu un exemple de rendu Metal sur un appareil iOS ou macOS si vous êtes abonné et exécutez l'application de jeu Arcade d'Apple. La brève animation d'introduction dans Arcade est rendue avec Metal :

En 2015, à la WWDC, Apple a présenté un autre framework de niveau supérieur pour Metal appelé MetalKit. Ce framework facilite l'utilisation de Metal en fournissant des fonctions de niveau supérieur qui simplifient le développement d'applications 3D.

Plus précisément, MetalKit fournit des API Metal supplémentaires dans les domaines suivants :

En utilisant MetalKit, le chargement des actifs et des textures est plus facile en utilisant la classe MTKTextureLoader. Cette classe fournit un moyen simple de charger des ressources et des textures ainsi que de définir des options de texture.

Ces options incluent l'utilisation et le chargement du mipmap, les modes de cache et de stockage, la transformation des coordonnées de texture, l'utilisation de la texture du cube et les options de couleur RVB.

Une mipmap (ou MIP map) n'est qu'une image multicouche, chaque couche ayant une résolution progressivement inférieure à celle de la couche précédente. Les mipmaps sont utilisés pour accélérer le rendu des images et supprimer les artefacts d'alias tels que les motifs moirés.

Un motif moiré est un motif de bandes ou d'artefacts de couleur gênant qui apparaît parfois dans les infographies et qui consiste en des lignes ou des motifs de pixels réguliers tels que des grilles de pixels alternées :

La documentation complète de MTKTextureLoader est disponible sur le site Web des développeurs d'Apple dans la documentation du framework Metal à l'adresse Documentation/MetalKit/MTKTextureLoader.

Model I/O est le framework de développement d'Apple pour la gestion des ressources 3D et 2D. L'intégration Model I/O de MetalKit comprend des API permettant de charger rapidement des textures dans des tampons Metal et d'utiliser des données de maillage à l'aide de conteneurs.

Il existe actuellement environ une demi-douzaine de classes liées aux modèles d'E/S dans MetalKit, traitant principalement des maillages. (Nous reviendrons sur les cours et la programmation orientée objet dans une minute).

La plupart des applications iOS et macOS utilisent des vues, des classes standard qui présentent des informations visuelles et des éléments d'interface utilisateur à l'écran. Différentes sous-classes de vues fournissent différents types de vues.

Par exemple, dans iOS, UIView est la classe de base de vue, mais UIButton est une classe de vue de bouton dérivée de UIView. En utilisant des classes de vue orientées objet dans iOS ou macOS, vous pouvez créer des fonctionnalités supplémentaires qui s'appuient sur des fonctionnalités standard déjà définies par les classes Apple.

C'est ce qu'on appelle l'héritage d'objet. Considérez un objet dans une application comme un ensemble de code qui encapsule à la fois le code et les données sur lesquelles le code opère. En regroupant les deux dans des objets, le code peut être facilement réutilisé et réutilisé par des objets supplémentaires.

En particulier dans MetalKit, une nouvelle classe - MTKView - est fournie, qui permet aux développeurs de créer des vues Metal à part entière dans les applications. En disposant d'une classe de vue Metal dédiée, la vue peut être dessinée et gérée de manière optimale par Metal sans aucun code supplémentaire.

La documentation d'Apple pour MTKView se trouve sur le site Web du développeur à l'adresse Documentation/MetalKit/MTKView. MTKView vous oblige également à d'abord définir un MTLDevice dans l'une de ses propriétés pour lui indiquer dans quel appareil et quel écran restituer les objets Metal.

MTKView fournit également un MTLRenderPassDescriptor lorsqu'on vous le demande, dans lequel vous pouvez restituer vos textures. Consultez la section Documentation/Metal/Render Passes du site des développeurs d'Apple.

En programmation orientée objet (POO), les objets sont définis par des classes. Une classe est une définition dans un fichier de code source qui définit ce que contient un objet et, dans Swift, l'implémentation réelle d'un objet.

Une classe définit des méthodes (fonctions) qui peuvent recevoir des messages qui leur sont envoyés par d'autres objets pour exécuter une fonction. Chaque méthode contient du code pour effectuer certains travaux.

New Project/strong from the File menu. From the project template chooser, choose strongiOS/strong or strongmacOS/strong at the top, then choose strongGame/strong from the icons below and click strongNext/strong:/p> construct. For example:/p> MTLVertexDescriptor defines a method (function) named buildMetalVertexDescriptor which returns a MTLVertexDescriptor on successful completion. This is called the return value or return type./p>New Project/strong>