我已經在看原點(0,0,0)的位置初始化透視相機。閱讀最常見的解決方案,我已經找到了這裏描述的這個https://stackoverflow.com/a/27412386/1330719。使用Three.js將Vector3點轉換爲屏幕空間(Vector2)[73]
從我對project
方法的理解是,我應該得到一個向量,其中的x,y座標介於-1和1之間。這看起來並不是這種情況,我最終得到的座標是完全超越界限。此外,如果原始矢量點在(0,0,0)處,我似乎會得到(NaN,NaN)。如果我的相機在位置(0,0,0),我期望Vector3(0,0,0)返回(寬度/ 2,高度/ 2)。
在它需要的情況下,這是我如何初始化我的相機:
this.camera = new THREE.PerspectiveCamera(90, window.innerWidth/window.innerHeight, 1, 10E5);
this.camera.position.set(0, 500, -500);
this.camera.lookAt(new THREE.Vector3(0,0,0));
this.camera.updateProjectionMatrix();
有沒有人有一個原因,這可能無法正常工作?或者,也可以使用推薦的方法將Vector3點映射到給定相機的屏幕空間?
的什麼我的意思是的jsfiddle: https://jsfiddle.net/m78wjLyc/
請問您可以發佈一個你現在擁有的jsfiddle嗎?這真的會幫助我們真正看到你遇到麻煩的情況。 – SalmonKiller
您的相機的遠機(即10E5)非常龐大。使用類似1000 – gaitat
@SalmonKiller我已經添加了一個jsfiddle,以供您查看 – rbhalla