Partage
  • Partager sur Facebook
  • Partager sur Twitter

[jMonkeyEngine3]Bug lors de l'utilisation avec LWJGL

Sujet résolu
    17 octobre 2010 à 14:38:51

    Bonjour à tous, voilà j'utilise le moteur 3D jMonkeyEngine3 et j'ai un problème quand à l'affichage avec LWJGL (OpenGL 2 ou supérieur). Voilà ce qu'il se passe:

    Image utilisateur

    Voici les logs:

    17-oct.-2010 14:30:37 com.jme3.system.JmeSystem initialize
    INFO: Running on jMonkey Engine 3 Alpha 0.6
    17-oct.-2010 14:30:37 com.jme3.system.Natives extractNativeLibs
    INFO: Extraction Directory #1: file:/C:/Documents%20and%20Settings/Alexandre/Bureau/API%20Java/jME3/jME/
    17-oct.-2010 14:30:37 com.jme3.system.Natives extractNativeLibs
    INFO: Extraction Directory #2: C:\Program Files\eclipse\workspace\jME
    17-oct.-2010 14:30:37 com.jme3.system.Natives extractNativeLibs
    INFO: Extraction Directory #3: C:\Program Files\eclipse\workspace\jME
    17-oct.-2010 14:30:37 com.jme3.system.lwjgl.LwjglAbstractDisplay run
    INFO: Using LWJGL 2.5
    17-oct.-2010 14:30:37 com.jme3.system.lwjgl.LwjglDisplay createContext
    INFO: Selected display mode: 640 x 480 x 0 @0Hz
    17-oct.-2010 14:30:38 com.jme3.system.lwjgl.LwjglAbstractDisplay initInThread
    INFO: Display created.
    17-oct.-2010 14:30:38 com.jme3.system.lwjgl.LwjglAbstractDisplay initInThread
    INFO: Adapter: ati2dvag
    17-oct.-2010 14:30:38 com.jme3.system.lwjgl.LwjglAbstractDisplay initInThread
    INFO: Driver Version: 6.14.10.6652
    17-oct.-2010 14:30:38 com.jme3.system.lwjgl.LwjglAbstractDisplay initInThread
    INFO: Vendor: ATI Technologies Inc.
    17-oct.-2010 14:30:38 com.jme3.system.lwjgl.LwjglAbstractDisplay initInThread
    INFO: OpenGL Version: 2.0.6232 WinXP Release
    17-oct.-2010 14:30:38 com.jme3.system.lwjgl.LwjglAbstractDisplay initInThread
    INFO: Renderer: RADEON X600 x86/MMX/3DNow!/SSE2
    17-oct.-2010 14:30:38 com.jme3.system.lwjgl.LwjglAbstractDisplay initInThread
    INFO: GLSL Ver: 1.10
    17-oct.-2010 14:30:38 com.jme3.system.lwjgl.LwjglTimer <init>
    INFO: Timer resolution: 1000 ticks per second
    17-oct.-2010 14:30:39 com.jme3.renderer.lwjgl.LwjglRenderer initialize
    INFO: Caps: [FrameBuffer, FrameBufferMRT, OpenGL20, ARBprogram, GLSL100, GLSL110]
    17-oct.-2010 14:30:39 com.jme3.asset.DesktopAssetManager <init>
    INFO: DesktopAssetManager created.
    17-oct.-2010 14:30:39 com.jme3.renderer.Camera <init>
    INFO: Camera created (W: 640, H: 480)
    17-oct.-2010 14:30:39 com.jme3.renderer.Camera <init>
    INFO: Camera created (W: 640, H: 480)
    17-oct.-2010 14:30:39 com.jme3.input.lwjgl.LwjglMouseInput initialize
    INFO: Mouse created.
    17-oct.-2010 14:30:39 com.jme3.input.lwjgl.LwjglKeyInput initialize
    INFO: Keyboard created.
    17-oct.-2010 14:30:39 com.jme3.audio.lwjgl.LwjglAudioRenderer initialize
    INFO: Audio effect extension version: 1.0
    17-oct.-2010 14:30:39 com.jme3.audio.lwjgl.LwjglAudioRenderer initialize
    INFO: Audio max auxilary sends: 2
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Gui Node)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (BitmapFont) attached to this node (Statistics View)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (Statistics View) attached to this node (Gui Node)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (Sky) attached to this node (Root Node)
    17-oct.-2010 14:30:40 com.jme3.scene.Node attachChild
    INFO: Child (Box) attached to this node (Root Node)
    17-oct.-2010 14:30:40 com.jme3.app.Application handleError
    GRAVE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
    com.jme3.renderer.RendererException: Invalid ID received when trying to create shader program.
    at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderData(LwjglRenderer.java:781)
    at com.jme3.renderer.lwjgl.LwjglRenderer.setShader(LwjglRenderer.java:865)
    at com.jme3.material.Material.render(Material.java:550)
    at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:334)
    at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:100)
    at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:147)
    at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:465)
    at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:445)
    at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:607)
    at com.jme3.renderer.RenderManager.render(RenderManager.java:627)
    at com.jme3.app.SimpleApplication.update(SimpleApplication.java:185)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:112)
    at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:101)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:166)
    at java.lang.Thread.run(Unknown Source)

    Et voici le code, c'est un des codes exemples tout simple pour mettre un "ciel":
    import com.jme3.app.SimpleApplication;
    import com.jme3.asset.TextureKey;
    import com.jme3.material.Material;
    import com.jme3.math.Vector3f;
    import com.jme3.scene.Geometry;
    import com.jme3.scene.shape.Box;
    import com.jme3.math.ColorRGBA;
    import com.jme3.renderer.queue.RenderQueue.Bucket;
    import com.jme3.scene.shape.Sphere;
    import com.jme3.texture.Texture;
     
    /** Adding a sky to a scene. */
    public class HelloSky extends SimpleApplication {
     
      public static void main(String[] args) {
        HelloSky app = new HelloSky();
        app.start(); 
      }
     
      private Sphere sphereMesh = new Sphere(10, 10, 100, false, true);
      private Geometry skySphere = new Geometry("Sky", sphereMesh);
     
      @Override
      public void simpleInitApp() {
     
        // Load a sky sphere using a sky texture from jme3test-test-data
        skySphere.updateModelBound();
        skySphere.setQueueBucket(Bucket.Sky);
        Material sky_mat = new Material(assetManager, "Common/MatDefs/Misc/Sky.j3md");
        TextureKey key = new TextureKey("Textures/Sky/Bright/BrightSky.dds", true);
        key.setGenerateMips(true);
        key.setAsCube(true);
        Texture tex = assetManager.loadTexture(key);
        sky_mat.setTexture("m_Texture", tex);
        sky_mat.setVector3("m_NormalScale", Vector3f.UNIT_XYZ);
        skySphere.setMaterial(sky_mat);
        rootNode.attachChild(skySphere);
     
        // Just a simple scene with a blue cube
        Box b = new Box(Vector3f.ZERO, 1, 1, 1);
        Geometry geom = new Geometry("Box", b);
        Material mat = new Material(assetManager,
          "Common/MatDefs/Misc/SolidColor.j3md");
        mat.setColor("m_Color", ColorRGBA.Blue);
        geom.setMaterial(mat);
        rootNode.attachChild(geom);
      }
     
        @Override
        public void simpleUpdate(float tpf){
            skySphere.setLocalTranslation(cam.getLocation());
        }
    }
    


    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      17 octobre 2010 à 17:38:09

      C'est pour le moins étrange. En fait le problème vient de glCreateProgram() qui retourne 0

      Ce genre de truc n'arrive en principe que lorsqu'il est appelé entre glBegin et glEnd, ce qui n'est pas le cas ici...

      * Tu a déjà eu ce problème avec d'autres codes JME3 utilisant des shaders ?
      * Tes drivers ATI sont à jour ?

      J'ai pas JME sur cet ordi (ni Java d'ailleurs), je regarderai ce soir....
      • Partager sur Facebook
      • Partager sur Twitter
        17 octobre 2010 à 17:56:25

        Merci pour ta réponse,

        Citation : quarante-sept

        * Tu a déjà eu ce problème avec d'autres codes JME3 utilisant des shaders ?


        Oui n'importe quel code.

        Citation : quarante-sept

        * Tes drivers ATI sont à jour ?


        Je ne sais pas. Question bête (ne me tapez pas SVP ^^) comment on fait pour les mettre à jours SVP ?
        • Partager sur Facebook
        • Partager sur Twitter
          17 octobre 2010 à 20:10:55

          Pour les drivers c'est ici que tu les trouvera. Tu tourne sous quel OS ?
          • Partager sur Facebook
          • Partager sur Twitter
          Le développement de jeu vidéo vous intéresse ? Parlons en !
            17 octobre 2010 à 20:20:36

            Bonjour, Windows XP [version 5.1.2600].
            Euh... pour la mise à jours, je n'y arrive pas, je remplis le formulaire et j'arrive sur la page de téléchargement, mais lorsque je clique sur "Download", j'ai la page suivante qui s'affiche:
            http://support.amd.com/us/403/Pages/leech.aspx
            • Partager sur Facebook
            • Partager sur Twitter
              17 octobre 2010 à 22:38:34

              Tu peux récupérer le dernier catalyst sur clubic. Vérifie que ta carte est bien dans la liste des cartes supportés.
              • Partager sur Facebook
              • Partager sur Twitter
              Le développement de jeu vidéo vous intéresse ? Parlons en !
                18 octobre 2010 à 19:50:04

                Premièrement merci de votre aide, mais ma carte n'est pas dans la liste, j'ai la Readon X600 Series. Y a t-il un autre moyen de trouver la mise à jours ? ? (je sais, je suis lourd)

                EDIT:J'ai trouvé ceci:
                http://www.commentcamarche.net/downloa [...] or-xp-32bits#

                Je pense que c'est la bonne version. Je vérifierai dés que j'ai le temps.
                • Partager sur Facebook
                • Partager sur Twitter
                  19 octobre 2010 à 19:52:35

                  Après avoir installé les mise à jours, j'ai retesté et la même erreur s'affiche ! Aucune autre idée ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 octobre 2010 à 21:03:56

                    Tu utilise une version compilée par la team de JME3 ou une version compilée perso (SVN) ?

                    Il faut être méthodique, perso je n'ai jamais utilisé JME3 mais au vue de ton code (qui est basic), ça ne doit pas être si méchant que ça. Je vois donc plusieurs choses à faire (avant qu'un expert passe dans le coin)
                    • Utilise la dernière version stable et test ton code
                    • Utilise ta version avec plusieurs exemples de bases fournis (je crois que ton exemple ça en ai un ? les comms sont en anglais, peut être que toi aussi tu commente en anglais...
                    • Si tu utilise une version non officielle, test des autres codes

                    Avec tout ces tests si tu n'obtiens toujours rien et qu'un bon en JME est passé dans le coin et qu'il n'a rien découvert, c'est que c'est peut être un bug, donc il faut aller sur le bug tracker de jme et signaler le problème ;)

                    Désolé de ne pas pouvoir t'en dire plus.
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Le développement de jeu vidéo vous intéresse ? Parlons en !
                      19 octobre 2010 à 23:39:10


                      Sinon essaye un code lwjgl sans JME qui utilise des shaders (openGL 2).

                      J'ai l'impression que le problème est plus du coté de lwjgl que de JME.

                      Et les shaders openGL fonctionnent correctement avec un programme natif ?

                      PS : là j'ai pas le temps mais j'essayerai de te donner des progs de test si t'en trouve pas
                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 octobre 2010 à 18:16:14

                        Merci pour vos réponses.

                        Citation : CYann

                        Tu utilise une version compilée par la team de JME3 ou une version compilée perso (SVN) ?

                        Il faut être méthodique, perso je n'ai jamais utilisé JME3 mais au vue de ton code (qui est basic), ça ne doit pas être si méchant que ça. Je vois donc plusieurs choses à faire (avant qu'un expert passe dans le coin)

                        • Utilise la dernière version stable et test ton code
                        • Utilise ta version avec plusieurs exemples de bases fournis (je crois que ton exemple ça en ai un ? les comms sont en anglais, peut être que toi aussi tu commente en anglais...
                        • Si tu utilise une version non officielle, test des autres codes


                        Avec tout ces tests si tu n'obtiens toujours rien et qu'un bon en JME est passé dans le coin et qu'il n'a rien découvert, c'est que c'est peut être un bug, donc il faut aller sur le bug tracker de jme et signaler le problème ;)

                        Désolé de ne pas pouvoir t'en dire plus.



                        Le problème ne viens surement pas de ma version du jME, elle est "officiel" et j'ai déja testé avec 2 versions différentes et le même problème survient. Ce problème survient avec TOUT les codes.

                        Citation : quarante-sept

                        Sinon essaye un code lwjgl sans JME qui utilise des shaders (openGL 2).

                        J'ai l'impression que le problème est plus du coté de lwjgl que de JME.

                        Et les shaders openGL fonctionnent correctement avec un programme natif ?

                        PS : là j'ai pas le temps mais j'essayerai de te donner des progs de test si t'en trouve pas


                        Le problème viens de OpenGL c'est sure, mais c'est probablement dût à mon ordinateur (il a beaucoup de bug, je ne sais pas pourquoi, par exemple je ne peux pas défragmenter le disque sinon il n'arrive plus a retrouver le système d'exploitation et en plus il défragmente rien !). Donc je ne pense pas que tester un code OpenGL m'aiderait vraiment à trouver le problème.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          20 octobre 2010 à 20:14:42

                          Formatage :-°
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Le développement de jeu vidéo vous intéresse ? Parlons en !
                            21 octobre 2010 à 12:56:06

                            Bah si le problème vient d'openGL il y a pas grand-chose de faisable, à part avoir un ordi en état et des drivers à jours...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              21 octobre 2010 à 17:54:30

                              Je pense que tu as raison. Merci pour votre aide en tout cas.
                              Je marque comme résolu.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              [jMonkeyEngine3]Bug lors de l'utilisation avec LWJGL

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown