1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Fehler bei Wasser!

  • Alpha_omega
  • 28. April 2011 um 20:02
  • Unerledigt
  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 28. April 2011 um 20:02
    • #1

    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

  • JohnFoo
    20
    JohnFoo
    Mitglied
    Reaktionen
    61
    Punkte
    4.231
    Beiträge
    761
    • 29. April 2011 um 08:15
    • #2

    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. :winking_face:

  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 29. April 2011 um 15:32
    • #3

    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.

  • JohnFoo
    20
    JohnFoo
    Mitglied
    Reaktionen
    61
    Punkte
    4.231
    Beiträge
    761
    • 29. April 2011 um 22:41
    • #4
    Zitat von Alpha_omega

    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.

  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 30. April 2011 um 00:46
    • #5

    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.

  • Archonius
    4
    Archonius
    Mitglied
    Punkte
    125
    Beiträge
    25
    • 30. April 2011 um 11:00
    • #6

    Also wenn ich die Fehlermeldung richtig interpretiere liegt das mehr an dem Fragment-shader Water.frag ("ERROR: 0:19: error(#155) Internal error wrong operand type built in unary operator function. Type: in sampler2DMS") bzw. an deinem Grafikarten-Treiber (siehe http://jmonkeyengine.org/groups/general…led-to-compile/)

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

  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 30. April 2011 um 17:03
    • #7

    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?

  • Archonius
    4
    Archonius
    Mitglied
    Punkte
    125
    Beiträge
    25
    • 30. April 2011 um 18:03
    • #8

    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

  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 3. Mai 2011 um 20:12
    • #9

    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.

  • Archonius
    4
    Archonius
    Mitglied
    Punkte
    125
    Beiträge
    25
    • 3. Mai 2011 um 21:04
    • #10

    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

  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 3. Mai 2011 um 21:13
    • #11

    Und was würdest du empfehlen?
    Sollte ich da einfach auf eine andere Programmieroberfläche wechseln?

  • Archonius
    4
    Archonius
    Mitglied
    Punkte
    125
    Beiträge
    25
    • 3. Mai 2011 um 21:51
    • #12

    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
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 3. Mai 2011 um 21:57
    • #13

    ok...
    das Shader wechseln klingt am besten.
    aber wiesoll das gehen, und welchen anderen gibts da?

  • Archonius
    4
    Archonius
    Mitglied
    Punkte
    125
    Beiträge
    25
    • 4. Mai 2011 um 11:00
    • #14

    Ich kann dich da nur auf das jmonkeyengine-Forum/Dokumentation verweisen

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

  • _Linuxhippy
    6
    _Linuxhippy
    Mitglied
    Reaktionen
    1
    Punkte
    376
    Beiträge
    64
    • 14. Mai 2011 um 21:39
    • #15

    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)

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Tags

  • java
  • jmonkeyengine
  • post-prozessor
  • unbekannter fehler
  • wasser fehler

Rechtliches

Impressum

Datenschutzerklärung