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

Aktuelle Zeit: Fr Jul 18, 2025 11:23

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



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Dez 13, 2003 15:38 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
Komputerspiele haben doch nen Fullscreenmodus,wie aktiviere ich den und wie neme ich dan einstellungen (Farbtiefe, Auflösung... vor???

Auch wenn ich mich schon son bischen auskenne und davon noch nie gehört habe: Kann mann irgendwie für Bestimmte rechnungen, schleifen, Funktionen oder Prozeduren die Rechengenauigkeit beeinflussen um Zeit zu Sparen??? Der muss mir ja schliesslich bei Simulationen nicht alles auf nanometer genau berechnen. Besonders dann, wenn ich das ergebniss eh nur als abgerundeten integer wehrt brauche!!!

Und noch watt, weißjemand,ob bei UT2003 zum beispiel die dynamischen Stürtze (Bei vollen Physikdetails) von der CPU berechnet werden??? kommt mir irgenwie spanisch vor. Wenn ich simus programmiere macht die CPU immer so schnell die Gretsche!!!

Vielen Dank hoffentlich im vorraus.

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 13, 2003 15:51 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Zum FullScreen

dmScreenSettings ist vom Typ DevMode

Code:
  1.     // switch to fullscreen if needed
  2.     if FullScreen and (Parent=0) then begin
  3.       ZeroMemory( @dmScreenSettings, sizeof( DEVMODE ));
  4.       With dmScreenSettings do begin
  5.         dmSize := sizeof( DEVMODE );
  6.         dmPelsWidth  := Width;  // Width
  7.         dmPelsHeight := Height;  // Height
  8.         dmFields     := DM_PELSWIDTH or DM_PELSHEIGHT; // Color Depth
  9.       end;
  10.       ChangeDisplaySettings(dmScreenSettings, CDS_FULLSCREEN); // Switch To Fullscreen Mode
  11.     end;
  12.  



Die Rechengenauigkeit beeinflußt du durch den verwendeten Datentyp: single oder double für Fließkommazahlen. Bestimmte Berechnungen kannst du durch Verwendung von Festkommaarithmetik (Integer) beschleunigen, was auf aktuellen Prozessoren aber kaum mehr notwendig ist.
Immerhin kann es bei vielen gleichzeitigen Threads einigen Leistungszuwachs bringen, da die FPU bei vielen Prozessen nicht sehr Threadfreundlich ist.

Es ist auch nicht notwendig alles in Echtzeit zu berechnen - z.B. können Sinus/Cosinus Lookuptabellen einiges beschleunigen, wobei die Lookups um so schneller sind, je mehr Rechenschritte du dort unterbringst.

P.S. aus Interesse: stört Legasthenie auch beim Programmieren, oder wirkt sich das nur auf normale Kommunikation aus?

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 13, 2003 16:06 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
Beim programieren kann ich mir alle schreibweisen merken :-) sind ja erheblich weniger worte!ausserdem ist english eh einfacher

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 13, 2003 16:08 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
Also wenn ich single variablen nehme und dann ne längere rechenzeile durchführe rechnet der automatisch nur son genau wie er muss???
sehr praktisch!!!

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 13, 2003 16:26 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Intern wird immer mit Extended (80 Bit ) gerechnet. Wenn man das Ergebnis abspeichert oder einen Wert aus einer Variablen lädt wird dann eben konvertiert.
Falls es Probleme mit der Genauigkeit von Single gibt, hilft Double meistens auch nicht viel mehr, weil man den Fehler dann nur verschiebt. Bestimmte Zahlen lassen sich nämlich mit dem Gleitkommaformat egal mit welcher Größe nicht korrekt darstellen und zwei gleiche Zahlen können im Gleitkommaformat unterschiedlich aussehen.
Es ist daher sinnvoller sich gleich auf die Ungenaugkeit einzustellen und z.B. zwei Gleitkommazahlen als gleich zu erklären, wenn ihre Differenz unter einem gewissen Betrag liegt.
Für die Berechnung von Matrizen gibt es auch noch ein spezielles Verfahren um die Fehler zu minimieren, da fällt mir jetzt der Name aber nicht mehr ein.


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

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Single rechnet mit 32 Bit Fließkommazahlen, Double verwendet 64 Bit.
Single Zahlen rechnen (ungefähr) auf sieben Stellen genau, Double Zahlen ca. 15.
Wenn du exakt wissen musst, wie genau du rechnest (etwa beim Addieren vieler kleiner Zahlen), bieten sich entweder Festkommaarithmetik oder BCD an (Festkomma ist schnell, aber kleiner Zahlenbereich, BCD ist langsam, dafür können Ziffernfolgen beliebiger Länge dargestellt werden).

Single Arithmetik kann schneller sein (allerdings nicht unter Delphi, das nur den normalen 80x87 Befehlssatz unterstützt), da einige FPU Erweiterungen zwei Singleberechnungen in einem Taktzyklus durchführen können, aber nur eine mit Doubleprecision.

Ganz gefinkelt wirds dann, wenn man etwa Fließkomma- und Integerberechnungen mischt, da dann FPU und CPU (sind zwar eh im selben Chip) quasi parallel ihrer Berechnungen durchführen können, ohne auf das Ergebnis der jeweils vorhergehenden Operation warten zu müssen.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 13, 2003 18:38 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also das mit der gleichzeitigen Fließkomma und Integerberechnungen halte ich allerdings mal für ein Gerücht. Klar wird es von den Proessoren unterstützt. Wenn man sich aber mal die Quellen der Fließkommabefehle (Round etc.) so ansieht wird man am Ende fast immer den Befehl "FWAIT" finden. Dieser Befehl tut nichts anderes als auf das Ende der Fließkommaoperation zu warten. Das ist bei einer Hochsprache aber auch notwendig. Wie soll er denn sonst ein noch nicht berechnetes Ergebniss zurückliefern.
Wenn man die volle Rechenleistung nutzen wollte müsste man es schon wohl oder übel alles in Assembler machen und das ist in meinen Augen diesen Aufwand nicht wert bzw. nur in sehr speziellen Fällen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 13, 2003 19:17 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Entschuldigung, ich habe mich nicht klar ausgedrückt. Ich meinte natürlich Assemblerprogrammierung (in einer Hochsprache hat man ohnehin wenig Einfluß auf die Aneinanderreihung diverser OpCodes und muss sich drauf verlassen, dass das der Optimizer schon richtig macht. Das Ganze ist ja auch beim Register Usage wichtig, da ein im letzten Befehl verändertes Register tunlichst vermieden werden sollte, um Pipelinestalls zu vermeiden).
Genauso wie die Unterstützung von mehreren 32 Bit Floatingpoint Operationen gleichzeitig auch nur von 3DNow bzw. SSE unterstützt wird und es deswegen in "normalem" Delphi keinerlei Vorteile bietet sich auf Singles zu beschränken (außer dem etwas geringeren Speicherverbrauch).

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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.007s | 14 Queries | GZIP : On ]