2
我需要通过鼠标单击来选择Three.JS中的Collada对象。我知道我可以根据他们的id选择对象,并且我看到一些用户可以与几何定义对象(here)交互的样本。但我需要访问Collada格式的对象。通过鼠标选择Collada对象点击Three.JS
我需要通过鼠标单击来选择Three.JS中的Collada对象。我知道我可以根据他们的id选择对象,并且我看到一些用户可以与几何定义对象(here)交互的样本。但我需要访问Collada格式的对象。通过鼠标选择Collada对象点击Three.JS
假设dae_scene
是COLLADA场景从ColladaLoader回来,这里是你可以做什么检查路口:
var toIntersect = [];
THREE.SceneUtils.traverseHierarchy(dae_scene, function (child) {
if (child instanceof THREE.Mesh) {
toIntersect.push(child);
}
});
这得到了COLLADA场景内的所有网格对象。然后,您可以使用该阵列来查找射线相交,如下所示:
var ray = new THREE.Ray(camera.position,
vector.subSelf(camera.position).normalize());
var intersects = ray.intersectObjects(toIntersect);
感谢Jeff的快速回复。 – mbehnaam 2012-08-06 11:00:42