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 ] gl.glTexImage2D -> GL_INVALID_VALUE


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut [ Jogl ] gl.glTexImage2D -> GL_INVALID_VALUE
    Salut à tous,

    je tente de charger une texture, j'ai suivi les excellents tutoriaux NEHE.
    Malheureusement la methode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGB, texture.getWidth(), texture.getHeight(), 0, GL.GL_RGB, GL.GL_UNSIGNED_BYTE, texture.getPixels());
    provoque l'erreur suivante à l'execution :
    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
    Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: glGetError() returned the following error codes after a call to glViewport(): GL_INVALID_VALUE 
    	at javax.media.opengl.DebugGL.checkGLGetError(DebugGL.java:12715)
    	at javax.media.opengl.DebugGL.glViewport(DebugGL.java:12024)
    	at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:430)
    	at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
    	at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:412)
    	at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
    	at javax.media.opengl.GLCanvas.paint(GLCanvas.java:277)
    	at sun.awt.RepaintArea.paintComponent(Unknown Source)
    	at sun.awt.RepaintArea.paint(Unknown Source)
    	at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Est ce lié à ma config basique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [INFO ] Infos.printGraphicInfos (51) - OpenGL informations
    [INFO ] Infos.printGraphicInfos (52) - INIT GL IS = com.sun.opengl.impl.GLImpl
    [INFO ] Infos.printGraphicInfos (53) - GL_VENDOR = Microsoft Corporation
    [INFO ] Infos.printGraphicInfos (54) - GL_RENDERER = GDI Generic
    [INFO ] Infos.printGraphicInfos (55) - GL_VERSION = 1.1.0
    [INFO ] Infos.printGraphicInfos (56) - GL_EXTENSIONS = 
    [INFO ] Infos.printGraphicInfos (58) -        - GL_WIN_swap_hint
    [INFO ] Infos.printGraphicInfos (58) -        - GL_EXT_bgra
    [INFO ] Infos.printGraphicInfos (58) -        - GL_EXT_paletted_texture
    Je charge une image .jpg très simple (carrée et de 2Ko).
    Si vous avez d'autres idées pour m'aider...

    D'avance merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut
    J'apporte un peu plus d'infos en espérant avoir plus de succès pour mon problème.

    voici la méthode java qui charge la texture en OpenGL :
    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
    31
    32
    33
    34
    35
    	public int loadTexture(GL gl, String fileName) throws Exception {
     
    		Texture texture = null;
    		logger.info("start loading texture : " + fileName);
    		try {
    			texture = textureReader.readTexture(fileName);
     
    			if (texture.getWidth() > GL.GL_MAX_TEXTURE_SIZE + 2
    					|| texture.getHeight() > GL.GL_MAX_TEXTURE_SIZE + 2) {
    				throw new Exception("tetxure size error !!!");
    				// new GLMaxTextureSizeException(text.getEstimatedMemorySize(),
    				// GL.GL_MAX_TEXTURE_SIZE);
    			}
     
    			texture.setId(getTextureID(gl));
     
    			// bind ('select') our texture in a target
    			gl.glBindTexture(GL.GL_TEXTURE_2D, texture.getId());
     
    			gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER,
    					GL.GL_LINEAR);
    			gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER,
    					GL.GL_LINEAR);
     
    			gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGB, texture.getWidth(),
    					texture.getHeight(), 0, GL.GL_RGB, GL.GL_UNSIGNED_BYTE,
    					texture.getPixels());
     
    		} catch (Exception e) {
    			logger.error("Error loading texture " + fileName, e);
    			return -1;
    		}
     
    		return texture.getId();
    	}
    le TextureReader lit l'image et la convertir en BufferImage cf exemple de nehe lesson06.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 175
    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 175
    Billets dans le blog
    155
    Par défaut
    Bonjour,

    Je pense qu'avec un debuggeur, ( pour voir les valeurs de la structure texture ) et la documentation de la fonction: http://www.opengl.org/sdk/docs/man/ il est très facile de trouver le problème.
    En bah de la page pour la fonction, toute les causes des erreurs sont indiqués
    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.

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 114
    Par défaut
    Problème résolu
    le code est correct mais la carte graphique ne supporte que trop peu d'extensions...

    Merci de votre aide

Discussions similaires

  1. applet JOGL
    Par soubre dans le forum Applets
    Réponses: 4
    Dernier message: 10/10/2005, 23h57
  2. Rapidité de JOGL
    Par joseph_p dans le forum OpenGL
    Réponses: 3
    Dernier message: 18/03/2005, 08h56
  3. [java] java3d vs Jogl
    Par mandale dans le forum OpenGL
    Réponses: 3
    Dernier message: 03/01/2005, 16h44
  4. [Debutant Java JOGL] problème glVertexPointer()
    Par Stef784ever dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/04/2004, 18h43
  5. texture cube glTexImage2D et moi
    Par Toukan dans le forum OpenGL
    Réponses: 3
    Dernier message: 04/06/2003, 16h01

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