Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

24.01.2003, 18:56

DX Funktionen?

hi,
mich würde mal interessieren, ob die einzelnen Funktionen in deinem Buch so weit wie möglich alle von DirectX verwendet werden, oder ob du eher so Zerbst-like alle Funktionen (wie zB die mit den Matrizen) selbst implementierst und erklärst

thnx,
cYa
philip

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

24.01.2003, 20:02

Die Engine besitzt eine Matrix-, Vektor-, Farb- und Ebenenklassen und dazugehörige Funktionen. Ich mag diese D3DX-Funktionen nicht sonderlich (Ausnahme: D3DXCreateTextureFromFileEx... ;)) und man munkelt, sie seien langsam. Also - in diesem Punkt - eher "zerbstig".

Anonymous

unregistriert

3

28.01.2003, 16:10

Langsam?
Ich dachte immer, dass M$ die ganzen Funktionen mit Hilfe von AMD und Co optimiert und man sie wenn man sie selbst implementiert nie so schnell hinbekommen könnte

Xaron

Frischling

Beiträge: 63

Wohnort: Miesbach

Beruf: Softwareentwickler

  • Private Nachricht senden

4

29.01.2003, 08:41

Zitat von »"philip"«

Langsam?
Ich dachte immer, dass M$ die ganzen Funktionen mit Hilfe von AMD und Co optimiert und man sie wenn man sie selbst implementiert nie so schnell hinbekommen könnte


Ehrlich gesagt dachte ich das auch bis jetzt...
Hat das mal jemand ausprobiert?

Gruß - Xaron

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

29.01.2003, 15:24

Habe mir mal diese D3DX-Sachen angeschaut, von den einfachen Sachen gibt's ja den Quellcode. Meine Klassen sollten eigentlich nicht langsamer sein. MS benutzt hier auch keinen Inline-Assembler oder ähnliches.

Xaron

Frischling

Beiträge: 63

Wohnort: Miesbach

Beruf: Softwareentwickler

  • Private Nachricht senden

6

30.01.2003, 07:05

Hmm... aber sowas wie die Matrix-Multiplikation sollte z.B. für verschiedene Prozessoren optimiert vorliegen.

Gruß - Xaron

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

30.01.2003, 17:54

Für verschiedene Prozessoren optimiert? Das wird schwer sein, da müsste man dann zwei Versionen der Library bereitstellen und der Programmierer müsste dann auch zwei Versionen seiner Spiel-EXE machen. Das ist ein bisschen viel Aufwand, finde ich - denn so oft kommen Matrixmultiplikationen ja gar nicht vor.

Anonymous

unregistriert

8

30.01.2003, 19:29

naja, sowohl der PIV als auch der XP unterstützen ISSE, für das auch viele games optimiert sind

Xaron

Frischling

Beiträge: 63

Wohnort: Miesbach

Beruf: Softwareentwickler

  • Private Nachricht senden

9

31.01.2003, 07:03

Moin! :)

Also ich zitiere mal aus einem anderen Forum:

die D3DX funktionen sind SIMD-Optimiert für AMD3DNow, AMD3DNowExt , SSE und SSE2.
ein kleinen haken gibt es jedoch. nicht alle funktionen initialisieren die SIMD functionen.
man kann dies z.B. mit D3DXMatrixMultiply sicherstellen. beim ersten aufruf wird geprüft welche SIMD-Instructions genutzt werden können danach sind die funktionen initialisiert.


http://www.usf.de/forum/Forum1/HTML/001361.html

Gruß - Xaron

edit:

Stefan Zerbst schreibt ähnliches:

Die Direct3D Extension Funktionen hingegen werden von Microsoft in Kooperation mit Chip-Herstellern wie Intel und AMD implementiert und sind entsprechend für verschiedene Prozessoren optimiert. Beim ersten Aufruf einer D3DX Funktion wird die vorhandene CPU ermittelt und die Funktionspointer werden mit der entsprechenden Implementierung verbunden. Dabei gibt es Funktionsrümpfe für MMX, 3DNow!, SSE, SSE2 usw. So lange man also nicht selber in SIMD Assembler programmiert sind die D3DX Funktionen in ihrer Geschwindigkeit ... überlegen.

Zu finden in seinem 3. DX9-Tutorial.
Aber ich hab's halt selbst noch nicht probiert, wäre aber mal interessiert, wie schnell die sind. ;)

/edit

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

31.01.2003, 16:49

Ahja, interessant. Nach diesem Schema habe ich auch meine 2D-Zeichenfunktionen gemacht: mit Funktionszeigern. Je nach Oberflächenformat werden dann verschiedene Versionen der Funktionen "geladen".
Aber wie gesagt: so viele Matrixmultiplikationen macht man eh nicht.

Werbeanzeige