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 :

Problème d'initialisation en Release/Debug sur différents PC


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut Problème d'initialisation en Release/Debug sur différents PC
    Bonjour,

    Je développe mon propre moteur 3D, qui commence à être conséquent même s'il est loin d'être fini.

    Jusqu'à présent je le développais et effectuais mes tests avec un pc ayant une carte NVidia (GeForce FX 5600), je n'avais aucun problème.
    Ayant changé de PC avec maintenant un GPU ATI (HD 5750) je me suis rendu compte que le moteur compilé avec mon ancien PC se charge correctement, charge les meshes correctement, mais n'affiche strictement rien. Il n'y a cependant aucune erreur (un appel de glGetError après chaque directive OpenGL pour vérifier).

    Encore plus fort : après avoir recompilé mon moteur sur mon nouveau PC avec le même Visual Studio qu'avant et sans avoir touché ni au code ni aux librairies attenantes, ça fonctionne correctement sur mon nouveau pc mais pas sur mon pc au taf (qui a un GPU NVidia).

    On monte encore d'un cran : j'ai voulu faire tester mon moteur à un développeur ayant une machine avec une carte graphique ATI Radeon 7000 et quelque soit la version que je lui passe (compilée sur ATI ou compilée sur NVidia) il rencontre le problème de n'avoir aucun affichage sans avoir d'erreur

    Quelqu'un a-t-il une idée pour m'aider dans mes recherches sur ce bug ? Parce que là on est un peu (complètement) perplexes.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bienvenue dans le monde merveilleux d'OpenGL.

    Je te conseille de cibler précisément les cartes sur lesquelles tu voudrais que ton moteur marche ou pas, sans être trop ambitieux. Achêtes toi d'occasion la carte minimum pour chaque vendor, ATI et NVIDIA voir Intel si tu es courageux (grand max 30€ d'occasion).

    A l'heure actuelle je te dirais de prendre pour cible les cartes au dessus de Geforce 8 / ATI HD 2400, mais tu veux peut-être faire mieux. Supporter les ATI en dessous des R600 est super pénible. Les drivers sont buggés et ne seront jamais réparés.

    En général NVIDIA est trop laxiste alors qu'ATI implémente mal la spécification. Intel je préfère ne pas en parler.

    Ensuite prends toujours les derniers drivers mais ne change pas trop souvent non plus car quelque chose casse souvent à chaque driver. Attends que les autres prennent ce risque pour toi.

    Inspire toi du code de Ogre3D qui est passé par là lui aussi. Par exemple pour la création de texture il vaut mieux ne pas utiliser les texture NPOT (oui, même si la carte dit qu'elle les supporte, en fait pas vraiment), et créer chaque niveau de mipmap un par un.

    Essaye de bien comprendre la séparation entre l'état Sampler et l'état Texture, si tu utilise les multi-textures.

    Utilises les glGet dans tout les sens et doute de tout, et éventuellement tu trouveras la compatibilité. Tu peux vouloir vérifier les codes d'erreurs partout, mais si le driver plante ca ne sert à rien .

    Si tu veux que ca marche vraiment partout avec moins d'effort, ben heu... reste en fixed function mais ca sera moche.

    Arrivé là tu comprendras pourquoi le seul jeu indie OpenGL avec du postprocessing digne de ce nom a été fait par un mec de l'ARB.
    http://www.quelsolaar.com/opengl_performance.txt
    FEAR

    En ce qui concerne ton problème, ca pourrait-être :

    - le niveau de mipmaps que tu veux sampler n'existe pas vraiment, n'a pas été créé
    - tu utilise un sampler wrappé dans une struct dans un shader GLSL
    - tu n'appelle pas glEnable(GL_TEXTURE_2D); pour activer tes samplers (tu croyais que ca ne servait qu'en fixed function ? eh bien non).
    Dernière modification par Invité ; 25/06/2010 à 15h28.

  3. #3
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Bon, en tout cas ce n'est aucune des 3 solutions que tu proposes vu que même une primitive non texturée n'est pas affichée...
    Je crois que je vais devoir m'amuser à m'acheter de vieilles cartes graphiques ^^
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  4. #4
    Membre Expert

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Par défaut
    Ça semble pointer vers un problème de ton côté, ce n'est pas parce qu'un code buggué marche "par accident" sur une machine qu'il marchera partout et tout le temps.

    Bref, essaie de partir des tutoriaux simples, dont tu as la garantie qu'ils marchent partout (ou du moins sur toutes tes machines cibles) et compare avec ta solution et vois là où tu diverges.

    Bonne chance,
    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  5. #5
    Membre très actif Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Par défaut
    Ouai le mieux c'est de se fixer le type de carte minimum pour faire tourner son programme et de l'acheter pour faire ses tests dessus, je dirais de préférences une ATI qui sont beaucoup moins souples et qui t'imposeront la rigueur. Tu as plus de chances que si ton programme marche sous ATI il marchera sous nVidia que l'inverse. Après pour résoudre ton problème alors que ton moteur est déjà bien avancé je te souhaite bonne chance
    Essaye de faire des trucs vraiment minimalistes pour vite détecter les erreurs d'incompatibilités.

  6. #6
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Merci pour vos réponses, je pense que je vais suivre le conseil de LeGreg et repartir de code simple...
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

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

Discussions similaires

  1. [Delphi 6] Problème de debug sur un ActiveX
    Par Hypollite76 dans le forum Langage
    Réponses: 13
    Dernier message: 16/12/2009, 14h32
  2. Problème d'exécution en release mais pas en debug (2)
    Par animageo dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/11/2007, 14h22
  3. [MFC] Problème Release/Debug
    Par Denn's dans le forum MFC
    Réponses: 24
    Dernier message: 21/09/2007, 11h24
  4. Problème d'encodage sur différents serveurs
    Par JEDI_BC dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2007, 15h47
  5. [PPC][C#] Problème debug sur device.
    Par Roach- dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/12/2005, 15h42

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