Hallo,
ich suchte eine 3D Engine, die ich auf einem Server laufen lassen kann um Bilder für Webseiten generieren zu lassen.
Allerdings habe ich nachdem ich einen kleinen Prototyp auf Windows gebaut habe ein Problem: Auf den (GNU/Linux-) Server gebracht und dort kompiliert, bekomme ich eine Exception wenn ich versuche Texturen einzulesen:
~/projects/jpct/buildtest/classes$ java `cat java_opts` JPCTDemo
Adding Lightsource: 0
Loading Texture...textures/other/numbers.jpg
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window
server using ':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at sun.awt.motif.MToolkit.<clinit>(MToolkit.java:81)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.Toolkit$2.run(Toolkit.java:748)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:739)
at com.threed.jpct.Texture.loadTexture(Unknown Source)
at com.threed.jpct.Texture.<init>(Unknown Source)
at JPCTDemo.<init>(JPCTDemo.java:183)
at JPCTDemo.main(JPCTDemo.java:130)
Der Code, der das auslöst ist noch unverändert aus dem fps Beispiel:
183 numbers=new Texture("textures"+c+"other"+c+"numbers.jpg");
184 texMan.addTexture("numbers", numbers);
185 texMan.addTexture("envmap", new Texture("textures"+c+"other"+c+"envmap.jpg"));
Ich weiss da nicht so recht weiter. ..
Auf dem Webserver läuft kein X11 Server, geht es denn nicht ohne?
Den ganzen Code, der zum erstellen der GUI nötig war habe ich übrigens rausgeworfen, also denke ich, dass in die Richtung keine Ursache zu finden ist.
Auf Windows läuft der Prototyp auch und schreibt den Framebuffer in JPEG Dateien.
Irgendwo stand doch, dass einige Leute jPCT zum offscreen rendering benutzen, wie machen die das denn?
Schöne Grüße
fendres