Bücher zu DirectX



  • hey,
    ich möchte gerne mit der 3D Programmierung mit DirectX/C++ anfangen.
    Dazu habe ich 2 scheinbar gute Bücher gefunden:

    http://www.amazon.de/Inside-Microsoft-DirectX-9-Spieleprogrammierung-Grafikanwendungen/dp/3860630962/ref=sr_1_19?ie=UTF8&s=books&qid=1219313705&sr=8-19
    und
    http://www.amazon.de/3D-Spieleprogrammierung-mit-DirectX-9-C/dp/3446405968

    Habt ihr schon eines davon gelesen?
    welches von beiden würdet ihr mir empfehlen?

    Wie ihr wisst ist DirectX ja schon bei der Version 10.1 angekommen,
    die Bücher behandeln jedoch DirectX 9.
    Ist das ein Nachteil? Wie groß ist der Aufwand von Dx9 auf Dx10/11 umzusteigen?



  • Habt ihr schon eines davon gelesen?

    Das Buch von Scherfgen habe ich in älterer Auflage, ist wirklich empfehlenswert.

    Ist das ein Nachteil? Wie groß ist der Aufwand von Dx9 auf Dx10/11 umzusteigen?

    Du solltest über den Einsatz einer Engine (irrlicht, ogre) nachdenken, weil Du auf höherer Ebene starten kannst und schnell zu wirklich interessanten Ergebnissen kommst. Die Engine hat den großen Vorteil, dass Dir der Unterbau (Version von OpenGL oder DirectX) schlicht und einfach völlig egal sein kann.

    OOP und Programm-Design ist bei Grafik-/Spiele-Programmierung wichtig. Ohne gute Kenntnisse des Klassenaufbaus und des Interagierens von Klassen hat man keine Chance. Lieber dort Zeit investieren.



  • vielen Dank für die Informationen.
    Laut Inhaltsverzeichnis geht das Buch auf die TriBase Engine ein.
    Ist diese auch zu empfehlen?

    Geht das Buch auf online Spiele (also Multiplayer über Internet) auch ein?
    Wenn man ein online Spiel schreibt, verwendet man dann winsocks oder
    hat DirectX dafür selber eine Funktionssammlung?



  • Ich habe mir damals das erste von Dir genannte Buch gekauft. Geholfen hat mir zuerst höchstens der Quellcode für einen ersten groben Überblick. Gelernt habe ich DirectX (zumindest das wenige, was ich bisher weiß) eigentlich nur mit Hilfe von Tutorials und der DX-Hilfe. Erst im Nachhinein mit einiger Erfahrung wurde es interessant. Vorher war der Stoff für mich zu wenig erklärt.

    Das zweite Buch habe ich aus unserer Bibliothek ausgeliehen und hin und wieder mal reingeguckt. Dort wird gut auf verschiedene Bereiche eingegangen, sodass es eine alternative zum Internet sein könnte. Im späteren Verlauf geht es vor allem um die entwickelte Engine; man muss sich also zwangsweise beim Durcharbeiten damit beschäftigen (was seine Vor- und Nachteile hat).

    Die "Netzwerkbibliothek" von DX hieß meine ich DirectPlay, soll aber nicht mehr verwendet werden. Dafür kannst Du zB Winsock (von Grund auf alles selbst machen) benutzen oder andere Bibliotheken wie zB RakNet, die Dir vieles abnehmen.
    Darum würde ich mir aber an Deiner Stelle jetzt noch keine Gedanken machen, denn bis Du soweit bist, dauerts bestimmt noch eine Weile...

    Spass haben 🙂



  • Ich denke, ich werde mir das Buch von David Scherfgen zulegen, jedoch in der 2. Auflage:
    http://www.amazon.de/3D-Spieleprogrammierung-mit-DirectX-C/dp/3446228691/ref=sr_1_2?ie=UTF8&s=books&qid=1219547990&sr=1-2

    Kann man bei der Irrlicht-Engine zwischen DirectX und OpenGL in den Einstellungen wählen? Denn es unterstützt ja beide...
    Oder wählt sie unter MS automatisch Dx und unter anderen Systemen OpenGL?



  • Laut Inhaltsverzeichnis geht das Buch auf die TriBase Engine ein. Ist diese auch zu empfehlen?

    Nein, da würde ich eine "lebendige Engine" wie z.B. Irrlicht oder Ogre verwenden.

    Geht das Buch auf online Spiele (also Multiplayer über Internet) auch ein?

    Netzwerk fehlt, da gibt es z.B. das Buch von Ulrich Kaiser, oder Du verwendest hier eine brauchbare Bibliothek, z.B. http://www.zoidcom.com/ (nicht alles selbst machen, sondern auf den Fähigkeiten anderen aufbauen und deren open source Produkte nutzen).

    Wenn man ein online Spiel schreibt, verwendet man dann winsocks oder hat DirectX dafür selber eine Funktionssammlung?

    Immer schön plattformunabhängig bleiben. 😉

    Kann man bei der Irrlicht-Engine zwischen DirectX und OpenGL in den Einstellungen wählen? Denn es unterstützt ja beide... Oder wählt sie unter MS automatisch Dx und unter anderen Systemen OpenGL?

    Das sieht bei irrlicht z.B. so aus:
    Mit video::E_DRIVER_TYPE wählt man einfach den passenden Grafiktreiber aus. Du musst Dich überhaupt nicht um die Details von DX oder OGL oder ... kümmern. Das ist ein großer Vorteil, weil Du Dich weder um Versionen noch um Innereien kümmern musst. Das machen die Engine Developper. Du verwendest ja auch die C/C++ Bibliothek und schreibst Dir nicht jede Funktion selbst, am besten noch in Assembler. Bei Interesse kannst Du ja in die Engine einsteigen. Da wirst Du Dich schnell freuen, dass andere das machen. Das meiste ist langweiliger "Mist" und hält Dich von der eigentlichen Umsetzung Deiner Idee ab. Man muss allerdings die Grundlagen der 3D-Programmierung verstehen, damit man mit den Begriffen umgehen kann und weiß, was man überhaupt sucht/anwenden will.

    Nimm das Beispiel der Umsetzung eines Mausklicks (2D) auf eine 3D-Linie und umgekehrt. Das macht in den Basics eine Menge Arbeit, mit der Engine ist es ein Klacks. Solche Dinge sollte man verstehen, aber nicht selbst umsetzen, sondern nur anwenden.



  • Ich finde folgendes Tut eigentlich sehr gut - ist zwar kein Buch, aber bis jz bin ich ganz zufrieden damit ^^

    http://zophusx.byethost11.com/tutoriallinks.php?first=0&last=4

    Erhard Henkes schrieb:

    Wenn man ein online Spiel schreibt, verwendet man dann winsocks oder hat DirectX dafür selber eine Funktionssammlung?

    Immer schön plattformunabhängig bleiben.

    Man macht sich die Plattformunabhängigkeit doch bereits mit DX kaputt - wieso sollte man dann bei anderen Komponenten noch darauf aufpassen? ^^ Und hier sind ja beide Varianten nicht sonderlich Plattformunabhängig ^^

    bb



  • Man macht sich die Plattformunabhängigkeit doch bereits mit DX kaputt

    Genau, daher empfehle ich eine unabhängige Engine, die sich an den Treiber anpasst. Beim Netzwerk gilt das gleiche Prinzip.


Anmelden zum Antworten