在blender模型上添加物理,three.js Physijs
如何在混合器模型上添加物理? 我试过ConvexMesh和ConcaveMesh,但没有成功在blender模型上添加物理,three.js Physijs,three.js,physics,physijs,Three.js,Physics,Physijs,如何在混合器模型上添加物理? 我试过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 _m
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)
var mesh={…搅拌机导出器…}
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=[];
对于(var i=0,i检查:
- 您应该在
Physijs.CreateMaterial
中包装new THREE.meshfacemarterial()
,而不是相反
- 您应该设置重力(我看不到完整的代码,所以只需在源代码中进行检查)
- 检查是否未加载缓冲区几何体
- 检查是否将Physijs.Scene用作场景对象
为防止出现此类问题,请尝试使用three.js构建该模型,并具有内置物理功能。可能是一个老问题,但我也遇到了同样的问题,并选择将该模型包装在一个BoxMesh
容器中并将模型添加为容器的子对象。下面是我使用的轨迹模型示例。然后设置子对象的位置,使其位于网格内。对于更复杂的模型,我猜一种方法是使用其他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);
您可以看到我的代码示例,其中使用了我描述的轨迹模型,并使用线框查看容器
你能给我们举个例子吗?没有实际的代码很难调试。有什么解决办法吗?