用Three.js和cannon.js创建一个房间

时间:2014-01-20 23:37:24

标签: javascript three.js cannon.js

我刚刚开始使用Three.js和cannon.js而且我一直试图创建一个简单的房间一段时间没有成功。我正在this example工作,我一直在努力增加墙壁和天花板。最简单的方法是什么?现在我有

                // wall?
            wallGeometry = new THREE.PlaneGeometry( 300, 300 );
            wallGeometry.applyMatrix( new THREE.Matrix4().makeRotationX( Math.PI));
            wallMesh = new THREE.Mesh( wallGeometry, material );
            wallMesh.castShadow = false;
            wallMesh.receiveShadow = true;
            scene.add(wallMesh);

但它显得很奇怪而且我没有撞到它......如果我试图通过cannon.js添加它,我会看到一堵看不见的墙但看不到它。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

THREE.js本身没有包含物理因素,因此当你在其中创建任何对象时,它永远不会让你自己“碰撞”它们。您必须自己编写此类功能或使用其他库(因为您已经尝试使用cannon.js)。

下一步 - 默认情况下,三个js只会为场景创建一个环境光。如果你想要动态闪电和阴影,你必须提供所有灯光,你想要对灯光作出反应的物体必须使用MeshLambertMaterial或MeshPhongMaterial,对于阴影你必须设置几个属性并使用特定类型的灯光。

在您的示例中,您似乎无法在任何地方定义墙材料 - 这可能就是墙不可见的原因。

检查这些并窃取你需要的代码(看起来你需要很多: - )

http://threejs.org/examples/

http://stemkoski.github.io/Three.js/index.html