I am creating a THREE.Mesh
object using a THREE.JSONLoader
object like so:
// Create castle.
loader.load('/Meshes/CastleTower.js', function(geometry, materials) {
var tmp_material = new THREE.MeshLambertMaterial();
THREE.ColorUtils.adjustHSV(tmp_material.color, 0, 0, 0.9);
var castle = new THREE.Mesh(geometry, tmp_material);
castle.scale.set(0.2, 0.2, 0.2);
castle.rotation.setX(-Math.PI/2);
scene.add(castle);
});
Is it possible to create a CANNON.RigidBody
from the THREE.Mesh
(var castle
) or THREE.Geometry
(var geometry
) object? Another way you could read this is: How do you make any custom THREE.Mesh
"solid"?
I used Blender, created a new castle from boxes, and exported it to the Three.js format. If you set the mass to 0
of a CANNON.Body
, it remains static. This worked out perfectly...
I had a similar issue and created the necessary "points" and "faces" (as described in Cannon docs) from the THREE.Geometry (called geometry
here) with these two functions:
cannonPoints = geometry.vertices.map(function(v) {
return new CANNON.Vec3( v.x, v.y, v.z )
})
cannonFaces = geometry.faces.map(function(f) {
return [f.a, f.b, f.c]
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With