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).

Kompletten Beitrag lesen

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

Maturarbeit III

So lange ist es her seit dem letzten Eintrag! 🙂
simxMeine Maturarbeit hat auch sehr an Umfang zu genommen, zumindest was den Code betrifft!

Kompletten Beitrag lesen

Kommentar [1]
Geschrieben am 20.02.2010 von admin in Computer, Reallife, School, Windows
 Tags: , , , , , , ,

Maturarbeit II

Nun kommt schon der zweite Post obwohl inzwischen noch nicht viel geschehen ist.

Ich hab es nun aber endlich geschafft die Zeit richtig zu berechnen, um sie dann auch für physikalische Berechnung durch zuführen. Weiter hab ich eine “Physics” Klasse eingefügt, welche dann für die physikalischen Funktionen und Berechnungen zuständig sein wird.

Zum das ganze noch ein wenig zu veranschaulichen, hab ich wieder ein kleines Video gemacht:

Kompletten Beitrag lesen

Kommentare [3]
Geschrieben am 01.11.2009 von admin in Computer, Reallife, School, Windows
 Tags: , , , , , , , ,

Maturarbeit I

So wie wohl die meistens Stammleser meines Blogs wissen, bin ich mit einem Kollegen an unserer Maturarbeit. Es geht darum ein paar physikalische Grundgesetzte am PC grafisch zu simulieren. Das ganze soll in C++ und DirectX geschrieben werden (ja OpenGL ist viel besser…) und hier hab ich ein paar kurze Videos von verschiedenen Versuchen:

Kompletten Beitrag lesen

Kommentar [1]
Geschrieben am 29.10.2009 von admin in Computer, Reallife, School, Windows
 Tags: , , , , , , , , , ,

Code::Blocks und DirectX

Für meine Maturarbeit setzte ich mich mit DirectX und C++ auseinander. Da ich Code::Blocks als IDE beim Programmieren von C++ bevorzuge, wollte ich auch meine DirectX Programme mit dieser IDE verwenden, was sich aber gar nicht als so einfach herausstellte.

Die IDE hat tollerweise ja direkt ein DirectX Wizard mitgeliefert bekommt, wollte ich dieses verwenden, welches sich dann schnell nach einer Fehlermeldung als nicht verwendbar herausstellte. Ich suchte wohl mehrere Stunden im Internet nach funktionierenden Lösungen. Probierte sogar Programme mit der Visual C++ 2008 Express Edition zum Laufen zu bringen, jedoch auch erfolglos.

Das Problem lag meistens am Linker, welcher immer irgendwelch “komischen” Fehlermeldungen zurückgab. Ein Linker Error tritt eigentlich meist dann ein, wenn mit Libraries gearbeitet wird, was im Falle von DirectX auch so ist, nur habe ich eigentlich alle DirectX Libraries, welche ich verwenden wollte eingebunden.

Nach sehr langem hin und her Probieren und Suchen, fand ich das Problem und zwar hatte ich die “gdi32” Library der Windows Plattform SDK nicht eingebunden, welche irgendwie auch noch verwendet wurde.

Da es sehr viele Code::Block Nutzer ähnliche Probleme gemeldet haben und ich nicht alleine an meiner Maturarbeit arbeite, habe ich eine kleine Übersicht erstellt, wie bei mir zumindest eines meiner Programme funktioniert hat.

Wie benutzt ich Code::Blocks und die DirectX
============================================

Was brauch ich alles?
———————
Code::Blocks
Microsoft DirectX SDK (August 2009)
Microsoft Visual C++ Toolkit 2003
Microsoft Windows Plattform SDK

Installation

Ich habe alles in die folgenden Verzeichnisse installiert und werde mich auch auf diese Beziehen:

Code::Blocks                                        -> C:ProgrammeCodeBlocks
Microsoft DirectX SDK                         -> C:ProgrammeMicrosoft DirectX SDK (August 2009)
Microsoft Visual C++ Toolkit 2003    -> C:ProgrammeMicrosoft Visual C++ Toolkit 2003
Microsoft Windows Plattform SDK    -> C:ProgrammeMicrosoft Plattform SDK

Nach der Installation sollte man sich ein wenig mit der IDE Code::Blocks vertraut machen und ausprobieren.

DirectX Wizard

Tollerweise hat Code::Blocks bereits ein Wizard für DirectX Projekte integriert, nur leider funktionierte das bei mir nicht und ich erhielt immer die Meldung: "The path seems valid, but there are no DirectX files…" o.ä.

DirectX und Code::Blocks

Nach dem das Wizard erfolgreich abgestürzt ist, müssen wir das Ganze halt anderst angehen.
Es gibt zwei Möglichkeiten, die erste ist wohl etwas die einfachere:

1.
– Erstelle ein Windows Projekt mit dem Wizard ("Win32 GUI project").
– Wähle dabei "Frame based" aus.
– Dann deine Destionantion, wo du dein Projekt abspeichern möchtest mit dem Projektnamen.
– Als Compiler musst du nun "Microsoft Visual C++ Toolkit 2003" auswählen, die anderen Felder kann man unberührt lassen.
– Als nächstest fragt er nach Installationsverzeichnis der SDK. (C:ProgrammeMicrosoft Platform SDK)
– Nun hat man ein neues Projekt, welches scho compiliert und ausgeführt werden kann.
– Jetzt muss man noch alle Libraries richtig angeben, damit der Compiler und Linker auch weiss wo was liegt.
– Dazu geht man auf Project->Build options…
– Dort wählt man nicht Debug oder Release sondern den Projektname, welcher übergeordnet ist.
– Dann wechselt man zum Tab "Search directories".
– Unter Compiler sollte jetzt stehn bzw. hinzugefügt werden (ohne -):
   – $(#psdk.include)
   – $(#dx.include)     jenachdem wird auch der Komplette Pfad benötigt
– Unter Linker kommen dann folgende Einträge:
   – $(#psdk.lib)
   – $(#dx.lib)     jenachdem wird auch der Komplette Pfad benötigt
– Dann wechselt man zum Tab "Linker settings" und fügt dort die Folgenden Libraries ein:
   – gdi32
   – user32
   – kernel32
   – d3d9.lib
   – d3dx9.lib
   – DxErr.lib
– Beachte, dass .lib entweder klein geschrieben oder ganz weggelassen wird!
– Zur Kontrolle sollte oben "Mircosoft Visual C++ Toolkit 2003" eingestellt sein.
– Fertig!
2.
– Erstelle ein leeres Projekt.
– Dann deine Destionantion, wo du dein Projekt abspeichern möchtest mit dem Projektnamen.
– Als Compiler musst du nun "Microsoft Visual C++ Toolkit 2003" auswählen, die anderen Felder kann man unberührt lassen.
– Nun hat man ein leeres Projekt.
– Füge eine neue leere Datei hinzu, und bennene sie "main.cpp" oder nach belieben.
– Jetzt muss man noch alle Libraries richtig angeben, damit der Compiler und Linker auch weiss wo was liegt.
– Dazu geht man auf Project->Build options…
– Dort wählt man nicht Debug oder Release sondern den Projektname, welcher übergeordnet ist.
– Dann wechselt man zum Tab "Search directories".
– Unter Compiler sollte jetzt stehn bzw. hinzugefügt werden (ohne -):
   – $(#psdk.include)
   – $(#dx.include)     jenachdem wird auch der Komplette Pfad benötigt
– Unter Linker kommen dann folgende Einträge:
   – $(#psdk.lib)
   – $(#dx.lib)     jenachdem wird auch der Komplette Pfad benötigt
– Dann wechselt man zum Tab "Linker settings" und fügt dort die Folgenden Libraries ein:
   – gdi32
   – user32
   – kernel32
   – d3d9.lib
   – d3dx9.lib
   – DxErr.lib
– Beachte, dass .lib entweder klein geschrieben oder ganz weggelassen wird!
– Zur Kontrolle sollte oben "Mircosoft Visual C++ Toolkit 2003" eingestellt sein.
– Fertig!

 

So ich wünsch euch nun viel Spass bei DirectX programmieren! =)