www.jpct.net

General => German corner => Topic started by: Telix on December 06, 2013, 10:31:25 am

Title: 3D Picking ohne Object3D
Post by: Telix on December 06, 2013, 10:31:25 am
Hallo zusammen,

lang ist es her aber nun eine neue Frage :)

Wie kann ich mit reproject2D3DWS ein "pick" machen ohne Object?
Ich bekomme ja denke ich mit reproject2D3DWS die Daten abhängig der Kamera im Wert von -0.5 -> 0.5 in  beide Seiten?

Frage wie berechne ich nun die X,Y,Z Kordinate dazu?

Vielen Dank! :)
Title: Re: 3D Picking ohne Object3D
Post by: EgonOlsen on December 06, 2013, 02:45:30 pm
Ja, das geht ganz normal mit reproject...du bekommst als Ergebnis die 3d-Koordinaten, allerdings musst du vorher bereits die Tiefe z in 3d mit übergeben. Denn du kannst ja nicht 3 Unbekannte an 2 Unbekannten berechnen und pro 2d-Punkt gibt es unendlich viele Punkte in 3d, die auf diesen abgebildet werden.
Title: Re: 3D Picking ohne Object3D
Post by: aZen on December 11, 2013, 10:58:41 pm
Code: [Select]
    public final SimpleVector get3DPoint(MouseEvent e, SimpleVector refPoint) {
        SimpleVector result = Interact2D.reproject2D3DWS(camera, buffer,
                e.getX() * SAMPLING_MODE_MULTIPLICAND,
                e.getY() * SAMPLING_MODE_MULTIPLICAND).normalize();
        result.scalarMul(camera.getPosition().distance(refPoint));
        result.add(camera.getPosition());
        return result;
    }

To compute a point
1) in the direction of the point of the mouse event and
2) at the same distance from the camera as the reference point.

SAMPLING_MODE_MULTIPLICAND depends on your sampling mode

Hope that helps =)