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 :

[Cg] Paramètres "partagés"


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 18
    Points : 13
    Points
    13
    Par défaut [Cg] Paramètres "partagés"
    Salut,

    Bon ce n'est pas vraiment en rapport avec opengl, mais c'est le meilleur endroit que j'ai trouvé...

    Je me demandais si il était possible, en Cg, de partager des données entre différents shaders, comme dans les .fx de direct3D avec le keyword "shared". Il y a bien un keyword shared dans la doc Cg 1.2 (la version 1.4 étant livrée avec la doc de la 1.2, plutôt pratique...) et il est précisé que "In the future, it will also be possible to define parameters at the level of the context so that they are shared among all the programs of a context.".

    Dans les release notes de la 1.4 il y a : "Note that some of this new functionality is currently only supported when using the CgGL OpenGL runtime library. The Direct3D-specific Cg runtime libraries currently do not support shared parameters, for example.". Moi je comprends que les lib CgGL supportent les shared parameters, et ça tombe bien j'utilise opengl. Alors j'ai essayé le keyword "shared" mais sans succès, j'ai des erreurs de compilation (voire des plantages lors de la compilation) du style : "error C1071: profile specifier "shared" not allowed on non-function "vLightPosition"".

    Vous avez des pistes ?

    A+

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Pour ceux que ça intéresse, j'ai trouvé comment faire :

    les paramètres partagés doivent être créés en dur avec cgCreateParameter() et linkés aux shaders avec cgConnectParameter().

    C'est pas très pratique mais ça fonctionne...

    A+

  3. #3
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    dis moi, qu'est qu'on peut faire avec Cg? on peut faire des jeux? on est obligé de passer par Microsoft Visual XXX?
    Colère et Haine mènent à la Puissance

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

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    Cg c'est un langage "Haut niveaux" pour la programmation de shader ça ne suffit pas pour faire des jeux mais ça peut etre utile

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Salut,

    Cg est un langage de haut niveau développé par nvidia pour faire des shaders (Cg = C for graphics). C'est un peu comme le langage HLSL de microsoft pour Direct3D ou GLSL pour OpenGL. L'intérêt d'un shader écrit en Cg est qu'il est utilisable avec Direct3D ET OpenGL, aussi bien sur ATI que sur nvidia. Il existe même CgFX qui permet de faire comme les .fx de Direct3D, avec des techniques, passes etc... Le désavantage est que la librairie est encore très buggée.
    Ca ne permet pas de "faire des jeux" directement, disons que ça peut être utilisé dans un jeu pour le rendu.

    A+

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