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 :

Vertex Shader : ou placer le code du shader ? [GLSL]


Sujet :

OpenGL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2024
    Messages : 12
    Par défaut Vertex Shader : ou placer le code du shader ?
    Bonsoir !

    J'étudie openGL sous Linux... en c++ avec SFML...

    Je suis le tutoriel de Joey de Vries - Jean-Michel Fray(traducteur)

    Il indique un code simple pour un Vertex Shader... Mais :

    _Pas d indication de où placer ce code, surtout que nous sommes sensés le compiler depuis le code source...
    _donc :

    Je dois faire appel à "glShaderSource(..., ..., ..., ...);
    Le 3ème argument est un pointeur vers le code source du Shader... (?)

    Et puis, ce code débute avec un "void main()" : autrement dit "surcharge du main" : )

    Je nage...
    Merci de votre aide.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 128
    Billets dans le blog
    149
    Par défaut
    Bonjour et bienvenue,

    En réalité, vous pouvez mettre le fichier là où vous le souhaiter (comme toutes autres ressources). Maintenant, ce qui sera certainement conseillé, c'est de le mettre au minimum, dans le dossier du projet . Vous pouvez, par exemple, faire un sous-dossier (je suppose que vous avez déjà un sous dossier src, donc, un autre sous dossier shaders, sera bien).

    Ensuite, il faut faire une fonction pour charger le shader en mémoire. Vous pouvez prendre l'exemple dans la FAQ C++, mais d'autres possibilités existent. Faites attention, votre tampon doit avoir un \0 à la fin.
    Finalement, ce tampon peut être passé à la fonction glShaderSource, car en effet, la fonction ne sait pas lire les fichiers, il faut lui passer le contenu directement.

    Je crois que j'ai fait le tour .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2024
    Messages : 12
    Par défaut
    Bonsoir.

    d abord, merci d avoir pris la peine de me repondre... Ca fait plaisir.

    J ai essaye de creer 2 fichiers texte :
    1 pour le vertex shader
    1 pour le fragment shader...
    ...comme vous l avez suggere.

    Et 2 fonctions pour les charger dans les 2 variables...
    (j ai eu quelques petites erreurs de segmentation(dues, il me semble, a de l allocation memoire)

    mais :
    ca n a pas ete tres efficace(le probleme ne venait pas forcement des chargements depuis les fichiers).

    Surtout, je pense avoir enfin compris :
    Au debut, j essayais de taper mon code glsl directement dans le fichier source cpp... je comprend mieux :
    en fait, j ai besoin d un simple pointeur pour char...
    Ca devrait etre :

    char* sourceShader = {"#version xxx...
    /* code*/
    ..."};
    Ou : le code glsl est un simple tableau de char...
    Et puis :
    le code de fin : est-ce vraiment : \n ?
    ou bien : \0 ?
    Merci...

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 128
    Billets dans le blog
    149
    Par défaut
    Ca devrait etre :

    char* sourceShader = {"#version xxx...
    /* code*/
    ..."};
    Ou : le code glsl est un simple tableau de char...
    Oui. En effet, vous pouvez faire ainsi .

    Et puis :
    le code de fin : est-ce vraiment : \n ?
    ou bien : \0 ?
    Merci...
    Ah mais purée ! J'ai été un bouffon hier. Oui, c'est bien un \0 à la fin... évidemment. J'édite mon message.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2024
    Messages : 12
    Par défaut
    Pas de souci...
    Et puis j ai trouvé comment realiser une fonction qui charge les sources des shaders !(trop coool!)(depuis des fichiers textes(c est quand meme plus pratique!!)

    Merci d etre là !!

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

Discussions similaires

  1. [GLSL]utiliser des textures dans un vertex shader
    Par delfare dans le forum OpenGL
    Réponses: 14
    Dernier message: 04/10/2007, 10h31
  2. Réponses: 5
    Dernier message: 16/09/2006, 17h51
  3. volume texture et vertex shader
    Par J&B dans le forum DirectX
    Réponses: 1
    Dernier message: 30/05/2006, 19h11
  4. Vertex Shader
    Par foxdie dans le forum DirectX
    Réponses: 3
    Dernier message: 28/01/2006, 11h55

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