javascript - 改变脸部朝向光线的方向不会更新其颜色

标签 javascript three.js

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

然后,当我更改其中一个顶点以使三 Angular 形对光线具有不同的 Angular 时,我希望三 Angular 形的颜色能够反射(reflect)这一点(中心三 Angular 形),但正如您所看到的,颜色仍然与原来的颜色完全相同。一样。

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

three js screenshot

问题:如何让三 Angular 形在更改其顶点之一时动态更新其颜色?

我已经尝试过:

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

最佳答案

您正在使用 MeshBasicMAterialMeshLambertMaterial 的印象。尝试使用MeshPhongMaterial

http://jsfiddle.net/stdob/j8k7yhLp/4/show/lite

关于javascript - 改变脸部朝向光线的方向不会更新其颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31295877/

相关文章:

javascript - JavaScript 警报值为 null 后

three.js - 如何向向量 3 添加长度以获得新向量

three.js - 像 OrbitControls 一样旋转对象,但只旋转对象本身

javascript - Three.js:如何使 cssRenderer 图层元素透明,通过它显示 webglRenderer 图层?

javascript - threejs中的渐变clearColor

javascript - 使用 jQuery.map 修改对象?

javascript - 如何获取 div 或任何子元素的标记名?

php - 将 setTimeout 与 AJAX 一起使用的替代方案?

javascript - 是否可以使用自定义组件或任何其他方式自定义 ng2-smart-table 的列标题?

javascript - 如何测试 Three.js 中光线拾取的错误?