Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 换一张脸';s朝向灯光的方向不会更新其颜色_Javascript_Three.js - Fatal编程技术网

Javascript 换一张脸';s朝向灯光的方向不会更新其颜色

Javascript 换一张脸';s朝向灯光的方向不会更新其颜色,javascript,three.js,Javascript,Three.js,在具有平行光的场景中,我在3个顶点之间构建了一个简单的几何体(三角形)。(下图中的左三角形) 然后,当我更改其中一个顶点,使三角形与灯光具有不同的角度时,我希望三角形的颜色反射该顶点(中心三角形),但正如您所看到的,颜色保持完全相同 当我在更新的顶点(右侧的三角形)之间创建新三角形时,颜色已正确设置(如预期的那样) 问题:当我更改三角形的一个顶点时,如何使三角形动态更新其颜色 我试过: triangle.geometry.verticesNeedUpdate = true; triangle.

在具有平行光的场景中,我在3个顶点之间构建了一个简单的几何体(三角形)。(下图中的左三角形)

然后,当我更改其中一个顶点,使三角形与灯光具有不同的角度时,我希望三角形的颜色反射该顶点(中心三角形),但正如您所看到的,颜色保持完全相同

当我在更新的顶点(右侧的三角形)之间创建新三角形时,颜色已正确设置(如预期的那样)

问题:当我更改三角形的一个顶点时,如何使三角形动态更新其颜色

我试过:

triangle.geometry.verticesNeedUpdate = true;
triangle.geometry.colorsNeedUpdate = true;
triangle.geometry.elementsNeedUpdate = true;
triangle.material.needsUpdate = true;

您正在使用或
MeshBasicMAterial
MeshLambertMaterial
的印象。尝试使用
MeshPhongMaterial


尝试
geometry.computeFaceNormals()
几何体。计算顶点法线()这与下面接受的答案相结合就成功了!