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

Aktuelle Zeit: Mo Jul 21, 2025 00:17

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 24, 2003 00:35 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich bastel hier grad an etwas rum was ziemlich rechenintensiv ist (TexturenEffekt)...

Die aufwendingsten Rechnungen darin sind ArcTan2, SinCos, Hypod aus der Math Unit, sowie jede Menge * und / rechnungen...

Kann man das jetzt durch 3DNow!, MMX oder SSE irgendwie schneller machen, und wenn ja... wie???

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 24, 2003 08:19 
Offline
DGL Member

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.

Gruß
KidPaddle

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 24, 2003 10:05 
Offline
DGL Member
Benutzeravatar

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

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 24, 2003 10:57 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
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.

So nach folgendem Prinzip:

Code:
  1.  
  2. for x:=0 to 255 do
  3.  for x:=0 to 255 do
  4.  begin
  5.   neuerFrame[x,y]:=alterFrame[Tabelle[x,y].x,Tabelle[x,y].y];
  6.  end;


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.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

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.

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