DirectX in 3D – Part I

DirectX 9 Nein der Blogeintrag hat nichts mit real 3D zu tun, sondern nur mit dem normalen 2D-3D. 🙂
Ich habe nun die letzten Tag etwas Zeit investiert und mir DirectX 3D mal etwas näher angeschaut. Eine gewisse Ahnung hatte ich ja schon durch meine Maturarbeit (1, 2, 3), jedoch eher in 2D und eigentlich nur mit Sprites. Nach dem ich nun mehr oder weniger per Zufall wieder auf die schon etwas älteren Webcasts von Microsoft über “Managed DirectX” gestossen bin, habe ich angefangen zu programmieren. Leider wurde ich dann mal schnell aufgehalten, da im Webcast C# und dotNET verwendet wird (war zwar logisch, da “Managed DirectX” dotNET ist).

Zu Beginn hatte ich einen ziemlichen unschönen Code und darum entschied ich mich das Ganze etwas mehr mit Klassen zu lösen und erstellte dann eine CWindow- und eine CDirectX-Klasse. Leider hatte ich da auch schon das erste Problem und zwar wollte ich zuerst das ganze Fenster innerhalb einer Klasse erstellen und laufen lassen, mit der Callback-Funktion für die Windows-Nachrichten. Doch ich hab es dann nicht ganz hingebracht, die Callback-Funktion richtig an die WNDCLASSEX weiter zugeben und darum hab ich dann einen Teil in der WinMain-Funktion gelassen.
Ich muss sagen der Aufbau gefällt mir so wie er ist eigentlich noch besser als der von meiner Maturarbeit, jedoch ist das Projekt auch noch einfach gehalten.

Während ich nun versuch(t)e den genannten Webcast durch zu arbeiten und Stück für Stück nach C++ zu konvertieren, musste ich zwangsläuft andere Ressourcen aufsuchen um genauere Informationen zu erlangen. Da bin ich auf drei verschiedene Tutorials gestossen, welche zusammen einen ziemlich guten Hilfe sind. Leider geht nur eines ein wenig tiefer in die Materie ein:

DirectX Programming & Techniques Index
Direct3D9 Tutorials in C++
DirectX Tutorial for C++

Die einzelnen Tutorials sind alles ziemlich für eigen und man muss daher viel durch den Code selbst gehen und die wichtigsten Details zu erlangen. Beim Letzten ist noch anzumerken, dass die Navigation zu den nächsten Seiten unten rechts ist.
Natürlich darf man die Mircosoft MSDN nicht vergessen, obwohl die meistens nicht sehr hilfreich ist, höchstens man möchte die Argumente einer Funktion nachschlagen und auch dann ist die Bing-Suche keine wirkliche Hilfe und Google erledigt den Job dann oft besser.

Nun noch bisschen zu dem Projekt das ich nun erfolgreich erstellt habe. Hier ein schlechtes kurzes Video:

Da dies “Part I” wird wohl sehr wahrscheinlich noch “Part II” kommen. Weil ich bin nun erst beim dritten Webcast angekommen und hab nun somit noch vieles vor mir: Meshes, Skeletal Animation, Anpassung der Grafikkarte, 2D-Grafiken mit DirectDraw, Graphic engines im Einsatz, D3DXFont, 3D Text, usw.

Obwohl es viele Argumente gegen DirectX gibt und viele für OpenGL, so werde ich doch weiter an DirectX bleiben, denn ich denke es ist die meiste genutzte API und ziemlich mächtig. Weiter werde ich dann wahrscheinlich irgendwann einmal vom puren DirectX wegkommen und eher eine Engine verwenden. Für mich gibt DirectX einen guten Einblick in die 3D-Programmierung und hilft mir dann später sicher gewisse Aspekte einer Engine besser zu verstehen.

Als Anmerkung möchte ich hier noch den Link zum Quellcode zu den Webcasts bereitstellen, seit  die URL in den Webcasts nicht mehr valid ist! Der Quellcode zu meinem kleinen Projekt geht vielleicht auch irgendwann einmal online… 🙂

Webcast Quellcode

Kommentare [3]
Geschrieben am 27.02.2010 von admin in Computer, Windows
 Tags: , , , , ,
TrackbackPermanent Link

3 Kommentar to “DirectX in 3D – Part I”

  1. c0de sagt:

    Hey, hab grad deinen Blog entdeckt, ein paar Spannende Sachen hast du da!

    Jedenfalls wollt ich dir nur sagen das dein Design Crasht wenn man zu weit reinzoomt (Opera 10.10), also die Sidebar setzt sich nach unten…

    Wusste ich nicht wo sonst hinschreiben!
    L.g. c0de

  2. Schön das es doch ein paar Entdecker meines Blogs gibt! 🙂

    Danke für den Hinweis.
    Wenn ich irgendwann einmal zu viel Zeit habe, werde ich das Problem lösen.

    Ist mir bis jetzt nie aufegfallen, da ich selten mit dem Zoom arbeite. =)

    lg My-Gate

Hinterlasse einen Kommentar zu c0de