Readfloat() zu langsam?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Blitzjockey

Betreff: Readfloat() zu langsam?

BeitragSa, Mai 22, 2010 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich habe ein Problem. Das heisst, eigentlich nicht mehr, da ich es schon gelöst habe. Allerdings verstehe ich nicht ganz wieso es das Problem überhaupt gab.

Ich habe eine kleine Mesh gezeichnet, und die mittels eine eigene -sehr einfache- saver gespeichert, und umgekeht, mittels eine eigene loader (auch wenn's kaum den Name haben darf..) wieder versucht zu laden.

Eine frühere version funktionierte einwandfrei, mittels:

Code: [AUSKLAPPEN]
 AddVertex (Surface, ReadFloat (FileIn), ReadFloat (FileIn), ReadFloat (FileIn))


Hier hatte ich noch kein U/V-werten gespeichert. Nachdem ich diese nun auch gespeichtert habe, habe ich den Funktion erweitert auf (jawohl...):
Code: [AUSKLAPPEN]
 AddVertex (Surface, ReadFloat (FileIn), ReadFloat (FileIn), ReadFloat (FileIn), ReadFloat (FileIn), ReadFloat (FileIn))


Ergebnis: Den Mesh wird nur völlig zerstört angezeigt. Nun habe ich, eigentlich nur um zu sehen was überhaupt gespeichert worden ist, die funktion umgeschrieben in:

Code: [AUSKLAPPEN]
   Local x# = ReadFloat(FileIn)
      Local y# = ReadFloat(FileIn)
      Local z# = ReadFloat(FileIn)
      Local u# = ReadFloat(FileIn)
      Local v# = ReadFloat(FileIn)

      ; Hier würde damals den werten auf dem Bild ge-text-ed.

      AddVertex (Surface, x, y, z, u, v)


Funktion praktisch gesehen (zumindest soweit ich das sehen kann..) vollständig gleich, nur funktioniert den zweite Abschnitt einwandfrei, der Erste aber nicht.

Wie gesagt, Problem gelöst, aber wenn jemand mir eine Hinweis geben kann wieso es mittels diese Methode funktioniert, und innerhalb den Funktions-aufruf nicht, würde ich schon sehr Dankbar sein!

Schöne Grüße,

BJ

Goodjee

BeitragSa, Mai 22, 2010 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
die parameter werden von hinten abgearbeitet, also wird zuerst die v, dann die u und dann zyx ausgelesen

vorher ist dir das nicht aufgefallen, weil das mesh dann einfach nur verdreht geladen wurde, jetz werden die koordinaten in die uv werte gespeichert und die uvwerte als koordinaten interpretiert -> sieht falsch aus
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

mpmxyz

BeitragSa, Mai 22, 2010 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Reihenfolge, mit der die Parameter ausgewertet werden, ist ziemlich zufällig.
Daher wird die Datei ähnlich zufällig ausgelesen.
->Das Mesh ist Müll.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer
 

Blitzjockey

BeitragSa, Mai 22, 2010 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstaunlich!

Danke für die Erklärung, das ergibt Sinn. Ich werde es mir in Zukunft merken..

(Und, in dem Fall werde ich davon ausgehen das alles rückwärts anstatt willkürlich ausgelesen wird, da dass andere Mesh tatsächlich immer funktioniert hat. Nur falsch rum, wie sich jetzt herausstellt!)

Nochmals, vielen Dank!

BJ

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group