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 :

Taille des textures <-> performances


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut Taille des textures <-> performances
    Est ce que l'utilisation de texture de taille (2^n, 2^m) est un gage de performance?

    Je demande ça parceque j'ai quelques problèmes de "ramages" (je tourne à 1.2 fps) avec un quad texturé à l'aide d'une image de 96x96 px.
    Quand je passe l'image en 128x128, je n'ai plus aucun problème et les fps remonte à 500.

  2. #2
    Membre du Club

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

    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut
    Moi aussi je me suis aperçu que les textures non puissances de 2 amènent à une chute catastrophique des performances (en tout cas, sous Linux avec NVIDIA).

    Bref, je me demande à quoi ça sert de supporter les textures non-puissances de 2 si c'est pour ça :-)

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651

  4. #4
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Ok merci.
    Je l'avais lu il y a un moment.
    Mais par contre je ne pensais pas que les baisses de performances etaient si fortes.
    J'ai une geforce fx 5200 je suis sous linux avec les pilotes nvidia, et je sais pas si la chute de performances et aussi fortes sur toutes les plateformes (à part geforce 6 et supérieur), mais là c'est inutilisable.

  5. #5
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    ha bah forcement, sur une GeForce FX
    en fait elle ne supporte pas les non power of two texture en hardware, c'est de l'emulation software a priori... donc lent
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  6. #6
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Ok merci.
    C'est quand même bizarre que même en software ça soit si mauvais.

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Ben non, il doit émuler plusieurs pipelines en parallèle, et pour un processeur non paréllèle, c'est dur

  8. #8
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Oki, oki, faut que je me renseigne un peu plus sur le fonctionement d'une carte vidéo pour bien comprendre comment ça marche.

    merci à vous.

  9. #9
    Membre chevronné
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Par défaut
    http://www.matbe.com/articles/lire/29/architecture-et-fonctionnement-d--un-gpu/page1.php


  10. #10
    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
    Citation Envoyé par MatRem
    J'ai une geforce fx 5200 je suis sous linux avec les pilotes nvidia, et je sais pas si la chute de performances et aussi fortes sur toutes les plateformes (à part geforce 6 et supérieur), mais là c'est inutilisable.
    Tu as peut-etre d'autres problèmes à ce niveau là.. Ou c'est possible qu'il y ait un problème au niveau des drivers (ça arrive).

    Qu'est-ce que tu fais d'autres dans ta frame en plus de lire la texture ? des opérations de pixel shader ? Tout ça en haute résolution ?

    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

  11. #11
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Dans la frame j'affiche une facée avec une display list, et je la texture avec un bindTexture.

    Autrement je fais les trucs de bases clear, viewport, look at ... Enfin ça pose pas problème avec les textures puissances de 2

  12. #12
    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
    tu as un lien vers l'appli ? executable ? source ?

    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

  13. #13
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Oui je vais avoir ça... demain.
    Par contre pour les sources j'utilise une bibliothèque perso qui encapsule opengl, x et glx, et ça tourne que sous serveur X avec extension glx et opengl..

  14. #14
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Voici un lien vers le programme (code source et executable):

    Par contre j'ai pas mis le code source de la bibliotheque open3d.

    Ça fonctionne que sous un système avec un serveur X (linux entre autre) avec opengl et glu.

    Avant de lancer le programme il faut renommer un des deux fichiers data/texture-128.png, data/texture-96.png en data/texture.png (ou alors creer un lien symbolique).

    Je viens de me rendre compte que sur une geforce mx 440 la texture 96 n'est même pas affichée...

  15. #15
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    C'est bien beau de vouloir faire du code bien portable, mais il faudrais être capable de rendre la configuration des programmes dynamique en fonction de la carte vidéo de l'utilisateur.

    C'est pourquoi j'aimerais savoir où je pourrais trouver des spécifications complètes sur différentes (toutes ) cartes vidéos.

    D'ailleurs comment les concepteurs de jeux professionnels font ils pour adapter leur config par défaut à toutes les cartes?

  16. #16
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    Citation Envoyé par MatRem
    C'est pourquoi j'aimerais savoir où je pourrais trouver des spécifications complètes sur différentes (toutes ) cartes vidéos.
    http://www.developpez.net/forums/showthread.php?t=57582

    Citation Envoyé par MatRem
    D'ailleurs comment les concepteurs de jeux professionnels font ils pour adapter leur config par défaut à toutes les cartes?
    Beaucoup de travail en double, une extension c'est une option, si une carte ne la supporte pas, ou tu ne fais pas le rendu de l'effet, ou tu code une solution alternative qui sera utilisée lorsque la carte ne supporte pas l'extension
    Avant d'utiliser une extension, tu dois la détecter, et si elle est supportée, il faut l'initialiser
    si elle n'est pas supportée, il te faut une autre méthode sans l'extension
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  17. #17
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    Citation Envoyé par MatRem
    D'ailleurs comment les concepteurs de jeux professionnels font ils pour adapter leur config par défaut à toutes les cartes?
    pour cela, rien ne vaut un bon exemple : Doom 3...
    pour Doom 3, au debut du developpement, ID software visait comme plateforme le must de l'epoque, c a d : la GeForce 2
    ils on donc crée un moteur de rendu pour GeForce 2, le code path ARB (r_renderer ARB) le probleme de ce code path est son extreme lenteur (il faut jusqu'a 5 passes pour rendre certaine lumiere colorée (et sans speculaire )
    puis sont arrivé les GeForce 3 (nom de code nv10), alors il ont crée un code path nv10 (r_renderer nv10) qui profitait des dernieres extension des GeForce 3 (mais etait incompatible avec les autre constructeurs)
    puis sont arrivé les GeForce 4 => code path nv20... la on commencait a avoir quelque chose d'utilisable, il ne fallait plus que 2 passe pour afficher les lumiere colorée avec speculaire, par contre, c'etait toujours incompatible avec les autres constructeurs...
    puis, joie, sont arrivé les radeon 8500 avec la possibilité d'utiliser jusqu'a 6 coordonnée de textures... => code path R500 (ou un truc du genre, je me perd un peut la...) qui, comme pour les autre code path (excepté le code path ARB) est incompatible avec les cartes des autres vendeurs...
    puis, enfin, est arrivé la generation de GeForce FX et radeon 9500, et la ils on crée le code path ARB2; qui n'utilise que des extension ARB supporté par tout les constructeurs, c'est celui qui est utilisé sur toute les cartes modernes...

    bref, pour faire un moteur, tu a 2 possibilité : suivre l'evolution du marché et coder 50 fois la même chose, ou cibler une plateforme et t'y tenir, même si elle sera perimée quand le moteur sortira...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  18. #18
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Merci pour le lien sheron666...
    Par contre ils ont oublié la version linux ()
    En plus si j'ai bien compris (j'ai pas testé), ça permet seulement de connaitre les extensions supportées. Et en fait c'est pas trés compliqué de gérer les extensions, même si ça l'est beaucoup de coder en software une extension manquante, tu peu zapper un effet.
    Moi j'aimerais connaitre avec precision si, par exemple la carte gère les textures non puissance de deux et comment (bien ou pas bien).
    Et, il doit y avoir d'autres petits trucs comme ça qui feront que ton code ne marchera pas sur une vielle geforce 2 pareceque tu le testes avec une geforce 7800 gtx (enfin ça c'est dans mes rêves )...


    J'aurais jamais cru qu'ID soft avait commencé à coder Doom 3 à l'époque des geforce 2.
    Je suis en train de coder un petit moteur 3D, et ta réponse me démotive un peu bafman (), même si je m'en doutais un petit peu, j'osais pas regarder les choses en face.

    Toujours sur la question des developpeurs pros, en prenant l'exemple des textures:
    - comment font ils pour que leurs textures fonctionnent sur toutes les cartes?
    - ils utilisent que des textures de 64x64 pixels?
    - ils detectent la carte vidéo et savent parfaitement comment réagie la génération de la carte et changent dynamiquement la taille des textures chargées?

    Enfin bref je suis dans le flou ...

  19. #19
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    Citation Envoyé par MatRem
    En plus si j'ai bien compris (j'ai pas testé), ça permet seulement de connaitre les extensions supportées.
    Désolé qu'il ne fonctionne pas sous linux, je t'avoue ne pas y avoir prêté attention
    sinon saches que le prog permet de connaitre les extensions pas seulement de ta carte mais aussi de comparer avec les autres vu qu'il intègre une pseudo base de données avec de très nombreuses cartes
    il permet également de tester les différentes versions d'OpenGL de la carte et de voir de visu les différences et performances

    Citation Envoyé par MatRem
    Moi j'aimerais connaitre avec precision si, par exemple la carte gère les textures non puissance de deux et comment (bien ou pas bien).
    C'est ce que je voudrais aussi et je me suis dis qu'une sorte de benchmark invisible pouvait être intéressant

    Citation Envoyé par MatRem
    Toujours sur la question des developpeurs pros, en prenant l'exemple des textures:
    - comment font ils pour que leurs textures fonctionnent sur toutes les cartes?
    - ils utilisent que des textures de 64x64 pixels?
    - ils detectent la carte vidéo et savent parfaitement comment réagie la génération de la carte et changent dynamiquement la taille des textures chargées?
    changer la taille d'une texture (pour la réduire) au chargement est une bonne idée dans le cas où la taille de la texture dépasse la taille max que la carte supporte
    il faut aussi savoir que les développeurs pros ont accès à de nombreuses machines et recoivent de l'aide de nVidia et d'Ati
    tu peux toujours lire cet article pour en savoir plus au sujet de nVidia :
    http://www.gamebe.com/articles/lire/...a-1ere-partie/
    http://www.gamebe.com/articles/lire/...de-nvidia-2-2/
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  20. #20
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    Citation Envoyé par MatRem
    J'aurais jamais cru qu'ID soft avait commencé à coder Doom 3 à l'époque des geforce 2.
    et si, ils ont commencé à la fin du developpement de quake 3, et la preuve, c'est que la premiere demo du moteur de Doom 3 a été faite le jour du lancement de la GeForce 3 et que le moteur tourne sur GeForce4MX (qui ne sont que des GeForce 2 avec une frequence plus elevé)
    Citation Envoyé par MatRem
    Je suis en train de coder un petit moteur 3D, et ta réponse me démotive un peu bafman (), même si je m'en doutais un petit peu, j'osais pas regarder les choses en face.
    il ne faut pas se demotiver, il faut viser une carte sur laquel ca fonctionnera un point c'est tout...

    Citation Envoyé par MatRem
    - comment font ils pour que leurs textures fonctionnent sur toutes les cartes?
    leur textures ne fonctionnent pas sur toutes les carte, plus personne ne code de jeux pour Voodoo ou TNT de nos jours (ni pour GeForce 2 et 3 d'ailleurs). ils savent donc que toutes les cartes supportent au moins le 2048*2048...
    Citation Envoyé par MatRem
    - ils utilisent que des textures de 64x64 pixels?
    cf reponse precedente
    Citation Envoyé par MatRem
    - ils detectent la carte vidéo et savent parfaitement comment réagie la génération de la carte et changent dynamiquement la taille des textures chargées?
    oui, c'est exactement ce qu'il se passe quand tu demande de baisser les details des textures dans le jeux. en fait la plus part des jeux ne stocke que des textures en qualité maximum (il suffit de regarder les textures des jeux unreal tournament dont certaines sont en 4096*4096 ) et lorsqu'on lance une partie, il reduisent la taille des textures en fonction de la qualité demandé... le probleme de cette methode c'est qu'un bete algo de redimensionnement de texture reduit fortement la qualité... generalement, ils ne s'embetent pas à passer des filtres sur les textures pour ameliorer la qualité...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

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

Discussions similaires

  1. Rendu offscreen & taille des textures
    Par zenux dans le forum OpenGL
    Réponses: 7
    Dernier message: 27/03/2011, 20h45
  2. problème de taille des textures
    Par darkdindon dans le forum Moteurs 3D
    Réponses: 4
    Dernier message: 29/01/2007, 10h47
  3. Taille maxi des textures suivant version OpenGL
    Par Invité dans le forum OpenGL
    Réponses: 11
    Dernier message: 28/07/2006, 19h42
  4. [3D] Taille optimale des textures?
    Par J-F dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 16/03/2006, 09h20
  5. appliquer des textures de taille 2n+1
    Par Katsuo chris dans le forum DirectX
    Réponses: 4
    Dernier message: 14/11/2002, 00h11

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