Extrait du wiki : "Khrono a initialement désigné l'API Vulkan comme étant" l'initiative OpenGL de nouvelle génération "", et il s'agit d' un "effort de refonte en profondeur visant à unifier OpenGL et OpenGL ES en une API commune qui ne sera pas inversée" compatible avec les versions OpenGL existantes ".
Alors, est-ce que ceux qui se lancent maintenant dans la programmation graphique devraient être mieux servis pour apprendre Vulkan au lieu d’OpenGL? Il semble qu'ils serviront le même but.
Réponses:
À peine!
Cela ressemble beaucoup à demander "Les nouveaux programmeurs devraient-ils apprendre le C ++ au lieu du C" ou "Les nouveaux artistes devraient-ils apprendre la peinture numérique au lieu de la peinture physique".
Surtout parce qu’il n’est PAS compatible avec les versions antérieures, les programmeurs graphiques seraient fous d’exclure les API graphiques les plus courantes du secteur, simplement parce qu’il y en a une nouvelle. De plus, OpenGL fait des choses différentes différemment. Il est tout à fait possible qu'une entreprise choisisse OpenGL plutôt que Vulkan, surtout si tôt dans le jeu, et que cette entreprise ne soit pas intéressée par quelqu'un qui ne connaît pas OpenGL, qu'ils connaissent ou non Vulkan.
La spécialisation est rarement une compétence commercialisable.
Pour ceux qui n'ont pas besoin de commercialiser leurs compétences en tant que telles, comme les développeurs indépendants, il serait encore PLUS stupide de supprimer un outil de leur boîte à outils. Un développeur indépendant dépend encore plus de la flexibilité et de la capacité de choisir ce qui fonctionne et ce qui est financé. Spécialisé dans Vulkan limite seulement vos options.
La spécialisation est rarement un paradigme efficace.
la source
Si vous débutez maintenant et que vous souhaitez travailler avec le processeur graphique (au lieu de toujours utiliser un moteur de jeu tel que Unity), vous devez absolument commencer par apprendre Vulkan. Peut-être devriez-vous apprendre GL plus tard aussi, mais il y a deux raisons de penser à Vulkan en premier.
GL et GLES ont été conçus il y a de nombreuses années, lorsque les GPU fonctionnaient de manière très différente. (La différence la plus évidente étant le fait d'appeler des appels en mode immédiat par opposition à la file d'attente en mosaïque et aux commandes.) GL vous encourage à penser dans un style en mode immédiat et possède beaucoup d'héritage. Vulkan propose des modèles de programmation beaucoup plus proches du fonctionnement actuel des processeurs graphiques. Ainsi, si vous apprenez Vulkan, vous comprendrez mieux comment fonctionne réellement la technologie, ainsi que ce qui est efficace et ce qui est inefficace. Je vois beaucoup de gens qui ont commencé avec GL ou GLES et ont immédiatement adopté de mauvaises habitudes, telles qu'émettre des appels de tirage séparés par objet au lieu d'utiliser des VBO ou, pire encore, d'utiliser des listes d'affichage. Il est difficile pour les programmeurs GL de savoir ce qui n’est plus encouragé.
Il est beaucoup plus facile de passer de Vulkan à GL ou GLES que l’inverse. Vulkan rend explicites un grand nombre d'éléments cachés ou imprévisibles dans GL, tels que le contrôle de la simultanéité, le partage et l'état de rendu. Cela soulève beaucoup de complexité du pilote à l'application: mais, ce faisant, il donne le contrôle à l'application et simplifie l'obtention de performances prévisibles et de la compatibilité entre différents fournisseurs de GPU. Si vous avez du code qui fonctionne dans Vulkan, il est assez facile de le transférer vers GL ou GLES, et vous vous retrouvez avec quelque chose qui utilise de bonnes habitudes GL / GLES. Si vous avez un code qui fonctionne dans GL ou GLES, vous devez presque recommencer pour le faire fonctionner efficacement dans Vulkan: surtout s'il a été écrit dans un style hérité (voir le point 1).
Au début, je craignais que Vulkan soit beaucoup plus difficile à programmer et que, même si ce serait acceptable pour les développeurs expérimentés des grandes entreprises, cela constituerait un énorme obstacle pour les indépendants et les amateurs. J'ai posé cette question à certains membres du groupe de travail, qui ont indiqué qu'ils disposaient de points de données provenant de personnes à qui ils avaient déjà parlé et qui s'étaient déjà installés à Vulkan. Ces personnes vont des développeurs d'Epic travaillant sur l'intégration UE4 aux développeurs de jeux amateurs. Selon leurs expériences, pour commencer (c’est-à-dire pour avoir un triangle à l’écran), il fallait apprendre plus de concepts et avoir un code standard plus long, mais ce n’était pas trop complexe, même pour les indépendants. Mais une fois arrivés à ce stade, ils ont trouvé beaucoup plus facile de créer une application réelle pouvant être expédiée, parce que (a) le comportement est beaucoup plus prévisible entre les implémentations de différents fournisseurs et (b) que l’obtention de résultats satisfaisants avec tous les effets activés n’implique pas autant d’essais et d’erreurs. Forts de ces expériences de développeurs réels, ils m'ont convaincu que la programmation contre Vulkan était viable, même pour un débutant en graphisme, et que la complexité générale était moins grande une fois que vous avez dépassé le tutoriel et commencé à créer des démos ou des applications que vous pouvez donner à d'autres personnes.
Comme d’autres l’ont dit: GL est disponible sur de nombreuses plateformes, WebGL est un bon mécanisme de livraison. De nombreux logiciels existants utilisent GL et de nombreux employeurs embauchent pour cette compétence. Il sera dans les prochaines années alors que Vulkan s'intensifiera et développera un écosystème. Pour ces raisons, il serait insensé d’exclure complètement l’apprentissage de GL. Malgré cela, vous aurez beaucoup plus de facilité avec cela et deviendrez un meilleur programmeur GL (et un meilleur programmeur GPU en général) si vous commencez avec quelque chose qui vous aide à comprendre le GPU au lieu de comprendre son fonctionnement. il y a 20 ans.
Bien sûr, il y a une option de plus. Je ne sais pas si cela vous concerne en particulier, mais j'estime que je devrais le dire de toute façon aux autres visiteurs.
Pour être un développeur de jeux vidéo indépendant ou un concepteur de jeux, ou pour faire des expériences de réalité virtuelle, vous n'avez pas besoin d'apprendre Vulkan ou GL. Beaucoup de gens commencent avec un moteur de jeu (Unity ou UE4 sont populaires en ce moment). En utilisant un tel moteur, vous pourrez vous concentrer sur l'expérience que vous souhaitez créer plutôt que sur la technologie qui le sous-tend. Cela vous cachera les différences entre GL et Vulkan, sans que vous ayez à vous soucier de ce qui est pris en charge sur votre plate-forme. Cela vous permettra de vous familiariser avec les coordonnées 3D, les transformations, l'éclairage et l'animation sans avoir à traiter tous les détails en même temps. Certains studios de jeu ou de réalité virtuelle ne fonctionnent que sur un moteur et ne disposent pas du tout d'un expert GL à temps plein. Même dans les grands studios qui écrivent leurs propres moteurs, ceux qui font la programmation graphique sont une minorité,
En savoir plus sur la manière d'interagir avec un processeur graphique est certainement une compétence utile que de nombreux employeurs apprécieront, mais vous ne devriez pas avoir l'impression d'apprendre à en faire autant pour la programmation 3D; et même si vous le savez, ce ne sera pas nécessairement quelque chose que vous utiliserez tous les jours.
la source
L'apprentissage de la programmation graphique ne se limite pas à l'apprentissage des API. Il s'agit d'apprendre comment fonctionne le graphique. Transformations de vertex, modèles d'éclairage, techniques d'ombre, mappage de texture, rendu différé, etc. Celles-ci n'ont absolument rien à voir avec l'API que vous utilisez pour les implémenter.
La question est donc la suivante: voulez-vous apprendre à utiliser une API? Ou voulez-vous apprendre les graphiques ?
Pour pouvoir utiliser des graphiques à accélération matérielle, vous devez apprendre à utiliser une API pour accéder à ce matériel. Mais une fois que vous avez la possibilité de vous connecter au système, votre apprentissage graphique cesse de se concentrer sur ce que l'API fait pour vous et se concentre plutôt sur les concepts graphiques. Éclairage, ombres, reliefs, etc.
Si votre objectif est d'apprendre les concepts graphiques, vous passerez moins de temps avec l'API à ne pas passer à l' apprentissage de concepts graphiques . Comment compiler des shaders n'a rien à voir avec les graphiques. Ni comment leur envoyer des uniformes, comment télécharger des données de vertex dans des tampons, etc. Ce sont des outils et des outils importants pour le travail graphique.
Mais ils ne sont pas réellement des concepts graphiques. Ils sont un moyen d'atteindre un but.
Il faut beaucoup de travail et d’apprentissage avec Vulkan avant de pouvoir arriver au point où vous êtes prêt à apprendre les concepts graphiques. La transmission de données à des shaders nécessite une gestion explicite de la mémoire et une synchronisation explicite des accès. Et ainsi de suite.
En revanche, atteindre ce point avec OpenGL nécessite moins de travail. Et oui, je parle d'OpenGL, un profil de base basé sur un shader, moderne.
Il suffit de comparer ce qu'il faut pour faire quelque chose d'aussi simple que d'effacer l'écran. En vulkan, cela nécessite au moins un peu de compréhension d'un grand nombre de concepts: tampons de commande, files d'attente de périphériques, objets de mémoire, images et diverses constructions WSI.
OpenGL ... il est trois fonctions:
glClearColor
,glClear
et les tampons d'échange spécifiques à la plate - forme appel. Si vous utilisez OpenGL plus moderne, vous pouvez le réduire à deux:glClearBufferuiv
et permuter les tampons. Vous n'avez pas besoin de savoir ce qu'est un framebuffer ou d'où provient son image. Vous effacez-le et permutez les tampons.Etant donné qu'OpenGL vous cache beaucoup, il vous faut beaucoup moins d'efforts pour en arriver au point où vous apprenez réellement les graphiques, par opposition à l'interface avec le matériel graphique.
De plus, OpenGL est une API (relativement) sûre. Il y aura des erreurs lorsque vous faites quelque chose de mal, généralement. Vulkan n'est pas. Bien qu'il existe des couches de débogage que vous pouvez utiliser pour vous aider, l'API Vulkan de base ne vous dira presque rien, sauf en cas de défaillance matérielle. Si vous faites quelque chose de mal, vous pouvez obtenir un rendu non conforme ou planter le GPU.
Couplé à la complexité de Vulkan, il devient très facile de faire la mauvaise chose par accident. Oublier de définir une texture sur la bonne disposition peut fonctionner dans une mise en œuvre, mais pas dans une autre. Oublier un point de synchronisation peut parfois fonctionner, mais échouer soudainement sans raison. Et ainsi de suite.
Cela dit, l’apprentissage des graphiques ne se limite pas à l’apprentissage des techniques graphiques. Il y a un domaine en particulier où Vulkan gagne.
Performance graphique .
Être un programmeur graphique 3D nécessite généralement une idée de la façon d'optimiser votre code. Et c’est ici que la dissimulation d’informations par OpenGL et son comportement dans le dos deviennent un problème.
Le modèle de mémoire OpenGL est synchrone. L'implémentation est autorisée à émettre des commandes de manière asynchrone tant que l'utilisateur ne peut pas faire la différence. Ainsi, si vous rendez le rendu d'une image et essayez de la lire, l'implémentation doit générer un événement de synchronisation explicite entre ces deux tâches.
Mais pour atteindre les performances dans OpenGL, vous devez savoir que les implémentations le font de manière à pouvoir l' éviter . Vous devez savoir où l'implémentation publie secrètement des événements de synchronisation, puis réécrire votre code pour les éviter autant que possible. Mais l'API elle-même ne rend pas cela évident. vous devez avoir acquis cette connaissance quelque part.
Avec Vulkan ... vous êtes celui qui doit émettre ces événements de synchronisation. Par conséquent, vous devez être conscient du fait que le matériel n'exécute pas les commandes de manière synchrone. Vous devez savoir quand vous devez émettre ces événements et vous devez donc savoir qu'ils ralentiront probablement votre programme. Donc, vous faites tout ce que vous pouvez pour les éviter.
Une API explicite comme Vulkan vous oblige à prendre ce type de décision en matière de performances. Et par conséquent, si vous apprenez l’API Vulkan, vous avez déjà une bonne idée de ce qui va être lent et de ce qui va être rapide.
Si vous devez effectuer un travail sur le framebuffer qui vous oblige à créer un nouveau renderpass, il y a de fortes chances qu'il soit plus lent que si vous pouviez l'intégrer dans un sous-passe séparé d'un renderpass. Cela ne signifie pas que vous ne pouvez pas faire cela, mais l'API vous avertit que cela pourrait entraîner des problèmes de performances.
Dans OpenGL, l'API vous invite fondamentalement à modifier les pièces jointes de votre framebuffer bon gré mal gré. Il n'y a aucune indication sur les modifications rapides ou lentes.
Dans ce cas, apprendre Vulkan peut vous aider à mieux apprendre à créer des graphiques plus rapidement. Et cela vous aidera certainement à réduire les frais généraux du processeur.
Il faudra encore beaucoup de temps avant de pouvoir apprendre les techniques de rendu graphique.
la source
Le principal attrait d'OpenGL (du moins pour moi) est qu'il fonctionne sur de nombreuses plates-formes. Actuellement, Vulkan ne fonctionne pas sur OSX et Apple a une API concurrente appelée Metal. Il est fort possible que Apple ne prenne en charge Vulkan dans un certain temps et que, dans ce cas, le support Vulkan n'atteigne que son dernier matériel. OpenGL supporte déjà la plupart des matériels et continuera à le faire.
la source
Cela dépend de ce que vous voulez faire. Si vous voulez apprendre la programmation graphique uniquement pour vous-même, peu importe ce que vous choisissez.
Si vous songez à un travail professionnel, je vous recommande Vulkan. C'est plus proche du matériel et je pense que la connaissance du matériel est importante pour les programmeurs graphiques.
Vulkan est plus proche du matériel parce qu'OpenGL fait beaucoup de choses sous le capot que vous faites manuellement dans Vulkan, comme exécuter la file d'attente de commandes. La gestion de la mémoire dépend également de l'application et non du pilote. Vous devez vous préoccuper de l’allocation de mémoire pour
uniforms
(variable que vous passez de CPU à GPU), de leur suivi. Vous avez plus de choses à vous inquiéter, mais cela donne aussi plus de liberté d'utilisation de la mémoire. Cela peut sembler effrayant et accablant mais ce n’est vraiment pas le cas. Ce n'est que la prochaine API que vous devez apprendre.Comprendre ces choses vous aidera également à comprendre le fonctionnement du GPU. Ce qui vous permettra d’optimiser à la fois sur Vulkan et sur OpenGL.
Et une dernière chose qui me vient à l’esprit, si vous commencez à apprendre la programmation graphique, probablement lorsque vous chercherez un emploi, car un Vulkan sera plus populaire (peut-être plus populaire que OpenGL). De plus, pour autant que je sache, la plupart des entreprises qui utilisent une API graphique écrivent leurs propres fonctions autour de celle-ci, il est donc possible que, sur le poste, vous n'écriviez pas dans OpenGL ni dans Vulkan, mais des connaissances sur le GPU seront toujours utiles.
la source
Cela fait quelques mois que je «me familiarise avec» la programmation graphique.
En ce moment, je suis toujours au lycée et je peux vous dire que je cherche presque toujours à développer des applications multiplates-formes. C'est en fait mon problème numéro un avec Vulkan - Il n'est pas développé pour fonctionner sur toutes les plateformes. Je travaille avec OpenGL en Java depuis plus de 6 mois.
Un autre problème que j'ai avec les revendications de Vulkan est de savoir comment il prétend être meilleur. Alors que OpenGL ne met certainement pas à jour leur site web très souvent. Ils continuent à publier constamment des mises à jour et j'attends toujours avec impatience les nouvelles mises à jour qui s'exécutent plus rapidement ou fonctionnent mieux avec le nouveau matériel.
Cela étant dit, bien que je travaille principalement avec OpenGL, je comprends les principes de base de DirectX et de Vulkan. Bien que je ne travaille pas beaucoup avec eux, particulièrement Vulkan, car il est très difficile à apprendre et pas aussi structuré pour la programmation qu'OpenGl et DirectX.
Enfin, je voudrais ajouter que la spécialisation dans un seul domaine, comme j’utilise principalement Java et OpenGL, n’est pas étonnamment autonome. Si je voulais obtenir un emploi dans une entreprise de création de jeux, OpenGL ne serait généralement utilisé que pour créer des jeux destinés au développement sous Linux et Android et éventuellement à OSX. DirectX pour Windows et consoles <Quel Vulkan peut remplacer dans certains cas.
Je ne peux pas supporter les mises à jour OpenGL pour toujours, et je ne le ferai pas. Mais c'est ma préférence pour le développement.
la source
Je voudrais vous donner mon point de vue graphique débutant sur le sujet. Ce que j'ai compris (au cours de nombreuses années en tant qu'ingénieur dans un autre domaine), c'est que les concepts fondamentaux sont la partie la plus importante. Une fois que vous avez une bonne compréhension de ces éléments, l’apprentissage de la dernière nouvelle API brillante est la partie la moins difficile. Je ne sais pas si vous êtes un jeune amateur tentant de programmer le nouveau Skyrim ou si vous recherchez un emploi dans le domaine de la technologie de l'information.
Je vous dis ce que je pense que c'est la meilleure approche à mon avis pour apprendre l'infographie "comme un pro".
Commencer à se soucier de la performance avant de comprendre comment tracer une ligne, c'est comme se soucier de l'aérodynamisme de votre voiture avant d'obtenir le permis de conduire.
la source
Je suis autodidacte en C ++ sans aucune éducation formelle et au cours des 15 dernières années, j'ai appris OpenGL 1.0 à travers Modern OpenGL et DirectX 9c, 10 et 11. Je ne suis pas entré dans DirectX 12 et je voulais essayez-moi à Vulkan. J'ai seulement terminé quelques tutoriels de base pour dessiner un simple triangle ou un simple cube en rotation avec Vulkan. Comme avec DirectX 11 et OpenGL 3.3+, j'ai écrit des moteurs de jeu 3D entièrement opérationnels et les ai même utilisés pour créer des jeux simples.
Je dois dire que cela dépend de l'environnement général de la personne qui apprend. Si vous vous lancez dans la programmation graphique 3D, je dirais que, pour commencer, il convient de passer à OpenGL ou à DirectX 11, car il existe de nombreux tutoriels, ressources, exemples et applications qui fonctionnent déjà. Apprendre les graphiques 3D n’est en aucun cas un sujet facile.
Si nous faisons abstraction de l’aspect programmation et que nous nous concentrons simplement sur le type de techniques utilisées impliquant les différents niveaux de mathématiques menant à des ensembles de données et à des structures et algorithmes de données; Avant de pouvoir même créer un moteur de jeu 3D ou en utiliser un déjà existant, vous devez connaître et comprendre beaucoup de choses.
Maintenant, si vous comprenez déjà toutes les notions mathématiques et théoriques et que vous avez une certaine expérience en programmation, vous pouvez utiliser les API, bibliothèques et applications existantes, telles que Unity ou Unreal Engine, et simplement écrire le code source et les scripts dont vous avez besoin pour faire fonctionner votre application. .
Donc, de ma propre compréhension et de la façon dont je vois les choses, voici si vous cherchez à créer un jeu rapide juste pour créer un jeu; aller avec des cadres déjà existants qui rendraient votre temps de production beaucoup plus petit. D'autre part, si vous souhaitez comprendre le fonctionnement interne de la conception des moteurs de jeu / moteurs de physique / moteurs d'animation et des simulateurs et si vous souhaitez en créer un vous-même, vous avez le choix entre choisir votre API, telle que DirectX, OpenGL ou Vulkan. Votre connaissance de la programmation existante serait également l’un des facteurs déterminants. Ce que je veux dire par là est que si vous ne connaissez rien au multi-threading, aux appels synchrones ou asynchrones, aux barrières de mémoire, aux courses de données, aux sémaphores et au parallélisme (programmation parallèle),
Je mentionne cela parce que si vous ne savez pas comment gérer correctement votre mémoire avec vos threads et le temps d'accès; Vulkan va te mordre dans le cul! Où OpenGL et DirectX vous tiendrons au courant tout en consommant beaucoup plus de puissance de calcul.
Maintenant, si votre niveau de connaissance en programmation est correct et que vous avez les antécédents mathématiques suivants qui concernent tous les niveaux d’Algèbre, Géométrie, Trigonométrie, Algèbre Booléenne, Probabilités, Statistiques, Algèbre à base de matrices vectorielles, Calcul I, II, .... Infinty (lol). Calcul vectoriel, Algèbre linéaire, Systèmes d'équations linéaires, Géométrie analytique avec calcul vectoriel de calculs à variables multiples, Théorie des nombres et des ensembles, Ensembles de données et structures, Analyse informatique, Conception algorithmique et algorithmique. Ensuite, vous pourrez entrer dans les concepts de ce qu’il faut pour créer un moteur de jeu réel, sans aucune mathématique appliquée ni aucune équation de physique dont vous aurez besoin. Une fois que vous avez cette expérience et suffisamment d'expérience en programmation, notamment la gestion de la mémoire et l'arithmétique des pointeurs, vous pouvez commencer à créer votre moteur de jeu.
Vous devez donc comprendre tous les aspects de la création d’un moteur de jeu afin de faire de la programmation graphique avancée. Si vous ne faites que des graphiques 2D, la vie n’est pas compliquée, car vous pouvez le faire en Python sans l’une des API susmentionnées! Mais si vous voulez être sérieux et concevoir un moteur de jeu complet à la fois robuste et robuste, avec de nombreux jeux de fonctionnalités, vous pouvez choisir entre C ou C ++ et utiliser OpenGL, Direct X ou Vulkan. N'importe lequel d'entre eux irait bien. Maintenant, si vous construisez le moteur à partir de zéro et que vous recherchez le moteur le plus "efficace" avec le moins de surcharge de ressources, choisissez Vulkan. Mais si vous allez dans cette voie, vous devriez au moins savoir tout ce que j'ai mentionné ci-dessus et quelques-uns!
Comme vous pouvez le constater, Vulkan n’est pas vraiment destiné aux programmeurs débutants dans ce domaine. Vous devez avoir une connaissance approfondie de tous les maths, paradigmes de programmation, tous les différents types de jeux de données et d'algorithmes, y compris le threading, la synchronisation de la mémoire, la programmation parallèle. Et même dans ce cas, il s’agit simplement d’amener l’application à charger un simple triangle 2D sur l’écran. Ce qui peut être fait dans environ 100 lignes de code dans OpenGL ou dans 250 lignes de code dans DirectX prend près de 1000 lignes de code dans Vulkan!
Vulkan laisse tout à vous, car vous êtes responsable de tous les aspects de votre utilisation de Vulkan dans votre application. Il n'y a pas de prise de main, cela ne vous gêne pas, cela vous permet de vous tirer une balle dans le pied ou de vous pendre et d'acheter un nœud coulant récursif!
Maintenant, cela ne veut pas dire que les débutants ou ceux qui sont nouveaux dans ce domaine ne devraient pas apprendre Vulkan, mais voici ce que je leur suggèrerais: Premièrement, apprenez assez de choses sur OpenGL et / ou DirectX application de base est structurée juste pour rendre un simple triangle ou un cube en rotation. Familiarisez-vous avec leurs API et leurs modèles récurrents de leurs structures. Tout en apprenant que vous pouvez apprendre Vulkan du côté de Parallel, vous pouvez ainsi voir comment chacun des trois accomplit la même tâche tout en sachant comment ils le font différemment. Vous pouvez également comparer les résultats entre les différentes API et à partir de là, vous pourrez alors choisir lequel vous convient le mieux. Cette méthode vous donnerait aussi un autre outil dans votre boîte à outils, et vous pourriez même écrire votre application pour supporter les 3 et avoir le "
En fin de compte, il appartient à cette personne de choisir l’itinéraire qu’elle souhaite emprunter. À partir de là, son succès dépend de son dévouement, de ses études constantes, de son dur labeur, de ses essais et erreurs et, plus important encore, de ses échecs. Si vous n'échouez pas, vous échouez! Vous ne réussissez que si vous avez échoué, trouvé votre (vos) erreur (s), corrigé (e) s, progressé (e), relevé (e) et tout recommencé!
la source
Vous devriez d'abord apprendre OpenGL, car c'est la norme pour les graphiques sur de nombreuses plates-formes.
Même s'il existe une bibliothèque plus récente, il est très important de comprendre les bases et de travailler avec un langage utilisé dans l'ensemble du secteur ... Surtout que Vulkan ne sera plus utilisé dans les grandes entreprises pendant un certain temps.
Personne ne veut s’adapter tout de suite et finit par se faire avoir par un Framework / Library non stable.
Ils auraient besoin d'embaucher / recycler leurs programmeurs Open-GL actuels, et ce n'est pas nécessaire.
De plus, j'ai entendu dire qu'OpenGL et Vulkan n'étaient pas exactement les mêmes. J'entends dire que Vulkan est une API de niveau inférieur et plus proche du code machine qu'OpenGL.
Cette réponse que je viens de trouver semble avoir beaucoup d'informations intéressantes
https://gamedev.stackexchange.com/questions/96014/what-is-vulkan-and-how-does-it-differ-from-opengl
Une autre chose à prendre en compte est le problème rencontré avec OpenGL 1.
OpenGL 1 à OpenGL 2 avait des modifications MAJEURES et, étant donné que de nombreuses personnes utilisaient OpenGL1 et le matériel pris en charge, la compatibilité avec certaines versions / moteurs était très lourde, et il est parfois très pénible pour les développeurs de continuer à le supporter. .
Outre le support, la langue a tellement changé que vous avez dû apprendre de nouvelles choses.
Cela s'est produit avec des frameworks tels que JavaFX (de 1.x à 2.x) et Play! Cadre (également 1.x à 2.x). Des modifications complètes du cadre, ce qui signifie que nous devons réapprendre ... tout ...
Vous devez donc essentiellement attendre que Vulkan soit STABLE. Cela signifie attendre probablement le correctif 2.0. Cela ne signifie pas que vous ne pouvez pas en apprendre davantage sur les bases de Vulkan, mais simplement savoir que cela pourrait changer. Je suppose qu'un groupe comme Kronos fournirait dès le début une API très stable, d’autant plus que plusieurs ingénieurs de Nvidia et d’AMD travaillent sur Vulkan, notamment un responsable de Nvidia supervisant apparemment le projet, ainsi que The base of Mantle; Cependant, comme tout logiciel, nous, les codeurs, verrons si cela fonctionne bien dès le début, mais beaucoup sont méfiants et attendent de voir ce qui se passe.
la source