對於人類演示http://threejs.org/examples/#webgl_morphtargets_human,我想知道如何獲得人類皮膚上的一個點。例如,當我點擊人體某個地方時,那個地方的座標是什麼?如何獲取一個SkinnedMaterial上的點座標,用於three.js的人類演示?
我嘗試使用raycaster來獲取,但在vain.The代碼是這樣的:
var projector;
init() {
// Others
// ...
projector = new THREE.Projector();
renderer.domElement.addEventListener('mouseup', onMouseUp, false);
}
function onMouseUp(e) {
e.preventDefault();
var vector = new THREE.Vector3(
(event.clientX/window.innerWidth) * 2 - 1,
- (event.clientY/window.innerHeight) * 2 + 1,
0.5
);
projector.unprojectVector(vector, camera);
var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
var intersections = raycaster.intersectObjects(character.root.children);
if (intersections.length > 0) {
debugger;
// ...
}
}
但intersections
總是空的。
Three.js是r67
在此先感謝。