【发布时间】:2012-12-20 06:05:49
【问题描述】:
我在 three.js 场景中有一些基于 CubeGeometry 的网格,它们都反映了我在全球范围内使用的 PointLight。但是其中一个是由“手工”制作的,只有 THREE.Geometry (通过代码添加顶点和面)没有反映出来。即使它没有颜色,我也只能为此设置颜色,如果我在 MeshPhongMaterial 上将 THREE.Color 设置为“发射”键。
由 JS 函数动态生成的几何图形。我正在使用这个灯:
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 上添加一些东西吗?或者是什么问题?
【问题讨论】:
-
我只是创建几何宽度 var geom = new THREE.Geometry();,并用 geom.vertices.push( ... ) 添加一些顶点,用 geom.faces.push 添加一些面(……)。接下来我还应该做什么?在您回答之后,我尝试调用 geom.computeVertexNormals(),但它仍然不起作用。谢谢
-
computeVertexNormals()首先需要computeFaceNormals()。 -
像魅力一样工作。谢谢!!
标签: javascript three.js