Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

11.12.2003, 16:54

Mauskoordinaten von 2D in 3D

Hi Leute!

Wie kann ich es schaffen, meine 2D - Maus - Koordinaten in 3D - Punkte umzurechnen?
Wenn ich in meinem Programm manuell einen 3D - Vektor mit

Quellcode

1
 tbVector3TransformCoords 
erst mit der Weltmatrix, dann mit der Projektionsmatrix manipuliere, gibt das die korrekten Bildschirmkoordinaten (im [-1;1] - Koordinatensystem natürlich), das habe ich ausprobiert. Wenn ich aber anders herum die Mauskoordinaten ins [-1;1] - System transformiere und dann erst die invertierte Projektionsmatrix und dann die inv. Weltmatrix anwende, gibt das nur *zensiert* ;)
Da ich in Mathe leider noch keine analytische Geometrie hatte, kann ich mir das ganze auch nicht wirklich mathematisch herleiten und bin aufs Ausprobieren angewiesen. Bis jetzt hab ich aber wenig erreicht.
Welche Z - Koordinaten muss ich meiner Maus außerdem verpassen, wenn ich eine Linie vom Bildschirm - Mauspunkt direkt orthogonal zum Viewport in die Szene hineinlaufen lassen wil?

So, das war jetzt viel Text und wenig Ahnung dahinter, aber ich hoffe, mir kann jemand helfen.

Gruß

Talio

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

2

12.12.2003, 08:23

Verwende doch die D3DXLibary

8)
Ich habe mich mit diesem Problem auch vor kurzem auseinander gesetzt. Ohne viel Erfolg. Deshalb habe ich mich mich entschieden den Befehl D3DXVec3Unproject aus D3DX9.lib zu verwenden. Du gibst einfach einen D3DXVector an (x = MausX, y = Maux Y und die z-Komponente legt fest, ob der Punkt an der nahen oder der fernen Clippingebene liegt [1.0 = ferne CE 0.0 = nahe CE]) und dann noch einige Matrizen die Über den PDIRECT3DDEVIC abgefragt werden können. Für weitere Infos solltest du in der SDK-Hilfe nachsehen. Natürlich wierd die Anwendung durch die D3DXLib viel größer, aber besser als du kannst dein Problem garnicht lösen.

Anonymous

unregistriert

3

12.12.2003, 18:13

Danke

;D

Thanx very much. Ich probier's gleich aus. Das erspart mir natürlich einiges an Rechenarbeit und Rumprobieren. D3DX9.lib hab ich sowieso schon drin, das ist also kein Problem.


Gruezi,

Talio

Werbeanzeige