Ich habe einen Haufen Opengl Fragen. Viele von diesen sind sicher etwas blöd da ich noch ein Anfänger bin. Da es so viele Fragen sind, bitte ich darum das die nummer der Frage bei der Antwort angegeben wird.
1)
Ich will die collision detection von Maarten Kronberger gebrauchen, in der Code ist aber eine function gebraucht (isnan)die ich nicht keine und in keinem Unit auf meinem pc ist.
Ich hier sind auch die kommentare von Maarten Kronberger.
// Here we make sure that the angle is not a -1.#IND0000000 number, which means indefinate.
// acos() thinks it's funny when it returns -1.#IND0000000. If we don't do this check,
// our collision results will sometimes say we are colliding when we aren't. I found this
// out the hard way after MANY hours and already wrong written tutorials Usually
// this value is found when the dot product and the maginitude are the same value.
// We want to return 0 when this happens.
if(isnan(angle)) then
begin
result := 0;
exit;
end;
Die function scheint aus c++ zu kommen.
2)
Wenn man in einem commerziellen Spiel die visuelle qualität senkt, was wird da genau getan? Ich meine jetzt nicht resolution,bitdepth und so. Die texturen werden zum beispiel geblurred. Wie machen sie das und warum ist das schneller?
3)
Wie illegal ist es texture aus einem anderen Spiele zu gebrauchen? (Ich meine im allgemein, und nicht in europäischem Raum).
4)
Wie klein sollte/kann man auf dem Koordinaten system gehen. Viel der demos tun alles auf nur 1 einheit in jede Richtung.
5)
Nach so ein paar sekunden bekomme ich manchmal folgenden Fehler:
Project ... raised too many consecutive exceptions: 'acces violation at 0xbff24dd5: read of address 0x8239f000'. Process Stopped ...
Das CPU Fenster kommt auch hoch und ist fast immer auf mov ax,gs:[ecx] oder ähnlichem. Nachdem dieser Fehler so 2 mal aufgetreten ist, passiert es nicht wieder.
6)
Nachdem ich eine texture gebrauche, und dann eine Line male, ist die Line immer die falsche Farbe. Das selbe gilt auch andersrum. Nach einer roten line ist die texture dan nur noch in rot. glcolor3f(1,1,1) dazwischen hilft etwas aber nicht sehr gut.
1.nan ist eine zahl, die bei einer berechnung entstanden ist, die nicht sein dürfte, z.b. irgendwas durch null. wenn ich mich recht entsinne ist isnan das gleiche wie (zahl = 0/0) = true
2. blurring entsteht durch den linearen filter.... tatsächlich ist das nicht das was es schneller macht, sondern die niedriger aufgelöste textur, die verwendet wird
3. in etwa das gleiche, wie als ob du das spiel kopieren würdest - am besten immer den author befragen, ob du die texturen verwenden darfst, oder sie selber herstellen
5. Bug in Delphi/Treiber..... schau dass du deine Grafikkartentreiber aktualisierst, dann sollte das Problem verschwinden.
4.) Ich denk mal die Maß einheit ist ziemlich egal, mach es so das es für dich übersichtilich ist Wenn ich sachen aus RL nachmodelle nehm ich immer 1 Einheit = 1cm..
6.) mach mal
Code:
glBindTexture(GL_TEXTURE_2D,0);
Dann sollte das gehen, wenn du die Farbe änderst dannach dann einfach glColor3f(1,1,1); machen
Noch mal zu der ersten Frage, wie schlägst du vor das ich die code andere das isnan nicht gebraucht wird, aber trotzdem nicht diese fehler der im commentar beschrieben ist auftritt? Bitte die code posten.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Die von dir benötigte Funktion isNan() befindet sich in der Unit Math.
Allerdings ist es gut möglich, das diese Funktion erst in neueren Delphi-Versionen implementiert ist.In Delphi6 ist sie auf jeden Fall enthalten, in Delphi3 gab es sie (meines Wissens nach) nocht nicht.
Falls du also ne Delphi-Version hast, in der es die Funktion nicht gibt, dann ist hier deren Quellcode aus der Math-Unit :
Code:
function IsNan(const AValue: Double): Boolean;
begin
Result := ((PInt64(@AValue)^ and $7FF0000000000000) = $7FF0000000000000) and
((PInt64(@AValue)^ and $000FFFFFFFFFFFFF) <> $0000000000000000)
end;
Und IsNan bei der Kollisionsabfrage einfach wegzulassen ist nicht möglich, dann wird die komplette Kollisionsabfrage nämlich unbrauchbar.
Mitglieder in diesem Forum: 0 Mitglieder und 10 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.