Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 18:14

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 63 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 29, 2003 12:31 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 29, 2003 13:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Mh, ne geht nicht, ist aber im on idle event.
Habs einmal am anfang hin, einmal vor und einmal nach dem rendern.
Oder wo soll das hin?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 29, 2003 13:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Nochmal, wenn ichs ganz am Ende mache, gehts.
Nur der Fehler bleibt bestehen, sonst ist alles wies davor war.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 29, 2003 18:20 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 29, 2003 20:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
hi!

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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 29, 2003 20:07 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Code:
  1. glTexParameteri(GL_TEXTURE,GL_TEXTURE_WRAP_S, GL_REPEAT);

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 03, 2004 16:34 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
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...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 03, 2004 16:37 
Offline
DGL Member
Benutzeravatar

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

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 03, 2004 16:42 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Also bei mir bremst das um so 10-30 FPS, wenn die FPS in der Formcaption stehen und jede Sekunde aktualisiert werden.

Wenn es keine Kollisionserkennung gibt, muss man doch auf die einzelnen Vertexpositionen zurückgreifen können, oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 16, 2004 16:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
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:
  1.  
  2.   spieler.modell := TAll3dsMesh.Create(self);
  3.   spieler.modell.TexturePath := 'models';
  4.   spieler.modell.LoadFromFile('models\bbcar.3ds');
  5.  

aber bei "LoadFromFile" macht er einen fehler, model ist da... (im ordner)
aber... k.A.
mit ExtractFilePath(ParamStr(0)) davor gehts übrigends auch net.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 16, 2004 17:07 
Offline
DGL Member
Benutzeravatar

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?

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 16, 2004 17:35 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Hallo,
Habs schon probiert eben mit nem anderen... geht nicht.
Code:
  1.  
  2. procedure TAll3DSMesh.Calculatesize;
  3. var m, f: integer;
  4.     x,y,z: single;
  5. begin
  6. //can be better per T3DSMesh
  7. _minimum.x:=0;
  8. _minimum.y:=0;
  9. _minimum.z:=0;
  10. _maximum.x:=0;
  11. _maximum.y:=0;
  12. _maximum.z:=0;
  13. for m:=0 to _NumMeshes-1 do
  14.     for f:=0 to _Mesh[m]._NumIndices-1 do begin
  15.         x:=_Mesh[m]._vertex[_Mesh[m]._indices[f]].x;
  16.         y:=_Mesh[m]._vertex[_Mesh[m]._indices[f]].y;
  17.         z:=_Mesh[m]._vertex[_Mesh[m]._indices[f]].z;
  18.         if x<_minimum.x then _minimum.x:=x;
  19.         if y<_minimum.y then _minimum.y:=y;
  20.         if z<_minimum.z then _minimum.z:=z;
  21.         if x>_maximum.x then _maximum.x:=x;
  22.         if y>_maximum.y then _maximum.y:=y;
  23.         if z>_maximum.z then _maximum.z:=z;
  24.     end;
  25. end;
  26.  

Dort, integer overflow


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 16, 2004 17:39 
Offline
DGL Member
Benutzeravatar

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.).

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 16, 2004 17:44 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Mit dem >>gleichen Model<< funktioniert es in einem anderen Programm von mir auch mit dem gleichen loader... ich check mal nach nem neuen von noeska.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 16, 2004 17:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Mh, wo finde ich den neusten?
Ich habe gesucht, doch den hab ich selbst, hab in dem Forum geguckt, der Link ist älter und auf seiner HP gehts auch net


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 63 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]