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

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

1

26.08.2004, 12:11

Optimierung durch Assembler?

Ergeben sich Vorteile dadurch, wenn ich zB eine einfache Addition oder Multiplikation in C++ (vc) durch Assembler ersetze? Also die Vektorroutinen?
Oder kann man sowas nur durch Prozessor-befehlssätze beschleunigen? Und kann man in VC++ wenn man da assembler mit einbindet auch auf die Variablennamen zugreifen? Nagut sollte möglich sein, wäre ansonsten etwas unlogisch :p

Und nochwas: T&L, ich weiss jetzt nicht mehr so genau, steht das irgendwo im Buch wie man da rankommt und das supadupa hardware-transform aktiviert?

Schon mal vielen dank!

serial chiller

Frischling

Beiträge: 61

Wohnort: Rheinbach ;-(

Beruf: berufs chiller

  • Private Nachricht senden

2

26.08.2004, 13:04

beshleunigen kannst dus glaube ich nur durch SIMD operationen
Ein Beispiel aus Stefan Zerbst seinem Buch zur Addition von 2 float-[4] arrays

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
void SSE_Add(float *fA, float *fU) {
__asm{
MOV esi, fA
MOV edi, fU
MOVAPS XMM0, [esi]
MOVUPS XMM1, [edi]
ADDPS XMM1, XMM1
MOVAPS XMM1, XMM0
MOVAPS[esi], XMM0
MOVUPS[edi]XMM1
   }
}

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

3

26.08.2004, 15:05

Ok danke das war meine Frage. Ich werd erstmal versuchen 3dNow zu implementieren. Es geht (bitte nicht schlagen) um ein RealTime Raytracer. Ganz neu und grandios, ausgetüftelt von Master DrthM2001. Die Idee ist, dass nur bestimmte Teile des Bildes geraytraced werden und der Rest wird normal gerendert. Bisher kann mein GENIALER Raytracer sone Art gefakte Kugel darstellen, 100x100, GDI, 3fps auf einem 3000+. Ein bisschen Optimierung muss her, und dann wirds kurzerhand auf D3D portiert, dann ist auch Hardware FSAA kein Problem mehr (mit der entsprechenden Graka). Es soll aber nur mal so ein kleines Mini.Projekt werden, nichts großartiges, einfach mal ausprobieren was man damit erzielen kann. :wirbel:

Sicaine

unregistriert

4

28.08.2004, 02:44

Den will ich sehen. Kannste mal online stellen?

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

5

28.08.2004, 13:07

Ich bezweifle dass du daran Freude haben wirst, zumal ich grad nicht weitermachen kann (argh... long story- muss anderes tun). Aber ich werde ihn hier reinstellen sobald er etwas "reifer" ist. Vielleicht in 2-3 Wochen

6

30.08.2004, 04:05

Zitat

Und nochwas: T&L, ich weiss jetzt nicht mehr so genau, steht das irgendwo im Buch wie man da rankommt und das supadupa hardware-transform aktiviert?
Wenn du bei CreateDevice nicht grad D3DCREATE_SOFTWARE_VERTEXPROCESSING angibst, automatisch genutzt. Bei D3D7 gab es dafür ein extra Device. Das hat sich aber mit D3D8 erledigt :)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

7

30.08.2004, 14:57

Merci!

Werbeanzeige