Partager via


Mapper OpenGL ES 2.0 à Direct3D 11

Lors du démarrage du processus de portage de votre architecture graphique à partir d’OpenGL ES 2.0 vers Direct3D pour la première fois, familiarisez-vous avec les principales différences entre les API. Les rubriques de cette section vous aident à planifier votre stratégie de port et les modifications d’API que vous devez apporter lors du déplacement de votre traitement graphique vers Direct3D.

Sujet Description

Planifier votre port d’OpenGL ES 2.0 vers Direct3D

Si vous portez un jeu depuis les plateformes iOS ou Android, vous avez probablement fait un investissement important dans OpenGL ES 2.0. Lorsque vous vous préparez à déplacer la base de code de votre pipeline graphique vers Direct3D 11 et le Windows Runtime, il y a quelques éléments que vous devez prendre en compte avant de commencer.

Comparer le code EGL à DXGI et Direct3D

L’interface graphique DirectX (DXGI) et plusieurs API Direct3D jouent le même rôle que EGL. Cette rubrique vous aide à comprendre DXGI et Direct3D 11 du point de vue d’EGL.

Comparer les tampons OpenGL ES 2.0, les uniformes et les attributs de vertex à Direct3D

Pendant le processus de portage vers Direct3D 11 à partir d’OpenGL ES 2.0, vous devez modifier la syntaxe et le comportement de l’API pour transmettre des données entre l’application et les programmes de nuanceur.

Comparer le pipeline de nuanceur OpenGL ES 2.0 à Direct3D

Conceptuellement, le pipeline de nuanceur Direct3D 11 est très similaire à celui d’OpenGL ES 2.0. Toutefois, en termes de conception d’API, les principaux composants de création et de gestion des phases de nuanceur font partie de deux interfaces principales, ID3D11Device1 et ID3D11DeviceContext1. Cette rubrique tente de mapper les modèles d’API de pipeline de nuanceur OpenGL ES 2.0 courants aux équivalents Direct3D 11 dans ces interfaces.

 

Notes sur les fournisseurs spécifiques d’OpenGL ES 2.0

Ces rubriques utilisent la spécification Khronos OpenGL ES 2.0 avec un C indépendant de la plateforme. IOS et Android utilisent la même spécification et le code OpenGL ES 2.0 développé pour ces plateformes est très similaire aux extraits de code que nous allons parcourir, bien qu’ils soient généralement exposés en tant qu’API orientées objet. En outre, en raison des différences de langage et d’intricité de chaque plateforme, il peut y avoir des différences mineures, en particulier dans les types de paramètres de méthode ou dans la syntaxe de langage générale. IOS, par exemple, utilise Objective-C. Android a la possibilité d’utiliser C++ ; toutefois, certains développeurs peuvent s’être appuyés sur une implémentation Java pure. Dans cet esprit, ces rubriques doivent toujours être utiles, car les concepts généraux, la structure et l’utilisation des API OpenGL ES ne diffèrent pas.