我刚刚开始使用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添加它,我会得到一个隐形的墙,但看不到它。谁能将我指向正确的方向?
three.js本身没有物理,因此当您创建任何对象时,它永远不会使您本身"颠簸"。您必须自己编码此类功能或为此使用另一个库(就像您已经尝试使用Cannon.js一样)。
接下来 - 每个默认值,三个JS只会为您的场景创建一个环境光。如果您想要动态的闪电和阴影,则必须提供所有灯光,并且要对灯做出反应的物体必须使用meshlambertmaterial或meshphongmaterial,则必须设置几个适当的光线并使用特定类型的灯光。
在您的示例中,您似乎并没有在任何地方定义墙壁材料 - 这可能就是为什么墙壁是看不见的。
检查这些并窃取您需要的代码(似乎您需要很多: - )
http://threejs.org/examples/
http://stemskoski.github.io/three.js/index.html