1) macht es ein unterschied ob ich 1.0 oder 1 schreibe. Wird es dann als float anstatt integer angesehen?
2) Bei Kollision detection (nur theoretisch): Ich eine Fläche habe und ein Punkt, der auf einem Kurs ist, der ihn durch die Fläche führt. Die Position des Punktes wird nur jede Sekunde aktualisiert. Was verhindert das der Punkt nicht einfach über die Fläche rüberspringt und es somit nie zu einer Kollision kommt. Eine mögliche Lösung ist das man schaut ob der Punkt rechts oder links davon ist, dann muss man aber für alle Punkte sich merken, ob sie links oder rechts relativ zu den anderen Objekten sind. Das wäre dann eine enorme Datenmenge. Ich habe das Gefühl ich habe da was ganz Entscheidendes bei der Kollision detection verpasst.
3) Ich kriege die Displaylisten nicht so ganz hin. Um genau zu sein das Teil mit 30%-40% schneller. Ich kriege irgendwie keine extra fps raus.(Ja, vsync ist garantiert aus). Als versuch habe ich 1000 Sin+Cos Berechnungen gemacht, genau wie im Redbook. Mit oder ohne Displaylisten kriege ich ~66 fps.
Code1: OnCreate: glNewList(16, GL_COMPILE); glColor3f(1.0, 0.0, 0.0); glBegin(GL_POLYGON); for i:=1 to 1000 do begin cosine:=cos(i*2*PI/100.0); sine:=sin(i*2*PI/100.0); glVertex2f(cosine,sine); end; glEnd(); Im Draw: glCallList(16);
Code2: On Draw: glColor3f(1.0, 0.0, 0.0); glBegin(GL_POLYGON); for i:=1 to 1000 do begin cosine:=cos(i*2*PI/100.0); sine:=sin(i*2*PI/100.0); glVertex2f(cosine,sine); end; glEnd();
4) OGL Nebel ist ja schon und gut, geht es auch das der Nebel beispielsweise nur über dem Boden hängt, sowie in Q3 (Ohne meine eigene Nebel Funktion zu schreiben wenn möglich)?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Zitat:
1) macht es ein unterschied ob ich 1.0 oder 1 schreibe. Wird es dann als float anstatt integer angesehen?
In Delphi gibts keinen Unterschied, da das Typecasting intelligenter behandelt wird als unter C.Dort kann das je nach Fall schonmal nen Unterschied machen.
Zitat:
2) Bei Kollision detection (nur theoretisch): Ich eine Fläche habe und ein Punkt, der auf einem Kurs ist, der ihn durch die Fläche führt. Die Position des Punktes wird nur jede Sekunde aktualisiert. Was verhindert das der Punkt nicht einfach über die Fläche rüberspringt und es somit nie zu einer Kollision kommt. Eine mögliche Lösung ist das man schaut ob der Punkt rechts oder links davon ist, dann muss man aber für alle Punkte sich merken, ob sie links oder rechts relativ zu den anderen Objekten sind. Das wäre dann eine enorme Datenmenge. Ich habe das Gefühl ich habe da was ganz Entscheidendes bei der Kollision detection verpasst.
Im Normalfall testet man bei ner Kollisons mit ner Linie die in die Richtung der Bewegung der Kugel zeigt, und prüft ob diese Linie ein Dreieck durchschneidet (Ray-Triangle-Intersektion).Diese Linie verlängert man dan je nach Aktualisierungszeit der Kollisionsprüfung, um zu garantieren das die Kollision auch immer stattfindet.
Zitat:
4) OGL Nebel ist ja schon und gut, geht es auch das der Nebel beispielsweise nur über dem Boden hängt, sowie in Q3 (Ohne meine eigene Nebel Funktion zu schreiben wenn möglich)?
Das nennt sich volumetrischer Nebel, und lässt sich neuerdings über glFogCoordEXT realiseren.Damit kann man für jedes Vertex eine eigene Nebelkoordinate angeben, und solche Effekte recht einfach realisieren.
Danke für diese antworten aber eine Frage hab ich noch :das mit der displayliste wenn ich das richtig verstehe ist in dem beispiel von Thunderman Displaylist nur ein integer, ob ich da jetzt schon ein wert rein tue oder eine var gebrauche ist doch eigentlich egal. Das sollte doch nicht verursachen das mein extra fps der Displaylist verschwinden, darum geht es mir nämlich.
Registriert: Sa Okt 26, 2002 17:14 Beiträge: 188 Wohnort: Hannover/Lüneburg
Das ist ein reiner Integer. Die Sache ist nur, dass in dieser Variablen die ID gespeichert wird, mit der OpenGL dann auf die Displaylist zugreift. Wenn du da eine feste Zahl nimmst, geht das natürlich nicht.
_________________ Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Du kannst dir das vom Prinzip so vorstellen als würdest du mit Hilfe von GetMem einen Speicherbereich reservieren. Da bekommst du einen Pointer zurück. Den darfst du ja auch nicht einfach so verändern bzw. durch einen fixen Wert ersetzen.
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.