Lorsque la spécification OpenGL est mise à jour, ils n'ajoutent que des fonctionnalités. Donc, en théorie, le matériel le plus récent et le plus performant avec la prise en charge des profils de base et de compatibilité devrait fonctionner très bien avec le vieux code OpenGL1.1. Cela s'est avéré être vrai. J'ai passé 12 mois à apprendre OpenGL1.1 et je l'ai bien compris.
J'ai lu quelques chapitres d'un de ces nouveaux livres OpenGL4.2. Presque toutes les fonctionnalités sur lesquelles je m'appuie ont été dépréciées (comme les listes d'affichage), ce qui me permet de supposer qu'il existe de meilleures façons de faire toutes ces choses.
Considérons que 1.1 est susceptible d'être pris en charge, dans son intégralité, par TOUS les matériels modernes. 1.1 est sorti en 1992. Je ne code pas à la dure juste pour prendre en charge des PC de 20 ans. :-p Je pense qu'il est raisonnable de supposer que la plupart des joueurs utilisent un matériel qui atteint environ 5 ans de milieu de gamme.
Je pense que les nouvelles méthodes sont conçues pour être universellement l'une des deux choses: plus performantes ou plus faciles à coder. J'ai lu quelque part que ce n'est jamais les deux! XD
Quelle version d'OpenGL est la plus largement prise en charge par un matériel de ~ 5 ans? Quelle version est la plus logique à utiliser, compte tenu de ces considérations?
Je commencerais ici: http://store.steampowered.com/hwsurvey
Je ne viserais pas une période de temps autant qu'un pourcentage d'utilisateurs, par exemple, si vous ciblez 4 cpus, vous n'atteindrez que 45% des utilisateurs, mais si vous travaillez à 2, vous obtiendrez près de 90%
la source
La réponse dépend du fait que vous ayez besoin ou non d'exécuter des graphiques Intel publiés dans le délai que vous avez mentionné.
Si vous le faites, limitez-vous à OpenGL 2.1 (ou même 1.5), si vous ne le faites pas, alors 3.x semble raisonnable.
Oui, les anciennes versions d'OpenGL fonctionnent toujours, et oui, d'un point de vue, elles peuvent sembler plus simples. Lorsque les choses se déforment, c'est lorsque vous essayez de faire des choses (et vous le ferez) qu'elles ne supportent pas trop facilement. OpenGL 1.1 n'est pas seulement un moyen difficile - c'est souvent le moyen impossible si vous voulez obtenir certains résultats.
la source
Tout d'abord, les choses OpenGL 1.1 comme les listes d'affichage fonctionneront toujours dans un nouveau contexte à condition que vous ayez le profil de compatibilité (ce qui est généralement le cas). Le seul problème est que si vous prévoyez de porter sur OpenGL ES, l'une des bibliothèques graphiques spécifiques à la console (elles sont généralement supprimées OpenGL similaire à OpenGL ES) ou même WebGL (ce qui nécessiterait de toute façon un peu de retravail).
Personnellement, je recommanderais d'utiliser des shaders de vertex / fragment et des VBO. Ils existent depuis assez longtemps et offrent de grandes améliorations de performances. Vous pourriez probablement même fournir une solution de rechange simple si vous encapsulez les fonctions dans une classe.
Vous pouvez également être en mesure d'émuler des choses comme les objets de tableau de sommet.
la source
Avec du matériel vieux de 5 ans, certaines personnes utilisent toujours XP. Et cela signifie que vous ne pouvez même pas coder avec DirectX 10 ou OpenGL 3. Et OpenGL 3 a beaucoup de fonctionnalités dont vous pourriez vraiment bénéficier, comme les tampons de cadre et autres. Honnêtement, je bousculerais un peu votre configuration système afin que vous puissiez inclure ces fonctionnalités.
la source
Il est courant pour les logiciels 3D d'avoir des chemins de code à la fois pour une version d'API graphique "de base" et une version d'API "la plus récente et la meilleure".
Les versions graphiques de base courantes sont D3D9 et OpenGL 2.1 / GLSL 120 .. qui manquent tous les deux de shaders de géométrie car l'ancien matériel ne les prend pas en charge.
Une autre option de base est ANGLE, qui est GLES 2.0 plus EGL qui fonctionne sur D3D9, OpenGL de bureau et GLES 2.0 mobile. C'est le back-end pour Google Chrome et Webgl dans Chrome et Firefox.
http://code.google.com/p/angleproject/
Quant à la "dernière et la meilleure" version que vous choisissez, c'est plus difficile. Les API et le matériel les plus récents que vous ciblez, les meilleures fonctionnalités que vous pouvez prendre en charge, mais uniquement sur le matériel le plus récent et le plus performant.
la source