2016-05-08 2 views
0

Может кто-нибудь объяснить мне, почему я получаю как {x: Infinity, y: -Infinity, z: -Infinity} из моих значений позиции, таких как {x: 0.50516157, y: -0.62950189, z: 0}, когда i Я пытаюсь проецировать свой вектор положения на камеру. Я нашел аналогичный запрос Converting World coordinates to Screen coordinates in Three.js using Projection, но решение не решает мою проблему. Было бы действительно помочь полной и экономии времени, если кто-то может мне помочь.Three.js Vector.project() дает значение 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

проверить 'camera.projectionMatrix' и является ли' camera.matrixWorld' обратимым (то есть 'new THREE.Matrix4(). GetInverse (camera.matrixWorld)'), мы не можем ответить вам, не зная, как настроена ваша камера. –

+0

umm, это проекция или непрозрачность? Просто дикое предположение, не потрудившись открыть диаграмму НДЦ, но я думаю, что вы должны быть бесконечно, если находитесь за камерой. Вектор экрана, который вы, вероятно, хотите * unproject * – pailhead

+0

Спасибо за ваш ответ, для лучшего понимания здесь мой код, пожалуйста, посмотрите на него, и если что-то не так, http://pastebin.com/ei7T0mXr – sravan

ответ

1

Если вы проецирование «пространство экрана» вектор, то, скорее всего, право на происхождении камеры в зрении/Worldspace, (г == 0 на диаграмме). Бесконечность имеет смысл здесь. Вероятно, вы захотите unproject.

projecting from camera position

Начиная с г == 0, либо позади камеры просто бесконечность (я думаю).

Смежные вопросы