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 :

Travailler avec des entiers seulement


Sujet :

OpenGL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 48
    Points
    48
    Par défaut Travailler avec des entiers seulement
    Bonjour,

    Je vais attaquer un projet maquette OpenGL ,et le vrai plus tard c'est à dire un jeu de labyrinthe en 3d.

    Je voudrais travailler seulement avec des entiers concernant Glvertex3i pour une meilleur rapidité,
    laquelle faut que j'appelle une fonction qui divise la matrice ,
    là je ne sais pas , glscalef ?

    J'ai bidouiller sur glscalef et apparament ce n'est pas la fonction approprié.

    Ce que je soubaiterai c'est par exemple à l'appel glvertex3i(0,32,64); se calcule 0,0.5,1,

    ou glvertex3i(16,8,64) se calcule 0.25,0.125,1 voilà

    Merci ;

  2. #2
    Membre expérimenté

    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
    Points : 1 679
    Points
    1 679
    Par défaut
    ta carte graphique travaille avec des flottants (et parfois fixed precision pour certaines opérations internes) donc ce n'est pas forcément très utile de convertir ton code pour utiliser des entiers (du moins pas au niveau de l'interface OpenGL). Cela peut meme parfois etre contre productif.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Points : 486
    Points
    486
    Par défaut
    Oui entièrement d'accord avec LeGreg...

    je ne suis pas sûr de ce qui te pousse à vouloir utiliser des entiers, mais utiliser glVertex3i(0, 32, 64) avec un glScalef(1 / 64, 1 / 64, 1 / 64) pour obtenir un point "final" de coordonnées (0, 0.5, 1) est très certainement plus couteux que de taper directement glVertex3f(0, 0.5, 1) (j'avais lu quelque part que glScale est assez gourmand).

    Apres si les floats te posent un problème, tu peux toujours garder glVertex3i(0, 32, 64) en placant ta caméra "64 fois plus loin", ca reviendra au même.

    Mais comme dit les processeurs graphiques sont optimisés pour travailler en virgule flottante...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 48
    Points
    48
    Par défaut lu
    Calculer avec des nombre flottant , c'est plus compliqué , donc consomme
    plus de ressource.

  5. #5
    Membre expérimenté

    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
    Points : 1 679
    Points
    1 679
    Par défaut
    oui et non, enfin ça dépend sur quelle plateforme tu programmes et quelles opérations tu fais.

    Beaucoup de plateformes pour mobiles (téléphones portables) par exemple n'ont pas de floating point du tout, ou ont une version qui est très peu performante. L'amiga et les premiers PC (sans extension x87) émulaient les virgules flottantes en software avec leurs unités entières et donc pour toute opération critique en temps il valait mieux utiliser les entiers (en précision fixe par exemple).

    Les derniers GPUs comme la geforce 8800 ont 128 stream processeurs capables de jusqu'à 3 opérations flottante par cycle d'horloge (en comptant mad comme deux opérations) sans compter toutes les opérations pré-cablées (filtrage, blending, setup, clipping, conversions).

    Après si ton problème ce sont les opérations en "amont", tout dépend encore une fois des opérations que tu fais. La plupart des moteurs 3D utilisent des flottants à l'heure actuelle parce que travailler uniquement sur les entiers est trop restrictif. Bref à toi de voir..

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

Discussions similaires

  1. Travailler avec des gifs animés
    Par Commodore dans le forum Imagerie
    Réponses: 1
    Dernier message: 13/07/2006, 15h58
  2. Réponses: 8
    Dernier message: 09/03/2006, 17h48
  3. Travailler avec des hexadécimaux
    Par LEK dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 18/09/2005, 04h24
  4. Réponses: 3
    Dernier message: 25/01/2005, 11h27
  5. Travailler avec des bits
    Par Vulvulune dans le forum Langage
    Réponses: 5
    Dernier message: 02/03/2003, 19h09

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