Du bist nicht angemeldet.

Werbeanzeige

1

12.07.2011, 15:03

Directx 9 oder 10?

Ich programmiere gerade ein 3d-Spiel und da wollte ich fragen, was ihr für sinnvoller haltet, Directx 9 oder 10.
Soweit ich das bisher so sehe ist Directx 10 komplizierter, und jetzt stellt sich mir die Frage ob ich bei 9 bleiben soll oder das Programm für 10 umschreiben soll (Ist noch nicht so viel, dass das ewig dauern würde, ich verbessere sowieso grad das ganze, also das die Dateien übersichtlich sind usw.).
Zuerst dachte ich mir, das Directx 10 wohl besser ist, aber dann hab ich ein Beispiel gesehen, wo nur ein DirectxDevice erstellt wird und das ist in Directx10 mit über 200 Zeilen Code (allerdings kommentiert, also unkommentiert wohl noch 180 Zeilen) während ich das in 9 mit ~20 Zeilen geschafft hab.
Vielleicht wär der unterschied nicht ganz so gewaltig, wenn ich auch den 10 Code geschrieben hätte, aber groß ist er auf jeden Fall.
Jetzt würde ich gern wissen, ob sich das wohl so fortsetzt, oder das nur in diesem Fall so ein Unterschied ist. Und wo liegen eigentlich die Vorteile von DX10? Gibt es vieles was man in 9 nicht machen kann?
Wie weit ist eigentlich bis heute die Verbreitung der Grafikkarten? Kann man davon ausgehen, das 80-90% eine DX10-fähige Karte haben, oder muss man unter Umständen für beide Versionen schreiben und würde sich das dann lohnen?
Danke schonmal für eure Kommentare

PS: Directx11 kann ich auf keinen Fall benutzen, da das meine GraKa nicht kann :P

dot

Supermoderator

Beiträge: 9 851

Wohnort: Graz

  • Private Nachricht senden

2

12.07.2011, 15:13

D3D11 kann alles was D3D10 kann und viel mehr und läuft dank Feature-Levels sogar auf D3D9 Hardware. Die Frage ob D3D10 stellt sich also heute nichtmehr. Wenn dann heißt es sich zwischen D3D9 und D3D11 entscheiden. Wenn du D3D9 wirklich beherrscht ist ein Umsteig nach D3D11 nicht so schwer. D3D11 ist eigentlich nur die logische Konseuqenz von D3D9. Ob du D3D11 wirklich nutzen kannst hängt natürlich von dir ab. D3D9 ist für die meisten Hobbyprojekte vermutlich ausreichend.

3

12.07.2011, 15:14

Hallo,
ich habe im Internet was gefunden Directx 9 und Directx10.
Hoffe es hilft dir weiter :D

4

12.07.2011, 15:29

Dann sollte ich also Directx11 verwenden? Muss man irgendwas beachte, dass es dann auch auf dx9 Karten läuft? Und kann man Directx9 einfach in 11 umschreiben, also wenn ich jetzt erstmal in 9 programmieren würde und es dann irgendwann umschreiben wollte, oder sollte man sich gleich entscheiden?

dot

Supermoderator

Beiträge: 9 851

Wohnort: Graz

  • Private Nachricht senden

5

12.07.2011, 15:32

Dann sollte ich also Directx11 verwenden?

Das musst du entscheiden. D3D11 ist die aktuelle Version. Ich würde mich für D3D11 entscheiden. Aber wenn du D3D9 gerade erst gelernt hast ist es vielleicht besser erstmal dabei zu bleiben.

Muss man irgendwas beachte, dass es dann auch auf dx9 Karten läuft?

http://msdn.microsoft.com/en-us/library/…2(v=VS.85).aspx

Und kann man Directx9 einfach in 11 umschreiben, also wenn ich jetzt erstmal in 9 programmieren würde und es dann irgendwann umschreiben wollte, oder sollte man sich gleich entscheiden?

Auch wenn sich an den Grundlagen nichts geändert hat sind die beiden APIs sind vollkommen unterschiedlich. D.h. D3D11 Code sieht völlig anders aus als D3D9 Code.

6

12.07.2011, 15:41

Gut, dann werde ich wohl in Dx11 schreiben. Danke für eure Hilfe.

7

12.07.2011, 16:36

Eine andere Alternative wäre OpenGL.

8

12.07.2011, 18:16

An deiner Stelle würde ich mich fragen ob WinXP unterstützt werden soll, denn D3D11 kann man zwar auf DX9 Hardware laufen lassen, jedoch nur unter Vista und Win7. Wenn XP irrelevant für dich ist würde ich auf jedenfall zu D3D11 raten.

MCP

Alter Hase

Beiträge: 514

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

9

12.07.2011, 19:34

@Batzer: Also entweder meinst Du DirectX 9 oder OpenGL, wenn es unter WinXP laufen soll. ;)

10

13.07.2011, 14:00

Naja XP muss nicht sein und zu OpenGL fühle ich mich jetzt auch nicht so hingezogen. Ich werde also DX11 nutzen.

Werbeanzeige