General > German corner

3D Picking ohne Object3D

(1/1)

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:

--- Code: ---    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;
    }
--- End code ---

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

Navigation

[0] Message Index

Go to full version