Łuk*_*ski 2 physics bulletphysics three.js ammo.js
我正在将 bullet/ammo.js 与three.js 一起使用。我有一个 3d 网格,我想使用精确的形状与软体进行碰撞检测。有没有办法从网格(在three.js中)创建一个3d刚体(在子弹中)?
下面是一个例子:http : //kidzinski.com/miamisura/lazy3d/(请稍等片刻,下载 3d 模型)。我有一块布落在 3d 身体上,我需要模拟这块布与身体的碰撞。
如果我从根本上误解了某些东西,我是这些框架的新手,抱歉。
看起来您可以做一些工作将任意 Three.js 网格转换为 Bullet 凹面网格。这是由 Physi.js 支持的,它是一种即插即用的解决方案,可将 Three.js 直接链接到 ammo.js。我个人不建议使用该项目 (Physi.js),但您可以查看源代码以了解它们如何实现凹面网格。
首先,他们遍历几何体以在physi.js 的这些行上创建“三角形”数据对象的自定义列表
for ( i = 0; i < geometry.faces.length; i++ ) {
face = geometry.faces[i];
if ( face instanceof THREE.Face3) {
triangles.push([
...
Run Code Online (Sandbox Code Playgroud)
然后将这些三角形传递给 Ammo.js 以new Ammo.btBvhTriangleMeshShape
在这些行上创建一个:
for ( i = 0; i < description.triangles.length; i++ ) {
...
triangle_mesh.addTriangle( _vec3_1, _vec3_2, _vec3_3, true );
}
...
shape = new Ammo.btBvhTriangleMeshShape( triangle_mesh, true, true );
Run Code Online (Sandbox Code Playgroud)
这应该是构建您自己的 Ammo.js 自定义网格的良好起点。
归档时间: |
|
查看次数: |
3858 次 |
最近记录: |