2014-01-20 93 views
1

我刚刚开始使用Three.js和cannon.js,我一直试图创建一个简单的房间,但没有成功。我正在关闭this example,我一直在尝试添加墙壁和天花板。什么是最简单的方法来做到这一点?现在我有使用Three.js和cannon.js创建一个房间

   // 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我得到一个无形的墙,但无法看到它。任何人都可以指向正确的方向吗?

回答

2

THREE.js本身没有包含物理因素,所以当你创建任何对象的时候,它不会让你自己碰到它们。你必须自己编写这些功能或使用另一个库(因为你已经试图用cannon.js)。

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

在你的例子中,你似乎没有在任何地方定义墙体材料 - 这可能是墙壁不可见的原因。

检查这些偷的,你需要的代码段(和它看起来像你将需要大量的:-)

http://threejs.org/examples/

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