This project is read-only.
1

Closed

Von Welt zu Screen Positionen

description

Wir wollen, um Effekte in der Draw ablaufen zu lassen, von einem SceneObject das sich in der Welt befindet die aktuellen ScreenPos haben.
Also so wie die HandSceenPos mit Plane und Unproject in die Welt gesetzt werden, nur umgekehrt...
Closed Jan 30, 2014 at 8:39 PM by Izzo
Invalid issue

Closing due to last comment.

comments

Izzo wrote Jan 30, 2014 at 8:38 PM

Dazu kann man das Gegenstück von "Unproject" verwenden: "Project".

Kleines Minimalbeispiel:
BoxObject box = new BoxObject(Vector3.Zero, Vector3.One, 0f);
this.Scene.Add(box);
Vector3 screenPos = Core.Device.Viewport.Project(box.Position, Core.ProjectionMatrix, Core.ViewMatrix, Matrix.Identity);
So wie man bei "Unproject" die gewünschte Ebene definieren muss, muss man bei "Project" auch die Zielebene definieren, welche der Bildschirmebene entspricht und somit durch die Szenenkamera-Parameter beschrieben wird. Die aktuellen Werte dazu können aus dem "Core"-Singleton geholt werden.
Wichtig zu beachten ist, dass die "Project"-Methode als Rückgabetype "Vector3" anstatt eines "Vector2" hat. Die Z-Komponente kann hier aber vernachlässigt werden.

Wichtig: Bitte keine Issues für Fragestellungen öffen. Die "Issue"-Section hier auf CodePlex ist NUR für Bugs (und Feature Requests) gedacht. Fragen jeglicher Art und daraus entstehende Diskussionen sollten in der "Discussions"-Section in einem neuen oder bestehenden Thread gestellt werden.

wrote Jan 30, 2014 at 8:39 PM