在三个.js r71 中,ambient
属性已从THREE.Material
中删除。
以前,我使用ambient
来设置我在网格上使用的材质的正确渲染(光照)效果。现在,我所有网格的外观都发生了巨大变化。
如何使我的材质与 r71 之前完全相同?
原因就在这里...
根据@WestLangley;我在讨论中引用了他的帖子(来自@pprchsvr的链接):
material.ambient
是材料的环境反射率。对于现实世界的物体,它通常应该匹配material.color
,材质的漫反射率。(毕竟,物体不知道光子来自哪里。我们选择简化 API,并硬连线
material.ambient
以匹配material.color
。因此,material.ambient
已被删除。
这意味着您将无法再设置与材质颜色不同的环境颜色,并且据我所知,没有"快速修复"来获得与以前相同的渲染结果。
<小时 />-
一种可能的解决方案是通过调整/更改场景中的材质颜色和环境照明,尝试使材质像以前一样显示。
另请参阅三.js文档。环境光和三。MeshBasicMaterial(和其他材料)供参考。 -
或者,您可以使用 THREE 创建自己的着色器材质。着色器材质,您可以在其中(重新)创建一个着色器,该着色器允许您显式设置环境颜色。
这里讨论这个问题:
https://github.com/mrdoob/three.js/issues/6501
或者,您可以使用早期的着色器覆盖 r71 着色器(或者只使用三个着色器的旧版本)。