2016-05-08 26 views
0

私は{x:Infinity、y:-Infinity、z:-Infinity}のような{x:0.50516157、y:-0.62950189、z:0}のようなポジション値から、私の位置ベクトルをカメラに投影しようとしています。私はこれに似たクエリ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

ええと、この投影または投影されていないのでしょうか? NDCのダイアグラムを開くのに気にせずに野生の推測をしていますが、カメラの背後にいる場合は無限になっているはずです。画面のベクトルはおそらく* unproject * – pailhead

+0

あなたの応答をありがとう、ここでより良い理解のために私のコードはそれを見てください、何か間違っている場合http://pastebin.com/ei7T0mXr – sravan

答えて

1

あなたは「画面空間」のベクトルを投影している場合は、ビュー/ワールド空間、(図中のz == 0)で、カメラの原点で最も可能性の高い正しいです。無限はここで意味があります。あなたはおそらくプロジェクトをunprojectしたいと思うでしょう。 Z == 0からスタート

projecting from camera position

、カメラの後ろに何がちょうど無限大(と思う)です。

関連する問題