Suche SEHR GUTES Buch / Tutorial über DirectX & C++

  • C++

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Suche SEHR GUTES Buch / Tutorial über DirectX & C++

    Hallo Leute,

    ich habe beschlossen mich mit der Materie zu beschäftigen und den langen Weg zu wagen um Spiele mit DirectX und C++ programmieren zu können.
    Dazu möchte ich aber, dass das Buch für Anfänger in C++ gedacht ist und am neusten Stand bzw. nicht zu alt ist. Denn beim letzten Buch funktionierten einige Sachen nicht, da sie veraltet waren. Das Buch sollte alle Sachen die man über moderne Spiele wissen muss enthalten. Es wäre super wenn auch was über Partikel dabei wäre.
    Und ich rede von 3D DirectX also bitte keine 2D Sachen

    Also wenn ihr wirklich ein gutes Buch oder eine gute Tutorialserie kennt, dann lasst es mich bitte wissen :)

    - Digot

    *Topic verschoben*
    Whos Faster ALPHA: Bald....

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hi
    DirectX 11 zu lernen ist relativ einfach. Dazu genügt die Graphics Reference, die mitgeliefert wird. Was wesentlich mehr ausmacht, sind die Skills, die man benötigt, um Shader und das Programm an sich zu entwickeln. Was ich an dieser Stelle empfehlen kann, ist das Buch Physically Based Rendering. Dort wird eine komplette kleine Engine entworfen. Außerdem könnten die ShaderX-Serie oder GPU-Gems (1, 2, 3) von Interesse sein. Es gibt für den Einstieg wohl auch von der TU München einige Skripten (siehe bspw. Game Engine Design Studiengang, bzw. Übersicht über Studiengänge am Computer Graphics and Visualization-Lehrstuhl). Dort gibt's die Skripten teilweise online. Ich enthalte mich bzgl. der Qualität der Skripten einfach mal, das ist Ansichtssache. Sie sind teilweise auf jeden Fall durchaus sehr minimalistisch.
    Worüber man sich generell eher Gedanken machen sollte ist, wie man den "Einstieg" überhaupt hinbekommt und wie weit man einsteigen möchte. Grafikprogrammierung ist im Grundlegenden ziemlich einfach, wird aber bald darüber hinaus extrem komplex und kompliziert. Wissen über parallele Algorithmen und (parallele) Optimierung sind ab da schon fast nötig, sowie die ordnungsgemäße Verwendung (bspw. Synchronisation). Statt der CPU wird allgemein sehr viel auf der GPU gerechnet, d.h. es handelt sich einfach um eine komplett andere Herangehensweise. Mathematisches Hintergrundwissen ist auch ziemlich wichtig, da gibt's auf der Seite der TU München auch einige Skripten zu. Bei Interesse einfach mal danach suchen.
    Generell rate ich davon ab, NUR aus den Shadern zu lernen, die vom DirectX SDK mitgebracht werden, aber es ist sicher nicht unpraktisch, da mal reinzuschauen.

    Viele Grüße
    ~blaze~
    Vielen Dank für Deine Antwort, schaut gut aus, ich warte aber noch auf weitere Vorschläge. Es wäre eigentlich auch nicht schlecht wenn es ne gute Möglichkeit für C# gäbe, die zumindest annähernd so viel Performance hat wie C++.

    LG
    Digot
    Whos Faster ALPHA: Bald....
    Für C++ ist "C++ in 21 Tagen" recht ordentlich, um es grundlegend zu verstehen. Umfassende .NET-Kenntnisse (am Besten mit C#) wären auch nicht schlecht, denn somit fallen Dir gewisse Sachen etwas leichter beim Verständnis. Solltest Du also auch in .NET noch nicht ganz fit sein, dann schau lieber, dass Du wirklich SharpDX nimmst und dann Dich mit C# einarbeitest. Das wäre dann vmtl. noch leichter und man lernt dabei auch. Direkt nativ geht es natürlich auch, also ohne Wrapper, aber wird halt mit wenig Kenntnissen vmtl. schwieriger.

    Ansonsten, zum Buch dazu kannst Du ja hier fragen und Gonger96 (und ich :P) können Dir dann sicher helfen.

    Und ansonsten kannst Du auch wirklich mal nach Unity schauen oder, falls Du es wirklich nativ brauchst, nach der Unreal Engine.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich bin mit Unity schon vertraut aber ich möchte das Spiel ohne Engine erstellen. Ich denke ich werde SharpDX nehmen funktionieren damit auch Partikel?
    @~blaze~ Was geht z.B. nicht mit dem Wrapper?

    EDIT: Was würde ich am Besten SharpDX lernen?

    LG Digot
    Whos Faster ALPHA: Bald....
    Ein paar Kleinigkeiten, wie Konstanten, die man zur Validierung brauchen könnte wurden ausgelassen, die Dokumentation ist teilweise falsch zugeordnet (insbesondere bei Enums unpraktisch, aber das ist ziemlich offensichtlich) und generell die Restriktion durch C# an sich ist halt vorhanden.
    Du kannst aber theoretisch alle modernen Engines auch in C# und mit SharpDX schreiben, zwar wahrscheinlich nicht mit 100% der Performanz, aber es wäre realisierbar. D.h. auch Partikeleffekte, die sind sogar ziemlich einfach realisierbar.

    Komprimiert erhältst du das Wissen über Direct3D über die DirectX Graphics Documentation, die im DirectX SDK mitgeliefert wird, d.h. wenn du autodidaktisch lernen kannst, ist das die Quelle, die ich am meisten empfehlen kann. Dort erhältst du einen groben Überblick über die Kernelemente, wie Devices und Ressourcen (Texturen, Buffer) und lernst auch Ausnahmen kennen. Die Dokumentation darin ist mMn. essentiell für ein gutes DirectX-Programm, das ist auch das, was zum großen Teil in SharpDX mit dabei ist. Die SharpDX-Dokumentation ist allerdings allgemein nicht allzu toll, d.h. es hilft meist mehr, das in der Graphics Documentation nachzuschlagen.
    Was du dann aus Büchern, etc. lernen kannst, sind eben Techniken (z.B. Realisation von Partikeleffekten, Physik, usw.), die sich bewährt haben. Das Programmieren steht bei Spielen mMn. im Hintergrund, das ist nur die Realisation des komplexen Gebildes, das losgelöst davon existiert.

    Viele Grüße
    ~blaze~