我正在尝试使用 three.js 在建筑物内(整个建筑物是一个 obj 模型)构建一个虚拟游览。一切都很好,图书馆非常简单。我最关键的问题是我无法用相机实现碰撞检测,我尝试使用光线但我找不到适合我的案例的示例。
我的模型负载:
var loader = new THREE.OBJMTLLoader();
loader.addEventListener( 'load', function ( event ) {
var newModel = event.content;
newModel.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
child.castShadow = true;
child.receiveShadow = true;
}
} );
scene.add( newModel );
objects.push( newModel );
});
loader.load( 'model/model.obj', 'model/model.mtl' );
相机创建(我不知道它是否与问题有关)
camera = new THREE.PerspectiveCamera(
45,
window.innerWidth / window.innerHeight,
1,
10000
);
camera.position.set( 0, 25, 0 );
camera.lookAt( 0, 0, 0 );
注意:相机在模型内移动,我不想检测两个单独的 obj 模型之间的碰撞,我想检测一个模型内的碰撞(并阻止相机穿过墙壁)。
任何帮助将不胜感激