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

Développement OS X Discussion :

[DEV] Bug dans mon éditeur de carte avec Cocoa (et OpenGL)


Sujet :

Développement OS X

  1. #1
    Membre expérimenté Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Points : 1 312
    Points
    1 312
    Par défaut [DEV] Bug dans mon éditeur de carte avec Cocoa (et OpenGL)
    Bonjour à tous !

    Depuis l'échec de mon projet d'interface graphique, j'ai en tête de faire un mini-RPG puis de l'enrichir petit à petit. Afin d'accélérer l'expansion du jeu j'ai commencé à faire un éditeur qui me permettra de faire les cartes, les terrains et les objets.

    J'ai actuellement fini la partie "terrain" et je continue la partie "carte" de mon éditeur. Je pensais que tout se déroulait parfaitement or voilà qu'en faisant tester l'éditeur par PsychoH13, patatraa ! ça ne s'affiche plus correctement (chez lui) !

    Pour l'affichage de ma carte j'utilise OpenGL dans une NSOpenGLView. J'ai remarqué que chez moi lorsque je dépasse 255 carreaux sur 255 carreaux (chacun étant de 16 pixels de large, soit 4080 pixels (la limite serait-elle 4096 ?)), l'affichage commence à se déformer (les carreaux sont réduits). J'ai mis ça sur le dos des limites de la matrice de projection mais je n'en suis pas du tout sûr.

    Pour empirer mon cas, j'ai constaté que cette limite n'était pas la même chez tout le monde (126 carreaux chez PsychoH13).

    Si vous savez comment empêcher cette déformation dites le moi s'il vous plaît !!!

    J'aimerais aussi que vous testiez le code (qui marche bien que tout ce que je veuille lui faire faire ne soit pas encore implémenté : il n'est pour l'instant pas possible d'ajouter les terrains ni les objets dans la carte) afin de voir si vous aussi vous avez des problèmes de déformation.

    Les sources (v. 0.1.4) avec le projet Xcode 1.5

    Bon développement

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    733
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 733
    Points : 1 119
    Points
    1 119
    Par défaut
    J'ai rapidement essayé ton projet hier soir. Et j'ai effectivement l'impression que les cases rétrécissent lors que je vais au delà de 250*250.
    Je dis l'impression, car je n'en suis pas sûr, je compte faire un test complémentaire ce soir. Je te tiens au courant.

  3. #3
    Membre expérimenté Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Points : 1 312
    Points
    1 312
    Par défaut
    J'ai pensé en premier à la limite de la matrice de projection mais je suis en train de me demander si c'est pas plutôt Cocoa qui fixe cette limite, en tout cas ce serait logique.

    Lorsque l'on a atteint la limite d'une vue, celle-ci n'est plus agrandie. Cependant le cadrage et le redimensionnement, que j'ai fixé afin de pouvoir me déplacer et afficher une zone particulière de la vue, agissent même en dehors de ces limites. Le cadrage est défini par rapport à la zone affichée tandis que l'echelle du repère (glOrtho()) se base uniquement sur la taille théorique que devrait prendre toute la grille. Et comme cette taille n'augmente plus, la grille est déformée…

  4. #4
    Membre expérimenté Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Points : 1 312
    Points
    1 312
    Par défaut
    Après des tests plus poussés, j'en ai conclus que mon problème n'est pas lié à Cocoa !
    En effet j'ai affiché la grille en utilisant uniquement Carbon, AGL et OpenGL, or la déformation a lieu !

    Il s'agirait donc bien d'un soucis lié à limite de la matrice de projection (probablement défini selon la carte graphique, ce qui expliquerait les résultats différents chez moi et chez PsychoH13). Reste maintenant à savoir comment éviter ce problème.

    Note: sur mon iMac G5 j'ai une carte graphique NVIDIA GeForce FX 5200 64 Mo logée sur le bus AGP.

  5. #5
    Membre expérimenté Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Points : 1 312
    Points
    1 312
    Par défaut
    J'ai modifié le mode d'affichage et maintenant ça fonctionne à peu près correctement quelle que soit la taille utilisée. Je dis à peu près parce pour une raison qui m'échappe encore, la grille de la carte est parfois décalée d'1 pixel sur la gauche et seul le 1e carreau sur la gauche est réduit, ce qui donne une impression de flou. Cependant 1 pixel de décalage ce n'est presque rien. Je vais essayer de trouver la source du problème mais si c'est dû à l'imprécision du type float je n'y peux absolument rien.

    Pour donner un exemple, j'ai pu afficher (avec certes quelques ralentissements que je compte régler) une grille de 80 000 x 80 000 (soit 1 280 032 pixels de large en comptant les 2 carreaux de marge !), on est donc très loin des 255 x 255 .

    Je compte cependant sur vous pour vérifier ce que j'ai dit (en espérant ne pas rencontrer de nouveau problème…).

    Les nouvelles sources : Editor-src-0.1.4b.tar.gz

    Edit: en testant les limites du programme je constate un affichage correct jusqu'à quelques millions de carreaux, mais (sans connaître précisément la limite), j'ai remarqué que vers 8 000 000, les carreaux sont déformés de temps en temps, un au pif comme ça… bon de toute façon, qui est tenté par la création d'une carte de 8 000 000 de carreaux de large ?

  6. #6
    Membre expérimenté Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Points : 1 312
    Points
    1 312
    Par défaut
    J'avais oublié de te remercier Tarul pour avoir pris un peu de ton temps afin de m'aider .

    P.S.: j'ai fait une petite restructuration du programme et je suis en train de coder le chargeur de cartes (qui pourra cette fois-ci charger les terrains et permettra l'affichage dans la grille).

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/04/2007, 14h04
  2. Bug dans mon algo..
    Par Chekov dans le forum Langage
    Réponses: 3
    Dernier message: 30/06/2006, 20h42
  3. [Vba-E]Bug dans mon code
    Par antoinelavigne dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/06/2006, 14h55
  4. Bug dans mon stylessheet
    Par wikipierre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 19/06/2006, 10h16
  5. Bug dans mon timer
    Par FredKéKé dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 25/01/2006, 15h27

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