2016-05-08 10 views
0

Kann mir jemand klar machen, warum ich wie {x: Infinity, y: -Infinity, z: -Infinity} von meinen Positionswerten wie {x: 0.50516157, y: -0.62950189, z: 0} komme, wenn ich versuche, meinen Positionsvektor auf die Kamera zu projizieren. Ich habe eine ähnliche Abfrage Converting World coordinates to Screen coordinates in Three.js using Projection auf diesem gefunden, aber die Lösung löst nicht mein Problem. Es würde mir wirklich helfen voll und zeitsparend wenn mir jemand helfen könnte.Three.js Vector.project() gibt den Wert Infinity?

var screenvector = new THREE.Vector3(); 
var position = new THREE.Vector3(); 
position = convertLatLontoVec3(lat, lng).multiplyScalar(radius); 
//convertLatLontoVec3(returns new THREE.Vector3(x, y, z);) 
screenvector.copy(position); 
//till here during debugging i can find the values of position.x, .y, .z 
screenvector.project(camera); //But once this step is executed all the values are becoming infintiy. I don't understand why is it happening. 
+0

überprüfen Sie 'camera.projectionMatrix' und ob 'camera.matrixWorld' invertierbar ist (das ist 'new THREE.Matrix4(). GetInverse (camera.matrixWorld)') wir können Ihnen nicht antworten ohne zu wissen, wie Ihre Kamera aufgebaut ist –

+0

Ähm, ist das Projektion oder Unprojektion? Nur eine wilde Vermutung, ohne sich darum zu kümmern, ein Diagramm des NDC zu öffnen, aber ich denke, dass Sie Unendlichkeit erhalten sollten, wenn Sie hinter der Kamera sind. Ein Bildschirm-Vektor, den Sie wahrscheinlich wollen * unproject * – pailhead

+0

Vielen Dank für Ihre Antwort, zum besseren Verständnis hier ist mein Code bitte einen Blick darauf und wenn es etwas falsch ist http://pastebin.com/ei7T0mXr – sravan

Antwort

1

Wenn Sie einen „Platz auf dem Bildschirm“ Vektor projizieren, sind Sie höchstwahrscheinlich direkt am Ursprung der Kamera in Ansicht/Worldspace, (z == 0 im Diagramm). Unendlichkeit macht hier Sinn. Sie möchten wahrscheinlich unproject.

projecting from camera position

Ausgehend von z == 0, etwas hinter der Kamera ist nur unendlich (glaube ich).

Verwandte Themen