如何在搅拌机模型上添加物理? 我试过ConvexMesh,ConcaveMesh但没有运气。
var mesh = {... blender exporter ...}
var loader = new THREE.JSONLoader();
var mesh_obj = loader.parse(mesh,'./');
var mesh_materials = mesh_obj.materials;
var mesh_geometry = mesh_obj.geometry;
var _materials=[];
for ( var i = 0, i<mesh_materials.length;i ++ ) {
var materialv = Physijs.createMaterial(mesh_materials[i],0.8,0.1);
_materials.push(materialv)
}
mesh = new Physijs.ConcaveMesh(mesh_geometry, new THREE.MeshFaceMaterial(_materials),0 );
scene.add(mesh)
答案 0 :(得分:1)
也许是一个老问题,但我遇到了同样的问题,并选择将模型包装在BoxMesh
&#34;容器中#34;并将模型添加为容器的子项。下面我有一个我使用的轨道模型的例子。然后设置孩子的位置,使其位于网格内。对于更复杂的模型,我猜测一种方法是用其他Physijs形状封装各个几何。
var box_container = new Physijs.BoxMesh(
new THREE.CubeGeometry( 1, 0.7, 1.5 ),
new THREE.MeshBasicMaterial({ transparent: true, opacity: 0.0 })
// Uncomment the next line to see the wireframe of the container shape
// new THREE.MeshBasicMaterial({ wireframe: true, opacity: 0.5 })
);
// Assuming your model has already been imported
var track = global_models.track.clone();
track.position.set(0,0,0);
box_container.add(track);
您可以使用我描述的线框模型查看我的代码示例以查看容器。
答案 1 :(得分:0)
检查一下:
new THREE.MeshFaceMaterial()
包裹在Physijs.CreateMaterial
中,而不是反过来。为防止出现此类问题,请尝试WhitestormJS engine使用three.js构建并具有内置物理功能。