Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
~->GEF<-~ Adler hat geschrieben:
Und nur wenn ich die Maus ständig bewege, dann lagts nicht, wenn ich die maus allerdings nicht bewege, macht er mit gerade mal so ca. 1 Frame pro Sek.
Das hab ich irgendwie ganz überlesen. Ich gehe anhand deiner Beschreibung davon aus, dass du dein Rendering im OnIdle-Event machst? Wenn ja, dann hast du wahrscheinlich vergessen dort die Variable Done auf false zu setzen. Machst du das nämlich nicht, so arbeitet Windows dieses Event nur bei bestimmten Aktione ab, z.B. dem Bewegen der Maus, was auch das beschriebene Verhalten erklärt. Also einfach mal im OnIdle-Event Done := False einsezten, dann denkt Windows nämlich dein Rendering wäre noch nicht fertig und ruft diese Methode permanent auf.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Welcher Fehler? Die Sache mit dem GL_INVALID_ENUM ? Wenn ja, dann musste halt mittels glGetError genau feststellen wo dieser Fehler auftritt. Am besten nach jedem verdächtigen OpenGL-Aufruf ein glGetError mitloggen und dann in der Log feststellen wo das genau passiert. Anders wirste nicht so leicht dahinterkommen.
Bin mal alles durch gegangen und habe entdeckt, dass es ohne diese Befehle
//glTexParameteri(GL_TEXTURE,GL_TEXTURE_WRAP_S, GL_REPEAT);
//glTexParameteri(GL_TEXTURE,GL_TEXTURE_WRAP_T, GL_REPEAT);
funktioniert.
Kann ich die weglassen? eigentlich, Ja oder?
Das ist ja auch falsch. Da muss statt GL_TEXTURE ein GL_TEXTURE_2D für 2D-Texturen hin, aber eigentlich kannste das auch weglassen, da der Texturenwrap standardmäßig auf GL_REPEAT steht.
Sorry, dass ich blöd Frag, aber hat noeskas 3ds-Loader eigentlich so ne Art Kollisionserkennung?
PS.: Der Screenshot sieht spitze aus. Aber wieso sind die FPS so niedrig? Mir ist aufgefallen, dass die FPS-Zahl kleiner wird, wenn man die im Titel der Anwendung anzeigt. Ist ja eigentlich klar, weil das Windows die ganzen Variablen für den Fenstertext aktualisieren muss und den Gerätekontext oder was auch immer . Auserdem (Ist mir beim VCL-Template aufgefallen) wird sie kleiner, wenn man mehr Text anzeigt im Orthographischen Modus. Also z.B.: Die FPS, die Hilfe, den Renderkontext...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ne, geht doch nicht. Wie willste den in nem Loader ne anwendungsspezifische Kollisionserkennung einbinden? Die Extremwerte für Boundingboxen werden dort aber schon ermittelt.
@Screenshot : War nur ne Testanwendung, weshalb rein gar nix optimiert ist. Die Anzeige der FPS in der Caption erfolgt nur alle 1000ms, bremst also nicht. Ausserdem erstelle ich in der Anwendung in jedem Frame noch ne Schattentextur, die aber auf dem Screenshot nicht zu sehen ist. Das raubt auch Performance...
Moin moin,
hab nochmal ein Prob hier...
hab Spieler.modell: TAll3dsmesh; declariert
und wie mans halt macht, habs zehn mal überprüft, lade ich es so:
Code:
spieler.modell := TAll3dsMesh.Create(self);
spieler.modell.TexturePath := 'models';
spieler.modell.LoadFromFile('models\bbcar.3ds');
aber bei "LoadFromFile" macht er einen fehler, model ist da... (im ordner)
aber... k.A.
mit ExtractFilePath(ParamStr(0)) davor gehts übrigends auch net.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Welcher Fehler kommt denn bei LoadFromFile? Ohne genaue Fehlerbeschreibung wirds schwierig. Versuch mal ein normales Modell zu laden, wenns dann geht, liegt dein Problem im Modell.
Es kann sein das Noeskas 3DS-Loader hier und da noch ein paar Probleme hat, denn das 3DS-Format ist komplex und nicht sonderlich gut dokumentiert. Womit machst du denn dein Modell? Besitzt es auch Texturenkoordinaten?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Das Problem hatte ich auch, liegt daran das irgendwie ein Mesh mit null Indizes in der Datei drin ist, wahrscheinlich irgendeine Lichtquelle oder ein Gizmo das der Loader dann irrtümlicherweise für nen Mesh hält. Die oben genannte Schleife funzt dann natürlich nicht und vereletzt Arraygrenzen. Also entweder neuen Loader verwenden (Noeska hat das AFAIK gefixt) oder alle nicht nötigen Objekte vor dem Export nach 3DS löschen (Lichter, Gizmos, ect.).
Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.