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

1

22.08.2012, 21:53

DirectX 9 oder DirectX11 lernen

Hallo liebe Spieleprogrammierer.de - Community,

ich habe mich entschieden, die Programmierung mit DirectX zu erlernen. Nun ist meine aktuelle Situation folgende:
Ich besitze ein Buch über die DirectX Programmierung mit der Version 9. Andererseits ist die letzte Aktualisierung
- wenn ich mich nicht täusche - im Juni 2010 gewesen. Lohnt es sich wirklich noch, sich DirectX 9 anzueignen?

Soll ich vielleicht lieber gleich ein Buch über DirectX 11 kaufen? Wie groß sind die Unterschiede und was ist eure Meinung
zu genau dieser Entscheidung?

Vielen Dank!

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

2

23.08.2012, 07:08

Willkommen im Forum :D

DirectX 9 ist tatsächlich nicht mehr aktuell. Zu DirectX 10 bestehen große Unterschiede, wohingegen die Unterschiede zwischen 10 und 11 nicht so groß ausfallen. Wenn du DirectX 9 lernst, dann wirst du später einiges von dem Gelernten erneut anwenden können, jedoch, was die (programmier-)technische Umsetzung betrifft, einiges dazu lernen müssen. Wenn du noch nie mit DirectX oder etwas Vergleichbarem gearbeitet hast, dann lohnt es sich vielleicht mit DX 9 anzufangen, da es dazu mehr Literatur und Tutorials gibt. Auf diese Weise könntest du dir Grundprinzipien der 3D-Grafikprogrammierung schnell aneignen. Evtl. lohnt es sich, erst DX 9 zu lernen und parallel schon zu schauen, wie das gleiche Thema in DX 11 umgesetzt wird, bzw. welche Unterschiede bestehen. So könntest du gezielt DX9-spezifische Themen überspringen.
Bei DirectX 9, DirectX 11 oder OpenGL handelt es sich nur um Schnittstellen zur Hardware. Wenn du die Grundprinzipien verstanden hast, wie die verschiedenen Schritte funktionieren, die ein Modell von der Datei bis zum Anzeigen auf dem Monitor durchlaufen muss, kannst du eigentlich jede dieser Schittstellen verwenden. In diesem Sinne ist es sogar falsch zu sagen, dass man DirectX X lernt. Viel mehr sollte man erst die Funktionsweise solcher Systeme und dann deren Anwendung lernen. Praktisch funktioniert das ohne Praxisbezug schlecht, daher würde ich dir empfehlen, erst DX 9 anzuschauen, um Grundprinzipien zu verstehen, jedoch das Hauptaugenmerk relativ schnell auf DX 11 zu richten, wenn du unbedingt "aktuell" bleiben möchtest (was nicht sinnvoll sein muss - ich kann das Gefühl aber verstehen ^^)

Abschließend gilt zu sagen: Für einen Anfänger sollte nicht im Vordergrund stehen, rasch wiederverwendbaren, zukunftsfähigen Code zu schreiben. - Das wird anfangs sowieso schief gehen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BurningWave« (23.08.2012, 07:13)


Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

3

23.08.2012, 11:13

Ich würde zum Angang sehr zu DirectX 9 raten.
Dadurch, das Shader nicht allgegenwärtig nötig sind, vereinfacht sich vieles.
Überhaupt, die ganze Lernkurve ist bei Dx9 viel flacher.

Was wären die Großen Vorteile von Dx11?
Einige sehr fortgeschrittenen Features zb. zusätzliche Shader, Tesselation etc. und ein anderer Aufbau mit anderen neuen Ressourcensystem.

Ich sehe nicht den Vorteil von Dx11 gegenüber Dx9 für einen Anfänger, außer dass es einfach viel moderner und viel "cooler" ist Dx11 zu programmieren. Auch heute können auf einem aktuellen Computer noch Dx3 Programme ausgeführt werden. Die Kompatibilität sollte nicht das Problem sein. Eher andersrum gibt es ein Problem, da noch genug Computer im Umlauf sind, welche mit Dx11 nicht klar kommen.

Ich habe allerdings selber nie mit Dx11 gearbeitet.

Ich würde mich sowieso lieber mit OpenGL beschäftigen, als mit DirectX. XD
Aber das ist wieder ein anderes Thema... ^^

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

23.08.2012, 11:19

Ich sehe nicht den Vorteil von Dx11 gegenüber Dx9 für einen Anfänger, außer dass es einfach viel moderner und viel "cooler" ist Dx11 zu programmieren.

Wozu soll er lernen, wie ein Wankel-Motor funktioniert, wenn er nicht mehr eingesetzt wird? Wozu sollte er Turbo Pascal lernen statt Delphi? Wozu Assembler statt C++? Du siehst hoffentlich die Parallelen?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

5

23.08.2012, 11:28

Dein Vergleich hinkt mit beiden Beinen.
Zwischen den Sprachen herrscht ein erheblicher usability Unterschied. (Bei Dx9 -> Dx11 ist es erstmal eher in die andere Richtung)
Wankelmotoren sind nicht mehr im ernsthaften Gebrauch und deshalb unwichtig.
Das Wissen darüber nützt dir wenig bei aktuellen Motoren. Mit der alten Technik wird man bei neuen Antrieben nichts anfangen können.
Dx9 läuft aber höchstwahrscheinlich noch die nächsten 10 Jahre auf jeden Windows PC mit DirectX.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Spiele Programmierer« (23.08.2012, 11:34)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

23.08.2012, 11:36

Ja, Cobol-Programme sind die, die in der freien Wirtschaft die meiste Verbreitung genießen oder bis vor kurzer Zeit noch genossen. Wer hier kann Cobol?
Mein Vergleich hinkt also keineswegs. Die Orientierung geht nach vorn und nicht nach hinten. Mit DX9 ist er von vornherein weiter hinten als notwendig und muss für DX11 vieles komplett neu lernen, was völlig überflüssig ist, da er sofort mit DX11 anfangen kann. In 10 Jahren wird kein PC mehr mit DX9 laufen. Keiner. Das wäre so wie die Behauptung, dass heute überall DirectX 6 verwendet wird: Völliger Quatsch. DirectX 6 ist tot, genau wie DX9 in 10 Jahren tot sein wird. DirectX 9 erschien vor nahezu 10 Jahren. Vor 8 Jahren gab es die letzte Version davon. Ich glaube, dass das alles sagt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (23.08.2012, 11:49)


drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

7

23.08.2012, 12:14

Ich denke es kommt ein wenig auf das Target an. Wenn man halt möchte, dass das Spiel auf möglichst vielen Windows Versionen läuft, dann ist man mit DX9 nicht so schlecht dran. XP ist halt immer noch im Umlauf und es auch noch Leute, die einen vielleicht etwas älteren PC nicht upgraden können/wollen und das Spiel aber dennoch gerne spielen möchten. Wenn man aber alle pre-Vista PCs ausschliessen kann, dann ist DX11 wirklich das sinnvollste.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

8

23.08.2012, 12:16

Zitat

was völlig überflüssig ist

Nein, weil Dx11 unötig komplex ist und einen Anfänger bloß unötig überfordert.
Vorteile hat er aber kaum. (Unterschied zu Cobol und deinen anderen Beispielen)

Auf meinen heutigen Computer (Baujahr 2009) läuft ein Dx3 Spiel von 1997 problemlos.
Ich denke, (bzw. ich hoffe) dass diese Kompatibilität bestehen bleibt.

Zitat

DirectX 6 ist tot, genau wie DX9 in 10 Jahren tot sein wird.

Dx9 wird wahrscheinlich nicht mehr verwendet und ist, wenn du es so nennen willst, tot.
Aber die Programme mit Dx9 laufen mit etwas Glück immer noch.
Außerdem ist der Vergleich Dx6 vs Dx9 sehr schlecht gewählt.
Dx9 nimmt eine Sonderstellung ein. Selbst aktuelle Spiele bieten großteils noch Dx9 support.
Einfach dadurch bedingt, dass Dx9 sogar noch auf meinen alten ME Computer läuft, während du mit Dx10 schon auf XP keine Change hast.
Und XP nimmt ebenfals eine Sonderstellung ein. Bis vor kurzen wurde noch viele Netbooks\Laptops damit ausgeliefert.
Aber ich denke, die Dx9 Ära geht nun doch langsam zu Ende. Der "Support" wird auf neuen Betriebsystemen hoffentlich noch genauso lange bestehen bleiben, wie der der anderen alten Versionen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

23.08.2012, 12:38

DX9 hat keinen Vorteil, den Cobol nicht auch bietet und das ist nur: Es ist nicht so komplex und läuft auch auf alter Hardware prima.
Ob er deswegen wirklich DX9 lernen sollte, das muss er wissen. Empfehlen würde ich es jedoch nicht.

PS:

Zitat von »http://windowsteamblog.com/windows/b/springboard/archive/2011/07/11/with-only-1000-days-left-of-extended-support-don-t-you-think-it-s-time-to-retire-windows-xp.aspx«

On April 8, 2014, security patches and hotfixes for all versions of Windows XP will no longer be available. So bottom line, PC’s running Windows XP will be vulnerable to security threats. Furthermore, many third party software providers are not planning to extend support for their applications running on Windows XP
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

10

23.08.2012, 13:35

Ich kenne Cobol nicht.
Aber ich denke, dass C# mit dem und die entsprechenden Framework und Entwicklungsumgebung wesentlich effektiver, einfacher und praktischer sind.
Und das bietet Dx11 gegenüber Dx9 für einen Anfänger definitiv nicht.

Und bloß weil der offizielle Support eingestellt ist, heißt das nicht das Ende der Unterstützung zb. auf einen neuen Betriebssystem.
Nach 2014 werden wohl kaum noch kommerzielle Spiele mit Dx9 entstehen, dass ist der Unterschied.

Im Prinzip muss auch wirklich der Threadersteller einfach selber wissen, ob er Lust hat, sich von Anfang an mit Shadern etc. auseinander zu setzten.
Ich glaube aber nicht, dass ich das gewollt hätte. Die Fixedpipeline hat mir lange Zeit mehr als genug geboten.

Werbeanzeige