2016-02-02 3 views

ответ

1

есть пример Three.js raycast текстуры here

 function onMouseMove(evt) { 

      evt.preventDefault(); 

      var array = getMousePosition(container, evt.clientX, evt.clientY); 
      onClickPosition.fromArray(array); 

      var intersects = getIntersects(onClickPosition, scene.children); 

      if (intersects.length > 0 && intersects[ 0 ].uv) { 

       var uv = intersects[ 0 ].uv; 
       intersects[ 0 ].object.material.map.transformUv(uv); 
       canvas.setCrossPosition(uv.x, uv.y); 

      } 

     }; 

     var getMousePosition = function (dom, x, y) { 

      var rect = dom.getBoundingClientRect(); 
      return [ (x - rect.left)/rect.width, (y - rect.top)/rect.height ]; 

     }; 

     var getIntersects = function (point, objects) { 

      mouse.set((point.x * 2) - 1, - (point.y * 2) + 1); 

      raycaster.setFromCamera(mouse, camera); 

      return raycaster.intersectObjects(objects); 

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