我在 Three.js 场景中有一些基于 CubeGeometry 的网格,它们都反映了我在全局使用的 PointLight。但其中之一,仅用 THREE.Geometry(通过代码添加顶点和面)“手工”制作的,没有反映出来。即使它没有颜色,如果我在 MeshPhongMaterial 上将 THREE.Color 设置为“emissive”键,我也只能为此设置颜色。
由 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上添加一些东西吗?或者说有什么问题呢?
听起来像是“手工”制作的几何体缺失,或者顶点法线不正确。
你可以这样做:
geometry.computeFaceNormals();
geometry.computeVertexNormals();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)