首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在搅拌机模型上添加物理特性,three.js Physijs

在搅拌机模型上添加物理特性,three.js Physijs
EN

Stack Overflow用户
提问于 2013-12-30 17:42:16
回答 2查看 1.5K关注 0票数 3

如何在搅拌机模型上添加物理特性?我试过ConvexMesh,ConcaveMesh,但是没有成功。

代码语言:javascript
复制
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)

EN

回答 2

Stack Overflow用户

发布于 2016-12-19 03:26:37

也许是一个老问题,但我也有同样的问题,我选择将模型包装在一个BoxMesh“容器”中,并将该模型添加为容器的子级。下面我有一个我使用的赛道模型的例子。然后设置子对象的位置,使其位于网格内部。对于更复杂的模型,我猜一种方法是用其他Physijs形状封装单独的几何形状。

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2016-07-20 04:18:49

请检查以下内容:

重力你应该将new THREE.MeshFaceMaterial()包装在Physijs.CreateMaterial中,而不是conversely.

  • You应该设置。(我看不到完整的代码,所以只需在源代码中查看)

  • 如果使用Physijs.Scene作为场景对象,则检查是否未加载Physijs.Scene。

为了防止此类问题,请尝试使用WhitestormJS engine,它是使用three.js构建的,并且具有内置的物理特性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20836940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档