當前位置: 華文世界 > 數位

Three.js世界座標轉螢幕座標

2024-03-20數位
// 直接使用內建方法轉換世界座標到螢幕座標var worldPosition = new THREE.Vector3(x, y, z);worldPosition.project(camera);// 註意:此時worldPosition的xyz已經變成了歸一化的螢幕座標// 若要轉換為像素座標,還需乘以canvas尺寸並偏移screenPosition.x = (worldPosition.x + 1) * width / 2;screenPosition.y = (-worldPosition.y + 1) * height / 2;

請確保在呼叫.project之前,相機和相關渲染器的 matrices (view/projection) 已經是最新的,通常是在渲染迴圈中每次呼叫 renderer.render 之後或 requestAnimationFrame 回呼中呼叫 camera.updateMatrixWorld(true) 更新這些矩陣。