【问题标题】:Three JS - How do I change from Lambert to Phong on a material at runtime?三个 JS - 如何在运行时将材质从 Lambert 更改为 Phong?
【发布时间】:2020-08-19 18:21:42
【问题描述】:

我尝试设置“类型”,然后设置“needsUpdate”,但它没有改变类型。我知道我可以制作一种新材质,然后将使用该材质的每个网格都更改为使用新材质,但我希望有一种方法可以做到这一点,而无需遍历每个网格。

【问题讨论】:

  • 不,您必须创建一个新材质并将其分配给所有网格。每种材料都有太多独特的元素可以改变“类型”。
  • 我建议你在 GitHub 上查看三个 js 编辑器的代码,看看当你更改材质类型时会发生什么

标签: three.js


【解决方案1】:

您需要创建一个新材质并让网格指向它。

mesh.material = new THREE.MeshPhongMaterial({ color: 0xffffff });

检查这个小提琴:https://jsfiddle.net/29Lqeadx/

【讨论】:

    猜你喜欢
    • 2017-09-27
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多