OpenGL: Mausklick auf Geometrie projizieren

8

Ich habe diese Sicht eingestellt:

%Vor%

und ich bekomme eine Bildschirmposition (sx, sy) von einem Mausklick.

Gegeben ein Wert von z, wie kann ich x und y im 3d-Raum aus sx und sy berechnen?

    
Mark Harrison 22.09.2008, 05:52
quelle

4 Antworten

11

Sie sollten gluUnProject :

verwenden

Berechnen Sie zuerst die "Nichtprojektion" zur nahen Ebene:

%Vor%

und dann zum fernen Flugzeug:

%Vor%

Jetzt haben Sie eine Linie in Weltkoordinaten, die alle möglichen Punkte aufzeichnet, auf die Sie geklickt haben könnten. Jetzt müssen Sie nur interpolieren: Angenommen, Sie erhalten die Z-Koordinate:

%Vor%     
Jesse Beder 23.09.2008, 01:24
quelle
3

Dies wird am besten von der maßgeblichen Quelle der OpenGL-Website beantwortet.

>     
Alec Thomas 22.09.2008 06:03
quelle
2

Dies hängt tatsächlich von der Projektionsmatrix und nicht von der Modellansichtsmatrix ab. Ссылка sollte Ihnen helfen - es ist D3D-zentrisch, aber die Theorie ist die gleiche.

Wenn Sie jedoch eine mausbasierte Auswahl vornehmen möchten, rate ich Ihnen, den Rendermodus für die Auswahl zu verwenden.

Edit: Wohlgemerkt, die Model-View-Matrix kommt ins Spiel, aber da Ihre Identität ist, ist es ein Nonissue.

    
Cody Brocious 22.09.2008 06:02
quelle
0

libqglviewer hat ein gutes Auswahl-Framework, wenn Sie das suchen

    
shoosh 22.09.2008 05:57
quelle

Tags und Links