Seite 1 von 1

2D Operationen mit DirectX / Nutzen von DirectX8 oder 9

Verfasst: 16.04.2005 14:36
von Hellhound66
Mein Problem:
Jeder von uns weiss, dass 2D Operationen unter PB wegen Startdrawing() / StopDrawing() extrem langsam werden, wenn ich sie mit Sprite oder Sprite3D Routinen mischen muss. Jetzt bin ich auf der Suche nach Routinen, die mir bei diesem Problem helfen.

Bisherige Erfolge:
Auf der einen Seite hab ich einen sackschnellen Box()Befehl gefunden, allerdings bräuchte ich noch Routinen zu Liniendarstellung (nicht nur horizontale / vertikale) und Punktdarstellung.

Auf der anderen Seite hab ich eine DirectX8-Lib gefunden, da sind rudimentäre Befehle implementiert, allerdings beissen die sich mit den Standardspritebefehlen: Ich initialisiere den Screen mit DirectX8, dann funzen alle Spriteroutinen nicht, da kein Screen initialisiert wurde, wenn ichs andersherum mache, kann DirectX8 den Screen nicht initialisieren. /:->
Ich habe mir die InitD3DX8-Prozedur mal angesehen, die öffnet ein rahmenloses Fenster, wenn ich das richtig gesehen habe über OpenWindow(), leider waren jegliche Manipulationen hier erfolglos.

Wie ihr mir helfen könnt:
Natürlich mit einer mächtigen Direct3D/X 9 Engine mit allen Funktionen :mrgreen: , allerdings wäre mir schon geholfen, wenn ihr mir ein paar Links zu wirklich nützlichen HPs geben könntet, wo die Schnittstelle verständlich erklärt wird. Ich bin zwar kein Anfänger was programmieren angeht, allerdings kenn ich mich mit DirectX-Prgrammierung überhaupt nicht aus. Ich weiss selber, dass ich über Google millionen Seiten finden werde, allerdings sind 90% wahrscheinlich Schrott.

Verfasst: 16.04.2005 18:01
von Zaphod
zu linien schau dir mal den bresenham algorithmus an. der ist ausreichend schnell und einfach zu implementieren. michael abrush von id software hatte wohl mal einen schnelleren entwickelt (wenn ich mich jetzt nicht total falsch erinnere). ich glaube der war im "dark art of 3d programming" (oder so ähnlich) beschrieben.

Verfasst: 16.04.2005 19:36
von Hellhound66
Danke, aber ich brauch keinen Algorithmus, wenn jede Karte das Hardwaremäßig kann. Ich brauch ne Möglichkeit, um auf die Funktion der Karte (über DirectX) zugreifen zu können.

Wenn ich mir selbst einen Algorithmus schreibe, kann ich gleich meinen eigenen nehmen, aber Hardware ist halt schneller.