7
votes

Quelle version OpenGL choisir pour application de bureau multiplate-forme

Je travaille sur une application de bureau multiplate-forme avec des graphismes 2D lourds. J'utilise les spécifications OpenGL 2.0 parce que j'ai besoin de sommet Shaders. J'aime 3.2+ API de base en raison de sa simplicité et de son pouvoir. Je pense que plus de 3,2 noyau pourrait être un choix pour l'avenir. Mais j'ai bien peur que cette fonctionnalité ne soit peut-être pas disponible sur certaines plates-formes (je veux dire de vieilles cartes graphiques et manquez (?) De pilotes de Linux modernes). Peut-être que je devrais utiliser OpenGL ES 2.0-Blasi API pour un portage futur facile.

Quelle est l'état des choses avec des pilotes de 3,2 cœurs, de cartes et de linux?


0 commentaires

5 Réponses :


0
votes

dépend de la machine moyenne de votre marché cible. Bien que d'être honnête, OpenGL 3.2+ est assez omniprésente de nos jours.


0 commentaires

2
votes

Je vais personnellement aller pour OpenGL 3.3, éventuellement avec une baisse des extensions 3.2 plus (qui est fondamentalement la même). C'est le moyen le plus pratique d'utiliser OpenGL 3.x et largement pris en charge.

Le ciblage 3.1 ou 3.0 ne la vaut pas vraiment la peine, sauf si vous voulez vraiment courir sur un pont sableux (qui, pour une raison obscure, ne supporte 3.0 que le matériel soit très bien capable de faire 3,3). Aussi 3.1 et 3.0 ont des modifications très considérables dans le code de shader, qui, à mon avis, un cauchemar de maintenance si vous souhaitez prendre en charge de nombreuses versions (aucun problème de ce type avec 3.2 et 3.3).

Chaque matériel prenant en charge 3.2 peut également prendre en charge 3.3, le seul obstacle peut être que l'IHVS ne fournit pas de pilote récent ou qu'un utilisateur peut être trop paresseux pour mettre à jour. Par conséquent, vous ne pouvez pas supposer "3.3 fonctionne partout". Les conducteurs plus âgés auront généralement la même fonctionnalité via des extensions Arb de toute façon, cependant.


0 commentaires

1
votes

Mac OS X ne prend pas en charge le contexte GL-3 pour le moment. Cet été peut changer la situation, mais je vous recommanderais de rester avec les extensions GL-2 plus.


0 commentaires

6
votes

Les chips Intel plus âgés ne supportent que OpenGL 1.5. Les plus tard, les chips (depuis environ deux ans) ont 2.1 mais cela fonctionne pire que 1,5. Sandy Bridge prétend supporter "OpenGL 3" sans préciser s'il est capable de procéder à 3,3 (comme Damon suggère) mais que les pilotes Linux ne font que 2.1 pour l'instant. Tous les radeons et nvidia de NVIDIA à distance avec des pilotes à sources fermées Support 3.3 (Geometry Shaders) et le support de la série 400-500 4.1 (Shaders Tesselation).

Par conséquent, les versions que vous souhaitez viser sont 1,5 (si vous vous souciez de la pont de pont pré-sable d'Intel Crap), 2.1 (pour un quincaillerie à peu près), 3.3 (pour les conducteurs de matériel décent et à la source fermée) ou 4.1 (bord de saignement).

J'ai des shaders de sommet et de fragment écrits avec #version 120 et des shaders géométriques écrites dans #Version 330, pour faire de la relèvement sur la vieille quincaillerie.


2 commentaires

Il y a plusieurs jours, j'ai eu un problème avec Intel Chips et OpenGL 2.1. Probablement, il serait préférable de se conformer à 1,5, mais les shaders sont parfois très indispensables.


Je n'utilise pas moi-même les produits Apple, mais une chose à ajouter: OS X ne semble toujours pas supporter de mieux que OpenGL 2.1: O



6
votes

Vous pouvez rester sur OpenGL ES 2.0. Même si ES signifie incorporer, c'est une bonne approche car elle retirez toutes les fonctions fixes (GLBEGIN, ETC ...): Vous utilisez un sous-ensemble de OpenGL 2.x. Donc, si vous écrivez votre logiciel en pensant que OpenGL ES 2.0, il sera rapide et travaille à la majorité.

Dans Real, OpenGL ES 2.0 et le bureau GL pourrait avoir une certaine différence, mais je ne pense pas que ce sera quelque chose que vous utiliserez. Si l'extension GL_ARB_ES2_Compatibilittibilité est prise en charge, vous avez une carte "Desktop" prenant en charge le sous-ensemble complet incorporé. (4 func et certains const.)

Maintenant, la vraie question est de savoir combien d'années de matériel voulez-vous soutenir? Ils sont toujours beaucoup de très vieux matériel qui ont un très mauvais support GL. Le mieux serait de soutenir le moins vieux (OpenGL 2.0 est déjà vieux) :)


1 commentaires

+1 ES 2.0 semble être une excellente combinaison de fonctionnalités (entièrement programmable et supprime toutes les caractéristiques héritées) et une compatibilité généralisée.