Main Menu

3D Picking ohne Object3D

Started by Telix, December 06, 2013, 10:31:25 AM

Previous topic - Next topic

Telix

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! :)

EgonOlsen

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.

aZen

    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 =)