[Modden/Hilfe benötigt] "Gleitkommadivision durch Null" ?

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

User avatar
Viper047
Posts: 1467
Joined: Wed, 21. Feb 07, 19:43
x3ap

[Modden/Hilfe benötigt] "Gleitkommadivision durch Null" ?

Post by Viper047 »

Hallo,

diesen Thread starte ich mal für meinen Modeller.

Und zwar hätten wir ein Problem bezüglich dem einbinden eines Schiffes.

Wenn mein Modeller, Admiral Dominik in diesem Fall, versucht das Schiff zu kompilieren, erhält er die Meldung "Gleitkommadivision durch Null".
Admiral Dominik wrote:Das Problem ist nun da sich wnen ich die exportierte Datei umwandeln will die Fehlermeldung bekomme "Gleitkommadivision durch Null". Bekanntlich darf man ja nicht durch Null teilen, also hängt sich der Compiler dabei auf. Wenn ich nun nur die BOD-Files nehme und X3 damit starten will stürzt es ab, wahrscheinlich aus demselben Grund.

Allerdings weiss ich nicht wirklich was eine "Gleitkommadivision" ist und kann das Problem somit auch nicht erklären und lösen.
Leider können wir damit wenig anfangen, und bräuchten da eine Hilfestellung.
Das Projekt, welches hinter diesem und 2 weiteren Schiffen steht, liegt uns sehr am Herzen und haben nun über 1 Jahr hineingesteckt.

Hoffe das uns da jemand helfen könnte.

Viper047
Last edited by Viper047 on Wed, 24. Dec 08, 18:07, edited 1 time in total.
Battlestar Galactica - Rise of the Cylons Mod HQ
The signatures were created by man
They rebelled
They evolved
There are many copies
And they have a plan....[ external image ]
|K.O.S.H.
Posts: 3728
Joined: Fri, 19. Dec 03, 10:36
x3tc

Post by |K.O.S.H. »

was meinst du mit schiff kompillieren?

also ich hab noch nie eins kompilliert^^
Wing Commander Mod - German Topic
06.07.11 - v1.1 RELEASED!
User avatar
Viper047
Posts: 1467
Joined: Wed, 21. Feb 07, 19:43
x3ap

Post by Viper047 »

Compilieren ? Wird es mit "C" geschrieben?

Jedenfalls den Versuch das Schiff in das Game einzubauen. Auf diesem Weg spuckt das Programm diese Meldung aus.
Battlestar Galactica - Rise of the Cylons Mod HQ
The signatures were created by man
They rebelled
They evolved
There are many copies
And they have a plan....[ external image ]
|K.O.S.H.
Posts: 3728
Joined: Fri, 19. Dec 03, 10:36
x3tc

Post by |K.O.S.H. »

ich meinte damit: du hast dich extremst undeutlich ausgedrückt.

schiffe in x3 einbauen erfordert folgende schritte:
1. 3d modell bauen
2. scene bauen
3. 3d modell packen
4. 3d modell und scene in den catalog schieben
5. eintrag in der tships machen

kompilliert wird da nüscht, nur mal nebenbei.

an welchem schritt hakt es?
ps.
javascript-schnee ist doof ;)

edit:
deine fehlerbeschreibung ist in etwas so hilfreich wie "aus meinem auto tropft was raus, wie kann ich das reparieren?"
Wing Commander Mod - German Topic
06.07.11 - v1.1 RELEASED!
User avatar
Viper047
Posts: 1467
Joined: Wed, 21. Feb 07, 19:43
x3ap

Post by Viper047 »

Admiral Dominik wrote:Egal was ich ausprobiert habe, jedes Mal wenn ich versucht habe das Schiff ins game einzubauen bekam ich beim Compilieren die Meldung "Gleitkommadivision durch Null", kann damit aber nicht viel anfangen. Also hab ich es ohne kompilierung versucht, was den Absturz des Spiels zur Folge hatte wenn ich das Schiff scripten wollte.

Nachdem ich wie gesagt alle möglichen Import-/Export-Varianten ausprobiert habe und das Ergebnis immer dasselbe blieb, werden wir wohlmöglich ohne die Minervas weitermachen müssen.

Ich bin jedenfalls mit meinem Moddellerlatein am Ende.

Dann tut mich sorry wenn es zu undeutlich war :D

Das Modell ist an für sich schon fertig. Nun geht es darum es ins Spiel zu bringen. Dazu kommt auch bod/bob Compiler zur Benutzung.
( Programm zur Bearbeitung/Erstellung ist 3dsmax ).

Es ist der Schritt das Schiff ins Spiel zu bekommen.
Battlestar Galactica - Rise of the Cylons Mod HQ
The signatures were created by man
They rebelled
They evolved
There are many copies
And they have a plan....[ external image ]
Admiral Dominik
Posts: 270
Joined: Wed, 25. May 05, 20:00
x3tc

Post by Admiral Dominik »

Um Viper hier mal auszuhelfen:

Es geht um ein Modell das ursprünglich im OBJ-Format war und welches ich nun in 3dsmax umgebaut und neu texturiert habe. Exportieren und Importieren geht auch problemlos, auch mit den exportierten bod-Dateien problemlos.

Begriffserklärung Kompilieren(Engl. Compile):
1.Das Wort gibts ^^
2. Es gibt ein Programm seit X2, das dir unter Umständen als X3 Bod-Compiler bekannt sein dürfte. Ich benutze ein IDE oder wie man das nennt namens X2BC-IDE über das ich die x2bc-Exe direkt steuern kann ohne txt-FIles in bat's umzuschreiben. Und dieses Programm kann X2/X3-BOB-Files ins bod-Format und umgekehrt umwandeln.
3.Dieser Vorgang nennt sich kompilieren(bod->bob) und dekompillieren(bob->bod).
4.Dekompilierte Datein können von X3 viel schneller ausgelesen werden als bod-Dateien da sie kompiliert sind und dieselbe Information in einer schneller zu verarbeitenden Kurzschrift geschrieben werden.

Soviel zum kompilieren. :wink:

Das Problem ist nun da sich wnen ich die exportierte Datei umwandeln will die Fehlermeldung bekomme "Gleitkommadivision durch Null". Bekanntlich darf man ja nicht durch Null teilen, also hängt sich der Compiler dabei auf. Wenn ich nun nur die BOD-Files nehme und X3 damit starten will stürzt es ab, wahrscheinlich aus demselben Grund.

Allerdings weiss ich nicht wirklich was eine "Gleitkommadivision" ist und kann das Problem somit auch nicht erklären und lösen. Wenn du willst kann ich dir auch mal die Dateien schicken.
MfG,
Admiral Dominik
-----------------
XT-Schiffe für X3|X3-Ships im XT-Style
[ external image ]
da_pro
Posts: 216
Joined: Thu, 16. Nov 06, 19:52
x3tc

Post by da_pro »

Eine Gleitkommadivision ist einfach eine Division von Gleitkommawerten wie z.B. 3,149/0,123 .

Von Kompilieren im Sinne von Umwandeln von Dateiformaten habe ich auch noch nie gehört ;). Hier spricht man eher von konvertieren.
Admiral Dominik
Posts: 270
Joined: Wed, 25. May 05, 20:00
x3tc

Post by Admiral Dominik »

Gibts aber

1.http://www.dict.cc/englisch-deutsch/compiling.html
2.http://de.wikipedia.org/wiki/Compiler

Wie gesagt, das ist aber nicht das Problem. Jeder der X2 oder X3 modelltechnisch gemoddet hat wird früher oder Später mal über komprimierte(das triffts nämlich eher) bod-Dateien, das bob-Format gestoßen sein.

Was ähnliches ist es wenn du ne Datei jetzt einfach mal in ein WInrar-Archiv pakst, dadurch geht ihr inhalt nicht verloren aber sie wird in platzsparenden und schneller auszulesenden Formen gespeichert. BOB-Dateien sind fast nichts anderes :wink:

Aber darum gehts nicht, was unser Problem ist, ist das in dem Modell gleitkommadivisionen drin sind die durch Null gehen und deshalb nicht vom SPiel, aber sehr wohl von DBOX gelesen werden können.

Die Frage ist wie man die rausbekommt oder beim exportieren verhindern kann.
MfG,
Admiral Dominik
-----------------
XT-Schiffe für X3|X3-Ships im XT-Style
[ external image ]
User avatar
Sartorie
Posts: 389
Joined: Sat, 10. Apr 04, 13:05
x3tc

Post by Sartorie »

Es geht nicht darum ob es den Begriff gibt sondern darum wofuer er steht ;) ein zip Program ist eben kein Compiler ^^

Leider kann man aus dem Fehler nicht schliessen wo genau es hapert ... normalerweise kann sowas passieren wenn spezielle Objekte nicht vorhanden sind (Anzahl = 0) - wende Dich am besten an den Programmierer ... mit einem Debugger kann man sehr schnell sehen wo der Fehler steckt.

Ansonsten muesstest Du jemanden finden der mit dem Dateiformat vartraut ist und dort den Fehler sucht.
Aluren
Posts: 89
Joined: Wed, 10. Dec 08, 23:27

Post by Aluren »

ev lehne ich micht etwas weit aus dem fenster hab noch nie mit dem oben beschrieben modeln von x schiffen zu tun gehabt.

ich behaupte einfach mal:
das in der datei wo dein schiff definiert/beschrieben ist, also im befehlscode der datei eine ungültige division durch 0 drin steht oder das ergebnis 0 ergibt
ev über eine variable oder sonst etwas... muss also nicht sofort offensichtlich sein.

bsp sry ist jetzt in c++,

float divident, divisor, resultat;
resultat = divident/divisor;

wenn ich jetzt für den divisor oder den dividenten ein 0 einsetze bekomme ich beim c compiler diese fehlermeldung.

1.111/0= error

eine weitere möglichkeit ist wenn ich mit den datentypen spiele, zb eine ganzkommazahl für das resultat deklariert habe und es auf 0 abgerundet wird.

1.5/2= 0.75 wird auf 0 abgerundet

wie schon erwähnt sollte man dieses problem mit einem debugger sehr schnell finden ... und dir stehen mehrere lösungsmöglichkeiten zu verfügung wie alternativ die division mit hilfer einer schleife in eine subtraktion zu verwandeln etc

ps: den begriff komplieren gibt es wirklich! wie er genau definiert ist weiss ich nicht aber ich verstehe darunter einen befehlscode einer programmiersprache in den maschinencode umzuwandeln
|K.O.S.H.
Posts: 3728
Joined: Fri, 19. Dec 03, 10:36
x3tc

Post by |K.O.S.H. »

es ging mir nur darum, dass in bod in bob umwandeln kein wirklicher kompiliervorgang ist, sondern eine konvertierung.

ich hab noch nie gelesen, dass man irgendwelche dukomente kompiliert...


zum fehler an sich.
was ein float ist, sollte eigentlich jedem klar sein, der hier postet und sachen veröffentlicht.
wenn nicht, sollte er sich schnellstens mal weiterbilden ;)

wenn ich ein float durch 0 teile hab ich halt ne gleitkommadivision durhc 0.
teil nen integer durch 0 bekomme ich den entsprechenden fehler.

und es gibt für jeden typ ne eigene fehlermeldung, damit man z.b. sieht, ob der typ vorher noch gecastet wurde, wenn so ein fehler auftritt.

im model wird wohl irgendein fehler sein, der durch die konvertierung von *.obj zu *.max entstanden ist.

was das genau sein kann, weiß nur doubleshadow.
aber ich glaube sein quellcode ist open source, den könnt ihr euch also ungucken und dort alle divisionen raussuchen ;)

die genaue fehlermeldung währe auch interessant.
Wing Commander Mod - German Topic
06.07.11 - v1.1 RELEASED!
|K.O.S.H.
Posts: 3728
Joined: Fri, 19. Dec 03, 10:36
x3tc

Post by |K.O.S.H. »

so.
ich hab mir grade ein paar tausend zeilen code durchgelesen (quellcode vom bodcompiler v1.0.11)

in der datei bod_bob_parser.cpp gibt es nur eine enzige division in der funktion "computeVertexTangents", die wird aber vorher auf 0 getestet...

in der conversion.h, in funktion "double2int" wird auch geteilt.
hier allerdings ohne test.
da werden die werte in die berühmten x2/x3-zahlen (1 / 65535) umgerechnet.

kann also an sowas liegen.


mein vorshclag: vergiwissert euch, dass ihr auch die neueste version nutzt.
exportiert das model dann auch mal ohne texturen (also alle materialien löschen) und guckt, ob der fehler dann auch noch auftritt.
Wing Commander Mod - German Topic
06.07.11 - v1.1 RELEASED!
User avatar
Cires
Posts: 1158
Joined: Sat, 10. Dec 05, 11:13
x3tc

Post by Cires »

Materialien löschen bringt da nicht wirklich was, weil die Materialien vllt im Material-Editor weg sind, aber in der Szene nicht vorhanden sind, aber ich würde es mal mit dem Standart-Material versuchen. :wink:
|K.O.S.H.
Posts: 3728
Joined: Fri, 19. Dec 03, 10:36
x3tc

Post by |K.O.S.H. »

warum bringt das nichts?
woher willst du wissen, ob der fehler beim konverteiren des models, oder der materialdaten liegt?
oder an der uv-map?
Wing Commander Mod - German Topic
06.07.11 - v1.1 RELEASED!
User avatar
Cires
Posts: 1158
Joined: Sat, 10. Dec 05, 11:13
x3tc

Post by Cires »

Ich meine Materialien muss man neu Zuweisen, löschen kann man die nicht, es ist immer ein Material vorhanden, aber es kann natürlich sein, dass UVW-Maps die Sache erschweren. Also nimm einfach überall einmal die UVW-Maps, falls vorhanden, runter, weise Standard-Materialien zu und exportier das Model nochmal. Ich weiß nicht, ab welchem Max das der Fall ist, aber man kann überprüfen lassen, ob die Geometrie Wasserdicht ist, das würde ich auch einmal kontrolieren.

Gruß
|K.O.S.H.
Posts: 3728
Joined: Fri, 19. Dec 03, 10:36
x3tc

Post by |K.O.S.H. »

also mein max kann materialien löschen. dafür gibts sogar extra nen delete-button :P
Wing Commander Mod - German Topic
06.07.11 - v1.1 RELEASED!
User avatar
Cires
Posts: 1158
Joined: Sat, 10. Dec 05, 11:13
x3tc

Post by Cires »

... Ja, aber du musst die Materialien trotzdem in der Szene ersetzen :wink:
Aber jetzt wirklich back to topic :P

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”