Fehler bei Wasser!

  • Hallo,

    Ich programmiere seit einiger Zeit jetzt schon Java und hab vor ca. 2 Monaten angefangen in jMonkeyEngine-3 (Alpha-4) 3D-Spiele zu schreiben.

    Mein Problem:
    Wenn ich mithilfe eines Post-Prozessors versuche einfaches Wasser zu programmieren, entsteht immer der selbe Fehler ... nämlich dieser:

    28.04.2011 19:49:58 com.jme3.app.Application handleError
    SCHWERWIEGEND: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
    com.jme3.renderer.RendererException: compile error in:ShaderSource[name=Common/MatDefs/Water/Water15.frag, defines, type=Fragment] error:Fragment shader failed to compile with the following errors:
    WARNING: 0:18: warning(#239) Declaration should include a precision qualifier or the default precision should have been previously declared
    ERROR: 0:19: error(#155) Internal error wrong operand type built in unary operator function. Type: in sampler2DMS
    ERROR: error(#273) 1 compilation errors. No code generated

    Das Programm startet von anfang an alles ganz normal, und lädt ersteinmal alle Modelle, Texturen, und Terrains, aber wenn das Programm dann das Wasser initialisieren will hängt sich bei mir einfach das Programm auf, und läuft nicht mehr weiter.

    Hier der Code für das Wasser:
    private FilterPostProcessor fpp;
    private WaterFilter water;
    private Vector3f lightDir = new Vector3f(-4.9f, -1.3f, 5.9f);
    private float initialWaterHeight = 0.8f;
    ---------------------------------------------------------------------------------------------------
    fpp = new FilterPostProcessor(assetManager);
    water = new WaterFilter(rootNode, lightDir);
    water.setWaterHeight(initialWaterHeight);
    fpp.addFilter(water);
    viewPort.addProcessor(fpp);

    ... allerdings, wenn ich das Spiel bei meinem Bruder laufen lasse, funktioniert alles genau so wie es soll.

    Ich habe da so eine vermutung das das was mit meinem Computer also um genauer zu sein mit meinem Prozessor zu tun hat.
    Hier meine Systemdaten:

    Hersteller: Acer
    Modell: Aspire 5820TG
    Prozessor: Intel Core i5
    CPU: M430 (2 Kerne (beidemale 2.27GHz))
    Arbeitsspeicher: 4,00GB (3,80 GB verwendbar)
    Systemtyp: Windows 7 Home Premium 64 Bit

    Ich würde mich SEHR freuen wenn mir Irgendjemand bei diesem Problem helfen könnte.

    MfG,
    Alpha_omega!

    Einmal editiert, zuletzt von Alpha_omega (28. April 2011 um 20:20) aus folgendem Grund: fehlende teile

  • Jetzt eine ganz wilde Vermutung, hatte aber selbst unlängst ein Problem mit 64-bit-Java, das sich letztendlich dadurch lösen lies, dass ich ein 32-bit-Betriebssystem und 32-bit-Java installierte habe.

    Ok, das ist mehr Problemvermeidung als Lösung des Problems, aber vielleicht hilft dir das ja Mal, um die Ursache zu bestimmen. ;)

  • Danke für deine Hilfe, aber ich habe mir jetzt java nocheinmal heruntergeladen (die 64-Bit Version), aber es hat leider nicht funktioniert,
    und ich bin auch leider nicht auf die Ursache gekommen.

  • Danke für deine Hilfe, aber ich habe mir jetzt java nocheinmal heruntergeladen (die 64-Bit Version), aber es hat leider nicht funktioniert,
    und ich bin auch leider nicht auf die Ursache gekommen.

    Was ich meinte war ja, dass genau die 64-bit Version die Probleme gemacht hat. Weiß gar nicht mehr mit was genau, aber geholfen hat damals nur eine 32-bit Win XP Installation mit 32 bit Java drauf. 32 bit Java auf Win 7 64 bit hat damals keine Änderung gebracht.

  • Ich habe jetzt genau das gemacht was du gesagt hast, aber es hat leider wieder nicht geklappt...
    k.A. was da los ist.
    Als ich mir damals jMonkeyEngine down geloadet habe ging das mit dem Wasser ja einige Zeit lang, aber dann nach ~3 Tagen zeigte es mir
    immer wieder den selben Fehler an.
    Ich habe es jetzt auch schon damit probiert, jMonkeyEngine nochmals down zu loaden (habe es mit 32 und 64 Bit versucht), aber hat auch
    nichts gebracht...

    Habe jetzt echt k.A. mehr woran das liegen kann, aber das Einzige, das ich mir noch vorstellen könnte, ist, dass meine Treiber veraltet sind,
    und das, dass irgendwie mit dem Post-Prozessor zusammenhängen könnte.

  • Danke für deine Hilfe.
    Ich habe jetzt alle Treiber upgedated, aber es hat leider noch immer nichtss gebracht.
    Gäbe es irgendeine Möglichkeit, dass man das Wasser noch anders programmieren könnte?

  • Da kann ich dir leider nicht weiterhelfen, hast du es schon in dem Forum von der Engine versucht? Vlt. ist das ein (hardwareabhängiger) Bug.

    "Erfahrungen sammeln heißt Fehler begehen." - Herbert George Wells

  • Da liegt ja auch das Problem.
    Bevor dieser Fehler aufgetretten ist, lief das ganze Spiel einwandfrei.
    Alles funktionierte so wie es sollte (Wasser, Engine, 3D-Objekte, etc...).

    Aber Java ist bei Spielen ziehmlich Fehleranfällig.
    Es wäre vielleicht besser wenn ich für 3D-Spiele überhaupt eine neue, Betriebssystemabhängige, Programmiersprache lerne.

    Da ich C und Java behersche wird das kein Problem, weil z.B. C++ oder C# größtenteils aus C und Java bzw. PHP bestehen.

  • An Java liegt das ziemlich sicher nicht - das ist eine GLSL-Fehlermeldung, und da die JMonkeyengine auf LWJGL bzw. JOGL basiert wirst du das Problem bei der Verwendung desselben Shaders unter OpenGL weiterhin haben....

    "Erfahrungen sammeln heißt Fehler begehen." - Herbert George Wells

  • Meiner Meinung nach hast du folgende Möglichkeiten:
    1) Bug den Entwicklern melden - und abwarten das er gefixt wird.
    2) Versuchen den Bug selbst zu fixen
    3) Einen anderen Shader verwenden
    4) Game Engine wechseln, wobei ich aber keine weitere Gameeninge für Java kenne.

    "Erfahrungen sammeln heißt Fehler begehen." - Herbert George Wells

  • Alpha_Omega: Nichts wie ungut, aber Foren sind nicht dazu da, sich step-by-step guiden zu lassen.
    Es gibt wahrscheinlich keinen anderen shader für wasser als jener, der als teil der Engine mitgeliefert wird.

    Ich würde dir empfehlen statt auf einem derart hohen Abstraktionslevel ein Spiel zu programmieren,
    ganz unten mit OpenGL (oder von mir aus auch DirectX) anzufangen. Diese Details brauchst du früher oder später sowieso, und sich gleich auf jMonkey zu stürzen birgt die Gefahr Dinge zu fabrizieren, ohne wirklich eine Ahnung zu haben was hinter all dem wirklich passiert.
    Wie willst du das nächste Problem lösen dass (mit sicherheit) auftreten wirst, wenn du die Fehlermeldungen nicht verstehst.

    To avoid horrible confusion, please pronounce the G in the word GNU when it is the name of this project.

    2 Mal editiert, zuletzt von _Linuxhippy (14. Mai 2011 um 23:57)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!