![]() |
Position eines 3D Objektes bestimmen und auslesen
Hallo,
ich möchte in einer 3D Landschaft mit der Maus einen großen Stein umsetzen und die neue Position auf HD speichern. Programmieren will ich es mit DirectX 9. Die Literatur, die ich gefunden habe, scheint eine gleiche Quellen zu haben. Wie muß ich da vorgehen? Kann man den Grafikkartenspeicher einfach auslesen? Jürgen |
Re: Position eines 3D Objektes bestimmen und auslesen
Weißt du wie DirectX funktioniert? Offenbar nicht.
Informier dich zuerst wie du das Ganze angehst. Dann schreib eine Landschaft mit einem Stein darin. Dann implementier eine Funktion mit der man den Stein verschieben kann. Anschließend wirst du wissen, dass man beim Verschieben eines Objekts nicht den Grafikkartenspeicher verändert, sondern eine bestimmte Einstellung (die Transformationsmatrix) setzt, sodass der Stein an einer anderen Stelle erscheint. Diese Transformationsmatrix ist im System-Speicher und kann wie jede andere Variable ausgelesen werden. |
Re: Position eines 3D Objektes bestimmen und auslesen
Zitat:
|
Re: Position eines 3D Objektes bestimmen und auslesen
Falls du mit der Maus (also 2d) eine Position auf einem 3d Objekt (hier deine Landschaft) wie z.B in einem Strategie Spiel wählen willst, solltest du dich mal über Octrees und Gizmos informieren...
|
Re: Position eines 3D Objektes bestimmen und auslesen
Zitat:
Mit anderen Worten, du hast die Mauskoordinaten im Bildschirmraum und willst ausrechnen, welche Entsprechung sie im 3D-Raum auf der Oberfläche der Landschaft haben. Da gibt es mehr oder weniger zwei Möglichkeiten. Einmal stellst du dir vor, dein Mauszeiger sei der Startpunkt einer Geraden, die geradeaus nach hinten in den Bildschirm rein geht. Diese Gerade schneidet dann wohl irgendwann deine Landschaft, und den Schnittpunkt rechnest du aus. Die andere Möglichkeit ist es, mit den Bildschirmkoordinaten der Maus die Tiefe aus dem Tiefenpuffer auszulesen, und eine inverse Transformation durchzuführen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz