在三维立方体中查找在三维立方体上渲染的材质上的点的UV坐标

时间:2017-07-18 18:51:59

标签: javascript three.js coordinate-systems raycasting uv-mapping

我想计算在3D立方体上渲染的材质的单个点的UV坐标。

我发现鼠标指针与摄像机光线相交,使用THREE.Raycaster:

  mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
  mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;

  var vector = new THREE.Vector3(mouse.x, mouse.y, 1);
  vector.unproject(camera);
  var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());

  var intersects = raycaster.intersectObjects(scene.children);

我已经尝试计算点,但x,y坐标映射随放大或缩小而变化。代码段如下:

 var pixelX = intersects[0].uv.x;
 var pixelY = intersects[0].uv.y;

其中intersects [0]表示来自摄像机的光线的交叉点。

有关详细信息,请参阅:http://plnkr.co/edit/YYN8aechHGTKXvPv6tOo?p=preview

在plunker的基础上,假设我得到螺旋对象开始的点的uv坐标(比如x1,y1)。但是在放大或缩小立方体之后,该点的uv坐标不会保持不变,即它会变为某个随机点(x2,y2)

0 个答案:

没有答案