2010-12-15 8 views
2

Ich arbeite an einem Projekt, das der Benutzer navigiert, indem er auf Symbole im 3D-Raum klickt. Wenn ein Benutzer eines dieser Symbole aktiviert, sollte die Kamera schwenken und zoomen, so dass das ausgewählte Symbol in der Mitte des Bildschirms in seiner ursprünglichen Höhe und Größe angezeigt wird (das ist der Fall, wenn das 2D-Overlay über dem Symbol erstellt wird) die gleiche Größe wie sein 3D-Pendant.Berechnen Sie die gerenderte Größe eines 3D-Objekts in einer Ansicht

Meine Frage ist, wie die Größe eines gerenderten Objekt in einer 3D-Ansicht zu berechnen, sollte ich erwähnen, dass dies die Alternativa 3D-Plattform verwendet.

so gibt es eine Kamera (x1, y1, z1) mit einem Sichtfeld von f, das auf ein Symbol bei (x2, y2, z2) zeigt, alles wird in einer Ansicht der Dimensionen w und h gerendert. Das macht meinen Kopf, wenn ich versuche, es herauszufinden Hilfe würde sehr geschätzt werden.

+0

und was ist mit Zeichnen von 3D-Objekt Projektion mit BitmapData und bekommen seine Größe und Form mit getPixel? – www0z0k

+0

Können Sie die Ansicht unprojizieren oder die (Welt- oder Objekt-bezogene) Begrenzungsbox des Objekts anderweitig erhalten? Das ist im Allgemeinen der richtige Weg. – MrGomez

+0

Wenn ein Objekt auf der Bühne gezeichnet wird, sollte es möglich sein, einen Screenshot damit aufzunehmen. Für den Moment wird der Screenshot aufgenommen. 3D-Objekt sollte weiß werden und der Rest der Szene - werde schwarz. und es wird ziemlich einfach sein, weiße Fläche Größe, Position und Form zu berechnen. ** Übrigens - wie ist Ihr 3D-Objekt geformt? ** – www0z0k

Antwort

0

Ich fand die Antwort auf einem anderen Forum heraus, wonach ich wirklich suchte, wie man ein 3D-Objekt in einem 1: 1-Größenverhältnis rendern lässt.

I hatte über die Formel kommen für die Brennweite von einer 3D-Kamera die Berechnung:

F = d/tan (FOV/2)

wobei D eine Hälfte ist die Quadratwurzel Ihrer Ansichten Höhe^2 + Breite^2

Der Wert von F ist die Entfernung von der Kamera, die Ihr Objekt in einer 1: 1-Größe darstellen soll.

Hoffe, das hilft!

Verwandte Themen