IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

OpenGL 2, 3, 4? Ou DirectX?


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut OpenGL 2, 3, 4? Ou DirectX?
    Hoy! Ma soif de savoir fini par me faire lâcher la prise ici. :p

    Je développe en ce moment un shoot'em up 2D, en utilisant SFML. SFML ajoute une couche pour utiliser plus facilement OpenGL 2.0. Mon soucis se présente en partie dans la limitation de la taille des textures chargé dans la mémoire graphique et de violentes saccades lors de l'utilisation de la vertical sync.

    De fait, j'aurai aimé avoir des informations sur les versions 3.0 et 4.0 d'OpenGL, quelles sont leurs différences fondamentales avec la 2.0, et si utiliser ces versions peuvent me permettre de résoudre mon problème.

    Aussi, j'hésite fortement à continuer d'utiliser OpenGL, ou de passer sur DirectX pour mon jeux 2D. Je ne compte pas vraiment profiter de la portabilité, mon jeu sera principalement sur Windows. Quel API est-il plus futé de prendre pour moi?

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par Spidyy Voir le message
    Hoy! Ma soif de savoir fini par me faire lâcher la prise ici. :p

    Je développe en ce moment un shoot'em up 2D, en utilisant SFML. SFML ajoute une couche pour utiliser plus facilement OpenGL 2.0. Mon soucis se présente en partie dans la limitation de la taille des textures chargé dans la mémoire graphique et de violentes saccades lors de l'utilisation de la vertical sync.

    De fait, j'aurai aimé avoir des informations sur les versions 3.0 et 4.0 d'OpenGL, quelles sont leurs différences fondamentales avec la 2.0, et si utiliser ces versions peuvent me permettre de résoudre mon problème.

    Aussi, j'hésite fortement à continuer d'utiliser OpenGL, ou de passer sur DirectX, pour mon jeux 2D. Je ne compte pas vraiment profiter de la portabilité, mon jeu sera principalement sur Windows. Quel API est-il plus futé de prendre pour moi?
    Personnellement je préfère OpenGL de loin à DirectX, mais c'est plus une question de goût que de spécifications techniques.

    OpenGL est une API contextuelle à plat, DirectX est tout objet

    pour ce qui est des performances, c'est de toute façon la carte graphique qui bosse, et l'un comme l'autre permettent d'obtenir ce qu'on veux.

    Les seuls projets où j'ai préféré DirectX étaient pour un accès direct à la mémoire vidéo sous DirectDraw, je n'avais pas besoin des fonctions graphiques, tout le rendu étant fait en soft.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    C'est aussi sque j'en ai entendu en cherchant sur le net. :p

    Mais au niveau des différences OpenGL 2.0, 3.0 et 4.0?

  4. #4
    Membre extrêmement actif

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    les ajouts de opengl 3 et 4 c'est surtout les nouveaux étages de shaders, comme directx 10 et 11 c'est à dire :

    - geometry shader
    - tesselation (hull, domain, tesselator, pour reprendre le vocabulaire dx)

    après les différences entre les eux, c'est surtout une habitude de programmation.

    par contre directx c'est des objets COM, pas objet au sens c++.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Pas des choses qui me servirons je pense donc.

    Le problème qui me bloque pas mal, c'est la taille des texture. Dans la bibliothèque que j'utilise, les textures sont limité en taille suivant la carte graphique. Les texture au delà de 1024*1024 ont du mal à passer chez certains.

    Mon soucis, c'est qu'en terme de jeu 2D, j'ai une grosse utilitée pour les texture très large, d'autant plus que j'y applique un résolution plutôt élevée. Y a-t-il moyen de contourner ou d'éviter ce problème avec OpenGL?

    Si non, Y-a-il un moyen de contourner ou d'éviter le problème cette fois-ci avec DirectX?

  6. #6
    Membre extrêmement actif

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    à part passer à une version supérieure d'opengl (3 ou 4) ou aller sur dx (10 ou 11) je ne pense pas que tu puisses d'affranchir de ta limite actuelle.

    il faut bien penser que directx n'est qu'un sous ensemble de fonctionnalités de opengl mais ces fonctionnalités sont communes à toutes les cg compatibles.

    directx et opengl ont le même (presque) socle commun, mais opengl autorise l'utilisation de fonctionnalités dépendantes du constructeur.

    donc si tu as une limite avec opengl, tu as toutes les chances de retrouver la même limite avec une version de dx équivalente, voir une limite encore plus stricte.

  7. #7
    Invité
    Invité(e)
    Par défaut
    De fait, j'aurai aimé avoir des informations sur les versions 3.0 et 4.0 d'OpenGL, quelles sont leurs différences fondamentales avec la 2.0, et si utiliser ces versions peuvent me permettre de résoudre mon problème.
    Absolument pas, par contre ça t'en rajoutera sans doute beaucoup.

    Aussi, j'hésite fortement à continuer d'utiliser OpenGL, ou de passer sur DirectX pour mon jeux 2D. Je ne compte pas vraiment profiter de la portabilité, mon jeu sera principalement sur Windows. Quel API est-il plus futé de prendre pour moi?
    Je dirais DirectX 9. Si tu utilise OpenGL 2.0 alors ton jeu ne marchera tout simplement pas partout.

    Tu utilise les shaders ? => tu perds la compat avec pas mal de cartes Intel
    Tu utilise les texture NPOT => tu perds la compat avec pas mal de cartes ATI

    Es-tu prêt a faire un chemin de rendu "moche" qui marche avec OpenGL 1.4 voire moins ? Non ? Alors prend DirectX.


    Edit: ah ouais tu pars avec OpenGL 3.0 minimum. Ca veut dire que tu demande a tous tes utilisateurs d'avoir des drivers de 2010, et au moins une Geforce 8400GS+ ou ATI HD 2400. Je ne sais pas pour les cartes Intel mais si tu ne testes pas sur un vendor, alors ça ne marche probablement pas.

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Citation Envoyé par ponce Voir le message
    Tu utilise les shaders ? => tu perds la compat avec pas mal de cartes Intel
    Tu utilise les texture NPOT => tu perds la compat avec pas mal de cartes ATI
    Pour le NPOT je suis d'accord.
    Pour la compatibilite Intel ... je suis un peu etonne. Certes leurs cartes sont moins puissantes, mais si c'est les puces SGX ... c'est juste que les shaders sont beaucoup plus stricte (et en fait, plus proche de la specification) que les trucs de NVidia / AMD.
    Et cela est a cause, que les client de Imaginations Technologies l'ont demande...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Membre chevronné
    Homme Profil pro
    Ingénieur 3D
    Inscrit en
    Avril 2008
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur 3D

    Informations forums :
    Inscription : Avril 2008
    Messages : 400
    Par défaut
    Pour les NpoT, a moins d'avoir une carte préhistorique (genre pas de shaders), ça devrait pas poser de problèmes. Il faut juste utiliser l'extension TEXTURE_RECTANGLE_ARB au lieu de TEXTURE_2D. Sur une Radeon X1300 (pas tout neuf, quand même), ça passe impec.
    Et pour les shaders, je rejoins LittleWhite. N'importe quelle carte Intel trouvable de nos jours devrait supporter les shaders. Et passer sous DirectX ne changera rien au problème, vu qu'au final, c'est toujours la carte qui pose problème (ou éventuellement des vieux drivers foireux ), mais jamais l'API.

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Citation Envoyé par math_lab Voir le message
    Pour les NpoT, a moins d'avoir une carte préhistorique (genre pas de shaders), ça devrait pas poser de problèmes. Il faut juste utiliser l'extension TEXTURE_RECTANGLE_ARB au lieu de TEXTURE_2D. Sur une Radeon X1300 (pas tout neuf, quand même), ça passe impec.
    Et pour les shaders, je rejoins LittleWhite. N'importe quelle carte Intel trouvable de nos jours devrait supporter les shaders. Et passer sous DirectX ne changera rien au problème, vu qu'au final, c'est toujours la carte qui pose problème (ou éventuellement des vieux drivers foireux ), mais jamais l'API.
    Pour les NPOT le probleme n'est pas trop de savoir si cela est ou non dans la carte graphique ... c'est juste que le support est souvent plus lent que pour des textures normales et quelques fois avec de la corruption dans l'affichage
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Bonjour,

    je lutte depuis pas mal d'années avec la compatibilité OpenGL, en particulier sur les cartes Intel. Ce que je peux dire c'est que je n'ai aucune confiance en leurs drivers...

    Le problème c'est que sur un ordi Dell par exemple, on ne peut installer que les drivers dell, qui suivent rarement les mises à jour des drivers Intel, ATI ou Nvidia. Avec ATI et Nvidia c'est moins un problème, car leurs drivers sont en général moins buggés donc il n'est pas absolument nécessaire d'avoir la dernière version. Avec Intel c'est une autre histoire...

    Bref, en général quand mon soft doit tourner partout, je passe en rendu software (le driver OpenGL1.1 de Windows). C'est moche, c'est lent, mais ca tourne, et si le client veut mieux, soit il met à jour ses drivers, soit il achète une carte ATI et Intel (de nos jours une carte compatible OpenGL 2.0 se trouve à moins de 50€...)

    Concernant les textures NPOT, je dirais que c'est un faux problème, j'utilise gluScaleImage pour redimensionner toutes les textures que je passe et ca marche sans problème, y compris sur Intel, et aussi en rendu software.

    A partir du moment où tu fournis la possibilité de faire un rendu software et que du coup ton programme ne crashe pas, c'est à l'utilisateur de se bouger pour mettre à jour ses drivers / acheter une carte si il veut plus de perfs ou un meilleur rendu, et tu te décharges d'une grosse responsabilité.

    J'imagine que la compatibilité DirectX est mieux faite mais comme dit, même avec OpenGL tu peux t'en sortir. Pour le reste je n'ai pas d'avis car je n'ai jamais utilisé directX.

  12. #12
    Invité
    Invité(e)
    Par défaut
    J'extrapole un peu mais c'est pour son bien, ca me semble une très mauvaise idée de demander OpenGL 3 à ses utilisateurs. Si ton jeu est joué tu va avoir 50% des gens qui se plaignent en continu, et ce sera trop tard/trop compliqué pour en changer.

    Pour les NpoT, a moins d'avoir une carte préhistorique (genre pas de shaders), ça devrait pas poser de problèmes. Il faut juste utiliser l'extension TEXTURE_RECTANGLE_ARB au lieu de TEXTURE_2D. Sur une Radeon X1300 (pas tout neuf, quand même), ça passe impec.
    Supposons que ca marche : tu ne peux plus utiliser le filtrage alors que tes texture NPOT sont probablement utilisée pour ton post-processing, c'est dommage. J'avais eu des problèmes de NPOT avec une X700 et il avait fallu tout passer en POT.

    Après les anglo-saxons ont un terme pour ça : YMMV

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. directx 9 ou opengl?
    Par sen dans le forum DirectX
    Réponses: 39
    Dernier message: 01/12/2007, 11h08
  2. Directx ou opengl
    Par scorpiwolf dans le forum DirectX
    Réponses: 13
    Dernier message: 07/02/2003, 08h29
  3. OpenGL ou DirectX
    Par Nadir dans le forum DirectX
    Réponses: 6
    Dernier message: 02/05/2002, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo