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 est ses nombreux paramètres : dans une classe ou dans le programme ?


Sujet :

OpenGL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut OpenGL est ses nombreux paramètres : dans une classe ou dans le programme ?
    Bonjour,

    actuellement je développe une classe OpenGL pour Windev, que je publie ici : http://www.developpez.net/forums/d85...-pres-potable/

    Mon soucis actuel est qu'OpenGL regorge de paramètres en tout genre : alpha, lumières, couleurs, textures, ...
    J'essaye au possible d'initialiser un maximum de paramètres pour que les personnes qui ne désirent pas approfondir leurs connaissances dans ces paramètres puissent utiliser OpenGL facilement.
    Mais comme rien n'est jamais facile en programmation, je me retrouve confronté souvent à des modifications au niveau de ces paramètres. Or j'aimerais ne pas à avoir à modifier ma classe tout le temps (c'est le but d'une classe).

    J'aimerai savoir s'il y a des paramètres qui ne changent que très rarement, peut-être comme glMatrixMode auquel cas je peux les laisser dans la classe, ou si il est préférable que chaque utilisateur définisse lui-même tous les paramètres dont il aura besoin dans son programme.

    Merci.
    Mieux vaut un petit lien qu'un long discours.

  2. #2
    Membre habitué Avatar de Harooold
    Homme Profil pro
    Ingénieur 3D temps réel
    Inscrit en
    Mars 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 136
    Points : 177
    Points
    177
    Par défaut
    Hello,

    Etant donné qu'Opengl est une machine à état, je ne parlerais pas de paramètres mais bien d'états.
    Du coup à moins que tu ne fasses une classe qui s'occupe de faire l'interface entre les demandes de changement d'était de l'utilisateur et les appels opengl, je ne vois pas vraiment l'interet d'une telle classe.
    Une instance de ta classe sera un objet avec l'état d'openGL à un instant T, qui risque d'être invalide à l'instant T+1 ..

    Sinon pour répondre à ta question, le nombre de paramètres ne variant jamais en cours d'execution dépend fortement de ce que fais ton appli et de comment elle le fait.
    Par exemple si tu utilises les shaders pour remplacer l'étage L&T du pipeline fixe, et bien tu peux ignorer le paramètre GL_LIGHTING car c'est toi qui gère ça à la main et tu peux le laisser activé ou desactivé tout le long.

    Tout ça pour dire que l'interet d'un paramètre c'est qu'il soit paramètrable et donc ammené à changer si besoin, et la notion de besoin est relative à l'application et à l'utilisateur ! Je serais donc bien incapable de te donner une réponse
    Reflechir peut s'averer utile, sisi.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Si je passe par une classe c'est que sous Windev, pour utiliser Opengl je dois appeler la dll avec une syntaxe du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    API("Opengl32.dll", "glEnable", ::GL_COLOR_MATERIAL)
    API("Opengl32.dll", "glColorMaterial", ::GL_FRONT, ::GL_AMBIENT_AND_DIFFUSE)
    C'est assez lourd et c'est pour cette raison que je fais une classe avec des méthodes ayant le nom des fonctions OpenGL. C'est plus simple et plus lisible pour appeler une fonction.
    Reste que les utilisateurs de Windev ne sont pas (tout comme moi) des experts en OpenGL, et appliquer une configuration standard est une solution pratique.
    Par exemple j'ai du mal à bien comprendre le paramétrage de la lumière ambiante et des diffuses (parait-il en plus que la carte graphique joue).

    Le but est de faire une méthode InitialiseOpenGL avec des paramètres comme la couleur de fond, colormaterial, etc ... Mais j'ai peur d'avoir un nombre de paramètres trop grand.
    Mais si je laisse toute l'initialisation dans le programme principal il va falloir que je fournisse une sacrée explication en commentaire concernant les choix de tel ou tel paramètre.
    Mieux vaut un petit lien qu'un long discours.

Discussions similaires

  1. [Débutant] Lire une classe héritée dans une classe de base
    Par BasicZX81 dans le forum VB.NET
    Réponses: 7
    Dernier message: 06/12/2013, 16h37
  2. Appel d'une méthode d'une classe A dans une classe B
    Par halloumiali dans le forum Général Java
    Réponses: 1
    Dernier message: 16/04/2012, 01h30
  3. Réponses: 7
    Dernier message: 05/04/2011, 18h19
  4. Réponses: 21
    Dernier message: 14/01/2010, 13h50
  5. Réponses: 15
    Dernier message: 28/04/2009, 08h26

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