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 :

[JOGL] mon shader ne prend pas effet sur ma scène


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 112
    Par défaut [JOGL] mon shader ne prend pas effet sur ma scène
    Bonjour,
    J'ai un shader tout cuit qui vient d'un programme en C++ à l'origine, je veux l'utiliser en JOGL, mais le problème c'est que je ne sais pas pourquoi mon shader (qui est correct en principe) ne prend pas effet sur ma scène, je pense que ça vient peut etre du chargement mais je ne sais pas ce qui cloche, je déclenche le code qui suit dans le init (est ce le bon endroit ?) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    private String [] chaine = null ;
     
    	public LoadGlslShader(GL gl)
    	{
    		int vsh = gl.glCreateShader(GL.GL_VERTEX_SHADER);
    		int fsh = gl.glCreateShader(GL.GL_FRAGMENT_SHADER);
     
    		readFile(new String("vertexShader.txt"));
     
    		gl.glShaderSource(vsh, 1, chaine, (int[])null, 0);
    		chaine = null ;
     
     
    		readFile(new String("fragmentShader.txt"));
     
    		gl.glShaderSource(fsh, 1, chaine, (int[])null, 0);
    		chaine = null ;
     
    		gl.glCompileShader(vsh);
    		gl.glCompileShader(fsh);	
     
    		int ph = gl.glCreateProgram();//program handler
    		gl.glAttachShader(ph, vsh);
    		gl.glAttachShader(ph, fsh);
     
    		gl.glLinkProgram(ph);
    		gl.glValidateProgram(ph);
     
    		gl.glUseProgram(ph);
    	}

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 131
    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 131
    Billets dans le blog
    150
    Par défaut
    VOus ne faites aucune vérification d'erreur. Il se peut donc que votre sahder ne soit pas bien compiler, ou qu'il y ai un problème, du coup il ne sera pas possible de l'utiliser ( et donc aucun effet sur la scène ).

    Commencez donc par faire quelques vérification des erreurs et vous saurez un peu plus où chercher.
    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
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 112
    Par défaut
    Et comment fait on les vérifications d'erreurs en java/jogl ?

  4. #4
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 112
    Par défaut
    je viens de voir comment on affichait les erreurs du shader, et on m'indique stack overfow, j'affiche aussi le contenu du shader chargé et la paire vertex et fragment shaders s'affiche 3 fois en mettant le code au dessus dans le init.
    Quelqu'un voit quelle peut etre l'erreur ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 131
    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 131
    Billets dans le blog
    150
    Par défaut
    Le programme en soit me sembler bon. ( Mais je ne suis pas très fort en java ).
    C'est pour cela que je conseillais de vérifié les erreurs, afin de savoir un peu plus ce qui se passe. Un peu comme la fonction ReadFile, je fais pas ce qu'elle fait.

    Sinon, pour OpenGL, vous pourriez vous pencher un peu sur glGetProgramInfoLog
    Et il y a en d'autre qui indique si cela se passe bien ou pas ( compilation + linkage ).
    Je vous conseillerai de chercher un peu les tutos sur le chargement de shader OpenGL. Bien qu'il ne soit pas tous pour le Java c'est très facile de reprendre le concept.
    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.

Discussions similaires

  1. Mon bloc ne prend pas la hauteur voulue
    Par PodBlake dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 12/05/2012, 16h16
  2. le <%=%> ne prend pas effet dans la balise <html:form>
    Par abdel1985 dans le forum Struts 1
    Réponses: 0
    Dernier message: 30/06/2011, 20h46
  3. Réponses: 10
    Dernier message: 18/04/2011, 10h23
  4. Réponses: 0
    Dernier message: 11/09/2009, 10h56
  5. Domaine : l'URL de mon domaine n'arrive pas correctement sur mon site
    Par amarcil dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 09/08/2008, 13h04

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