# Direct3d C++



## zubitom (24. September 2003)

Hallo zusammen!

Ich Programmiere schon seit längerem mit Microsoft Visual C++ 6.0. Nun möchte ich mich an das Thema Direct3d wagen. Hat jemand Erfahrung in diesem Bereich? Ich möchte ein Flugzeug mit dem Joystick navigieren (nur auf einer Position),  das heisst, wenn ich den Joystick nach Vorne bewege soll sich das Flugzeug nach Vorne neigen, dem entsprechend in allen Achsen.

Ich freue mich auf konstruktive Hilfe...  Vielen Dank im Voraus!  

Gruss Thomas


----------



## Matthias Reitinger (24. September 2003)

Dazu benötigst du zuallererst mal ein DirectX-SDK, das die nötigen Header und Bibliotheken enthält, mit denen du DirectX-Anwendungen entwickeln kannst. Außerdem wird noch jede Menge Doku mitgeliefert und auch viele Programmbeispiele. Beziehen sind diverse SDK's kostenlos auf http://msdn.microsoft.com/ 

Für dein konkretes Programm wirst du nicht daran vorbei kommen dir die Benutzung von Direct3D (für die Grafikanzeige) und DirectInput  (für die Joysticksteuerung) anzueignen. Ein Verständnis der Windows API (und u.U. auch des COM-Systems) sowie mathematische Grundkenntnisse im dreidimensionalen Raum (Vektoren, Matrizen...) wären dabei hilfreich. Tutorials dazu findest du sicher mit Google 

Um dir schon mal eine kleine Starthilfe zu geben, falls du gar nichts finden solltest: http://nexe.gamedev.net/ sieht recht gut aus. Oder halt http://nehe.gamedev.net/ , falls du dich vielleicht zu OpenGL umstimmen lassen willst (ist meiner Meinung nach für Einsteiger anfangs etwas einfacher, aber das soll hier nicht in eine Grundsatzdiskussion ausarten ).

Näher in's Detail kann ich jetzt noch nicht gehen, da deine Problembeschreibung auch noch nicht so ganz ausgefeilt war. (Nur das Flugzeug rendern? Oder auch Umgebung? Welche Umgebung? Terrain-Engine... etc.) Macht aber nichts, ich würde sagen für den Anfang reicht es wenn du dich erst mal mit der Grafik-API deiner Wahl auseinandersetzt, der Rest kommt dann ganz von selbst (hoffentlich! ) Und wenn konkrete Fragen auftauchen kannst du sie ja hier stellen.

Also dann mal viel Glück und natürlich Spaß bei deinem Vorhaben!


----------



## chibisuke (24. September 2003)

Zu den ausführungen ist nicht mehr viel hinzuzufügen...

eventuell solltest du zuerst mit DirectDraw beginnen, denn Direct3d is quasi von DirectDraw abgeleitet,
außerdem solltest du dir unbedingt COM angucken.. denn wenn du COM nicht verstehst kannst du DX vergessen... vor allem die basisfunktionen des IUnknowen sollten dir unbedingt geleufig sein, denn ohne die IUnknowen methoden kommst du an das IDirect3d gar net erst ran (wird per QueryInterface von IDirectDraw erzeugt)

und für die aufgabenstellung konkret würde ich die kammeraposition fixieren, und dann einfach ein model aus einer datei lesen, das du vertext für vertex in den graphikspeicher überträgst, außerdem brauchst du eine textur die du da drauf legst... wenn du das hast würde ich an dem model nix mehr ändern, sondern das einzige was ich dann noch ändern würde ist der blickwinkel...


----------



## zubitom (29. September 2003)

Tut mir leid dass ich mich erst jetzt wieder melde, habe zur zeit recht viel mit der diplomarbeit und in der schule zu tun!

Aber vielen dank für eure tips...!

Nei, die umgebung soll nicht gerendert werden, nur das flugzeug.

Was das einlesen des joystick angeht, habe ich schon erfahrung und mittlerweile auch schon realisiert!
Zur zeit bin ich eben am flugzeug..  muss mich noch einwenig durch den code wühlen!  )

Ich werde mich gerne wider an euch wenden wenn ich probleme oder fragen habe! 

Besten dank im voraus!

Gruss Thomas

p.s sorry für die gross-/kleinschreibung


----------

