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

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

1

27.04.2005, 16:46

eigene matheklassen

ich will meine engine api-unabhängig programmieren. dementsprechend muss ich vektoren, matrizen ebenen usw dementsprechend abstrahieren. habe zwei ansätze:
- ich implementiere eigene klassen und konvertiere diese bei bedarf in diejeweiligen von der api verwendeten klassen. allerdings dürfte das relaitv zeitaufwändig sein. ich wollte die klassen eigentlich in assembler implementieren, allerdings verwende ich c# und das ist leider nicht so ohne weiteres möglich. der einzig mir bekannte weg ist ne eigene dll in c++ zu erstellen und diese zu laden. oder gehts noch anders?
- der 2. weg wäre auf api-unabhängiger ebene nur mit interfaces zu arbeiten und diese je nach api zu implementieren. also eigentlich nur kapselungen der api-klassen.

bin mit beiden möglichkeiten nicht zu frieden. wie macht ihr das (spez. weigo würde mich interessieren)?

weigo

Treue Seele

Beiträge: 234

Wohnort: Deutschland

  • Private Nachricht senden

2

27.04.2005, 17:03

Hi Dave,

ich hatte deinen ersten Ansatz gewählt und konvertiere die Klassen nach D3DX, falls ich diese an eine D3DX Methode übergeben will. Ich habe schon lange nichts mehr mit den Klassen gemacht und kann dir nicht genau sagen, ob es eine bessere Alternative gibt.
Assembler ist jedoch nicht nötig, da du sicher nicht die Möglichkeit hast so guten Assembler Code zu schreiben, um irgendeinen Vorteil daraus zu ziehen.
Merke:
Kein Assembler Code ist besser als schlechter Assembler.

Über Interfaces würde ich auch nicht gehen, da du in dem Fall virtuelle Methoden bräuchtest und der Overhead würde hier signifikant erhöht werden.

Falls jemand eine bessere Idee, als die Erste hat, dann wäre ich auch ganz Ohr. Ich werde aber auch in naher Zukunft den Mathe Code überarbeiten, aber im Moment wüsste ich eben keine Alternative.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

27.04.2005, 17:11

Zitat

Assembler ist jedoch nicht nötig, da du sicher nicht die Möglichkeit hast so guten Assembler Code zu schreiben, um irgendeinen Vorteil daraus zu ziehen.
Merke:
Kein Assembler Code ist besser als schlechter Assembler.


das würd ich nicht so sagen...
auf systemen die SIMD unterstützen ( 3D Now! oder SSE/SSE2 hat heute ja eigentlich fast jeder ), zahlts sich aus.

warum nicht auch machen wie dies bei d3dx gemacht haben: alles in eine lib packen!?

4

27.04.2005, 20:22

wäre das nicht eine möglichkeit: inline funktionen
in einer statischen library oder geht das gar nicht?

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

5

27.04.2005, 20:39

in c# gibt es kein inline mehr. entscheidet der kompiler. leider kann man so ohne weiteres auch kein simd benutzen, wodurch man doch einiges an geschwindikeit herausholen könnte (auch wenn man nicht gerade ein assembler experte ist)...
danke.

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

6

29.04.2005, 01:13

Eine weitere Möglichkeit ist es, Deine Matrix zur der Struktur der D3D Matrix compatibel zu machen und eben Deine eigenen Member Funktionen hinzuzufügen. Für OpenGL müsstest Du dann in der Tat Umwandlungen haben. Oder natürlich umgekehrt, aber bei einem von beiden umzuwandeln ist sicher hinnehmbar.
"Games are algorithmic entertainment."

7

02.06.2005, 15:32

Also ich lösen das ganze bei mir mittels Templates Klassen.
So bist du auf jeden Fall flexibel.

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

8

02.06.2005, 16:37

wie sieht das dann genauer aus? kann mir so wenig drunter vorstellen...

Werbeanzeige