jasso Geschrieben 27. Januar 2003 Geschrieben 27. Januar 2003 hi kann mir irgendwer ein vernüntiges script (QuellcodeBeispiele + Anweisungen wie es gemacht wurde) zu DirectX-Programmierung mit C++ empfehlen? ich habe schon ziemlich viel gesucht, gefunden und ausprobiert, aber mehr als die hälfte davon funzt einfach net ganz so wie es sollte. mercy jasso Zitieren
Timon Geschrieben 27. Januar 2003 Geschrieben 27. Januar 2003 http://www.andypike.com/tutorials/directx8/001.asp Zitieren
jasso Geschrieben 28. Januar 2003 Autor Geschrieben 28. Januar 2003 ok zugegeben, des script schaut sehr vielversprechend aus. danke für die adresse!! nur bin ich entschlossener englisch-gegner :mod: giebt es das ganze, oder ähnliches auch auf deutsch? mfg jasso Zitieren
jasso Geschrieben 30. Januar 2003 Autor Geschrieben 30. Januar 2003 so jetzt habe ich doch tatsächlich angefangen das toturial durchzumachen. nun sind da aber einige fragen aufgetaucht. 1. was genau ist LPDIRECT3D8 und LPDIRECT3DDEVICE8? soweit ich des ezt verstanden habe, erzeugt einer der beiden einen Gerätekontext auf die Grafikkarte, und der andere einen auf DirectX. nur warum verwende ich jetzt eimal den einen und ein andermal wieder den anderen???? irgendwie blick ich da nicht so recht durch 2. wenn ich eine Matrix zum verschieben mache (mit (D3DXMatrixTranslation"), und diese dann auf einen Würfel anwende, wird mir dieser Würfel nur einmal verschoben, obwohl ich die funktion welche SetTransform für den würfel ausführt, immer und immer wieder wiederhole. (Toturial 5) 3. wenn ich Matrizen auf Figuren anwende. werden da die Koordinaten der Figur verändert, oder nur das Bild das am Monitor angezeigt wird. wenn nur das bild verändert wird, wäre es noch hilfreicht irgendwie wieder die koordinaten des aktuell angezeigten würfels zu bekommen (nur wie??) ansonsten überzeugt mich dieses toturial immer mehr für weiter hilfe währe ich allerdings sehr dankbar Zitieren
return FALSE Geschrieben 30. Januar 2003 Geschrieben 30. Januar 2003 zu 1: IDirect3D8 ist das Hauptinterface von Direct3D 8. Damit kann man Grafikkarten und deren Fähigkeiten enumerieren und anschließend ein Device für eine entsprechende Karte mit entsprechenden Fähigkeiten und Parametern erstellen. IDirect3DDevice8 ist dann das Device, welches man mit IDirect3D8 erstellt hat. Dieses Interface beinhaltet quasi alle Funktionalitäten, um damit eine 3D-Anwendung zu gestalten. Im Prinzip arbeitet man nach der Enumeration nur noch mit diesem Device. Surfaces, die dann den Backbuffer oder Texturen darstellen werden alle an dieses Device "angehängt". Das Rendern selbst geschieht auch damit. zu 2: Da ich den Code nicht kenne, kann ich nur spekulieren. Vielleicht weist das Programm immer die gleichen Offsets zu? Dann wird der Würfel auch immer an der gleichen Stelle gerendert. zu 3: Das Ganze läuft so: Die Figur befindet sich in ihrem eigenen lokalen Koordinatensystem. Dieses Koordinatensystem verschiebt man dann mittels Matrizen (oder auch rotieren und skalieren). Wenn du also ein Objekt mittels Matrix verschiebst, hast du die Werte der aktuellen Position. Wenn du die Werte der letzten Position haben möchtest, mußt du eine weitere Matrix temporär dafür verwenden. Oder einfach eine Struktur, die soundsoviele Positionen speichern kann. Tatsache ist aber, dass sich die Vertex- und Face-Daten des lokalen Systems nicht ändern. Um es auf den Punkt zu bringen: Vertices und damit Faces des lokalen Koordinatensystems bleiben erhalten. Das lokale System wird im "Welt-"koordinatensystem verschoben. Es ändert sich daher die Position und das angezeigte Bild. Es sei denn, du verschiebst die ViewMatrix auch um den selben Wert, dann ändert sich das Bild nicht, sondern nur die Matrizen Hoffe man kann das einigermaßen verstehen Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.