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?
Sie sollten gluUnProject
:
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%Dies wird am besten von der maßgeblichen Quelle der OpenGL-Website beantwortet.
>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.