Interface matérielle de rendu (RHI) Le module RHI graphique du méthane implémente un ensemble d'interfaces publiques orientées objet, qui rendent la programmation graphique moderne facile et pratique dans une plate-forme et une manière indépendante de l'API. Tutoriels Commencez à apprendre l'API graphique du méthane avec Hello Triangle Tutorial Documentation et continuez avec les autres. Nom / lien | Capture d'écran | Description |
|---|
| 1. Bonjour triangle |  | Triangle coloré rendant en 100 lignes de code. | | 2. Bonjour cube |  | Rendu de cube coloré dans 200 lignes de code avec sommet et tampons d'index. | | 3. Cube texturé |  | Le cube texturé présente l'utilisation des tampons, des textures et des échantillonneurs avec l'ombrage Phong. | | 4. Cube d'ombre |  | Shadow Cube présente le rendu multi-pass avec des passes de rendu. | | 5. Typographie |  | La typographie démontre le rendu de texte animé avec des mises à jour dynamiques de l'atlas de police à l'aide de l'interface utilisateur de méthane. | | 6. BAIN MAP CUBE |  | Texturation du réseau de map cube avec le rendu de la boîte à ciel. | | 7. Rendu parallèle |  | Rendu parallèle des instances de cube texturé à la réussite de rendu. | | 8. Console calcule |  | Game of Life de Conway a mis en œuvre dans Compute Shader et en cours d'exécution dans une application de console pure. |
Échantillons Les échantillons de méthane démontrent des techniques avancées et des scénarios d'utilisation avec une implémentation plus complexe que les tutoriels ci-dessus. Les échantillons sont répartis sous forme de référentiels séparés. Nom / lien | Capture d'écran | Description |
|---|
| Astéroïdes |  | Benchmark démontrant des commandes de rendu parallèle codant en un seul passage de rendu pour le grand nombre d'objets d'astéroïdes hétérogènes traités dans plusieurs threads. |
Caractéristiques- Classes d'application et d'entrée multiplateforme : Windows, MacOS et Linux sont pris en charge
- Modules CMake pour la configuration de création d'application pratique, ajoutant des shaders et des ressources intégrées
- Les shaders HLSL-6 servant toutes les API graphiques converties en langage de shader natif et compilé en temps de construction avec Spirv-Cross et DirectXcompiler
- Bibliothèque mathématique HLSL ++ avec syntaxe de type HLSL dans les optimisations C ++ et Vector-Istruction pour différentes plates-formes
- Abstractions API graphiques modernes : basée sur DirectX 12, Vulkan et API métalliques
- Rendre l'état et la configuration du programme avec syntaxe d'initialisation compacte
- Les objets de liaison du programme mettent en œuvre une liaison efficace des arguments de shader aux ressources
- Suivi automatique des états de ressources utilisés pour la configuration automatique des barrières de transition des ressources
- Les ressources sont automatiquement conservées de détruire lorsqu'ils sont utilisés sur GPU avec des pointeurs partagés dans l'état de la liste de commandes
- Liste de commandes Exécution du suivi de l'état avec des horodatages GPU facultatifs
- Liste des commandes de rendu parallèle pour les commandes de rendu multi-thread encodantes en un seul rendu
- Exécution de files d'attente de commandes sur GPU avec synchronisation à l'aide de clôtures
- Ressources de GPU privées mises à jour de manière asynchrone via la liste de commandes de téléchargement et la ressource partagée
- Registre des objets graphiques nommés permettant la réutilisation des états de rendu et des ressources graphiques entre les objets de rendu
- Primitives et extensions graphiques :
- Classe de base d'application graphique avec gestion des ressources par trame et tampons de trame redimensionner permettent un triple tampon efficace
- Caméra caméra à arc primitif et interactive
- Génération de maillage procédurale pour quad, boîte, sphère, icosaèdre et mailles uber
- Classes d'extension de rendu d'écran et de sky-box
- Chargeur de texture (actuellement implémenté avec STB, prévu pour le remplacement par OpenImageio)
- Interface utilisateur :
- Classe de base d'application d'interface utilisateur avec HUD intégré, badge de logo et aides / paramètres Panneaux de texte
- Bibliothèque de typographie pour le chargement des polices, la mise à jour dynamique de l'atlas, le rendu et la mise en page
- Bibliothèque des widgets (en cours de développement)
- Infrastructure de plate-forme :
- Application de base avec gestion des fenêtres et gestion des entrées pour Windows, MacOS et Linux
- Mécanisme d'événements reliant les émetteurs et les récepteurs via des interfaces de rappel
- Sous-système d'animations
- Fournisseurs de ressources intégrées
- Capacités intégrées de débogage et de profilage :
- Instrumentation de la bibliothèque pour l'analyse des performances avec des outils de profilage trace
- Débogage des noms pour tous les objets GPU et les régions de débogage pour les appels de l'API graphiques à utiliser avec des outils de profilage de trame
- Intégration continue avec des versions automatisées multiplateformes, des tests unitaires et une analyse de code statique du cloud sonar dans les actions GitHub
Pour des fonctionnalités détaillées Description et des plans de développement, veuillez vous référer à la documentation des modules. Outils de développement pris en charge Environnements de développement 
- Microsoft Visual Studio 2019
- Solutions et projets Build (Générer avec Build / Windows / Build.bat)
- CMake Native Build Support (préconfiguré avec cmakepresets.json)
- Code XPle
- Xcode Workspace et projets (Générer avec Build / Unix / Build.sh)
- Microsoft VS Code et Gitpod (préconfiguré avec cmakepresets.json et .vscode / settings.json)
- Clion de cerveaux à jet (préconfiguré avec .Idea)
- Créateur QT avec support natif Cmake
Le kit de méthane est en cours de développement avec le soutien des outils de développement des cerveaux de jet. La licence de développement de projet open source est fournie gratuitement à tous les contributeurs clés du projet de kit méthane. Analyse du code statique Le kit de méthane est livré avec une analyse continue du code statique C ++ continu effectué dans le cadre des builds "scan" CI automatisés avec des résultats à jour publiés sur sonar cloud séparément pour toutes les plateformes prises en charge. | Résultats de la analyse maîtresse | Fenêtre | Macos | Linux |
|---|
| État de la construction de numérisation | | | | | Porte de qualité | | | | | Maintenabilité | | | | | Fiabilité | | | | | Sécurité | | | | | Dette technique | | | | | Insectes | | | | | Vulnérabilités | | | | | Odeurs de code | | | | | Lignes dupliquées | | | | | Tests Couverture | | | | | Lignes de code | | | |
Outils de profilage trace Le kit de méthane contient une instrumentation intégrée de toutes les bibliothèques pour l'analyse des performances avec la collection de traces à l'aide d'outils suivants. Veuillez vous référer au document d'instrumentation méthane pour plus de détails sur les instructions de collecte de traces et les options de construction connexes. | Tracy Frame Profiler | Analyseur de trace graphiques Intel |
|---|
 |  |
Outils de profilage et de débogage de cadre- Analyseur de cadre graphique Intel
- Débogueur en métal Apple Xcode
- Renderdoc
- Microsoft Pix
- Nvidia nSight Graphics
Dépendances externes- Bibliothèques
- Outils de construction
- Actifs
Licence Methane Kit est distribué sous la licence Apache 2.0: il est gratuit et ouvert pour les contributions! Copyright 2019-2022 © Evgeny Gorodetskiy
Développer
Informations supplémentaires
|