【发布时间】:2016-04-05 11:42:00
【问题描述】:
光线投射选择在我的静态网格项目中运行良好,但对于动画网格,光线选择似乎看不到网格的移动,只响应网格的非动画(原始)位置。
我的选择代码如下:
element.addEventListener( 'mouseup', function ( event )
{
var vector = new THREE.Vector3(( event.clientX / window.innerWidth ) * 2 - 1, -( event.clientY / window.innerHeight ) * 2 + 1, 0.5);
vector = vector.unproject(camera);
var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
var intersects = raycaster.intersectObjects(pickable_objects, true);
if (intersects.length > 0)
{
//I change the object's material colour so that I can see the selection
}
}
pickable_objects 是一个可选的 three.js 网格对象数组,据我所知,这些对象不携带动画信息,所以我抱怨的结果可能对某些人来说并不奇怪。
我没有在此处包含颜色更改代码或 JSON 网格阅读器代码,因为我认为这不相关。
因此,对于静态网格,光线投射非常准确,但对于动画网格,我必须单击对象的正中心或找到其原始非动画位置才能进行选择。
【问题讨论】:
标签: javascript three.js