发布网友 发布时间:2022-04-24 08:38
共3个回答
热心网友 时间:2022-04-23 02:48
我说一下我的实现场景。
1.引入了一个obj的模型(引入相应的loader.js。我这里用的MTL,OBJ,DDSloader)
THREE.Loader.Handlers.add( /\.dds$/i, new THREE.DDSLoader() );2.在three的raysects为模型添加事件
var raycaster = new THREE.Raycaster();3.最后监听该点击事件就行了。
window.addEventListener('click',this.clickModel,false);效果图如下:
我也是才开始学习THREE。希望能帮助到你。
热心网友 时间:2022-04-23 04:06
假设dae_scene从ColladaLoader一个COLLADA现场回来,这里是你可以做什么检查交集: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 );
是这样一个思路。。
热心网友 时间:2022-04-23 05:40
这个实现了吗 我也遇到了这个问题 希望你能帮我一下 谢谢