Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Früher hat man Sin & Co. dadurch beschleunigt, das diese nicht berechnet wurden, sondern nachgeschlagen hat. Man nahm damit eine Ungenauigkeiten in Kauf, die Berechnungen wurden aber sehr schnell dadurch.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Besonders Vektoren- und Matrixberechnungen können von 3DNow!(+), SSE(2) und MMX stark profitieren, da z.B. 3DNow!(+) extra dafür von AMD entwickelt wurde und auf dem Bereich sehr erfolgreich war (inzwischen bietet jeder Grafikkartentreiber dafür Unterstützung an). 3DNow!(+) ist ein erweiterterter Register- und Befehlssatz um solche aufwendigen und häufig vorkommenden Berechnungen stark zu beschleunigen. Lad dir mal glScene runter, denn da ist seit v0.7.2 eine auf 3DNow! optimierte Matheunit (als Ersatz für die math.pas) dabei, welche deine Berechnungen stark beschleunigen kann.
Das was KidPaddle sagt ist auch ne brauchbare Sache und wurde z.B. bei DOOM so gemacht.Das Programm hatte z.B. ne feste Sinus-Tabelle und hat dann anstatt den Sinus zu berechnen einfach nur nen LookUp in dieser Tabelle getätigt.Das war natürlich auch viel schneller, klappte aber natürlich nicht für alle Winkel...
All diese 2D Effekte kann man beschleunigen und verallgemeinern. Man speichert ein 2D Array in dem für jeden Punkt angegeben ist, von welcher Position er für den nächsten Frame kopiert wird. Dabei kann man dann z.B die unteren 16 Bit für die Nachkommastellen nutzen.
Damit kann man dann alle möglichen Effekte nur durch Änderung der Tabelle erreichen. Alle Effekte sind dann auch gleich schnell. Wenn man das ,wie SoS im anderen Thema vorgeschlagen hat, über PixelShader machen will, dann ist die Tabelle einfach eine Texture.
Mitglieder in diesem Forum: 0 Mitglieder und 4 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.