Javascript 我的对象不是';t以3.js反射光线
我在three.js场景中使用了一些基于立方几何的网格,它们都反映了我全局使用的点光源。但是其中的一个是由“手工”制作的,只有三个。几何体(通过代码添加顶点和面)并没有反映出来。即使它没有颜色,我也只能为它设置颜色,如果我在MeshPhongMaterial上将THREE.color设置为“emissive”键 由JS函数自动生成的几何体。我正在使用这个litghs:Javascript 我的对象不是';t以3.js反射光线,javascript,three.js,Javascript,Three.js,我在three.js场景中使用了一些基于立方几何的网格,它们都反映了我全局使用的点光源。但是其中的一个是由“手工”制作的,只有三个。几何体(通过代码添加顶点和面)并没有反映出来。即使它没有颜色,我也只能为它设置颜色,如果我在MeshPhongMaterial上将THREE.color设置为“emissive”键 由JS函数自动生成的几何体。我正在使用这个litghs: pointLight = new THREE.PointLight(0xFFFEF0, 1, 100000) p
pointLight = new THREE.PointLight(0xFFFEF0, 1, 100000)
pointLight.position = camera.position;
scene.add(
pointLight
);
我正在用以下代码创建所提到的网格:
var floor = new THREE.Mesh(
ShelfArchitect.Utils.getFloorGeometry(walls),
new THREE.MeshPhongMaterial(materialParams)
);
我应该在materialParams上添加一些内容?或者问题出在哪里?听起来“手”制作的几何体缺少顶点法线,或者顶点法线不正确 您可以这样做:
geometry.computeFaceNormals();
geometry.computeVertexNormals();
我只是创建了几何体宽度var geom=new THREE.geometry();,并添加一些带有geom.vertices.push(…)的顶点,以及一些带有geom.faces.push(…)的面。接下来我还应该做什么?在您回答之后,我尝试调用geom.computeVertexNormals(),但它仍然不起作用。谢谢你
computeVertexNormals()
首先需要computeFaceNormals()
。非常有效。非常感谢。