three.js R71 - 环境被删除,如何配置获得相同的渲染结果?

时间:2016-01-13 17:27:22

标签: three.js rendering material ambient

three.js r71 the ambient property has been removed from THREE.Material

之前我使用ambient来设置我在网格物体上使用的材质的正确渲染(光照)效果。现在我所有网格的外观发生了巨大变化。

如何让我的材料与r71之前完全一致?

2 个答案:

答案 0 :(得分:3)

这就是为什么......

据@WestLangley说;我引自his post in the discussion(链接自@pprchsvr):

  

material.ambient是材料的环境反射率。对于真实世界的物体,它通常应匹配材料的漫反射率material.color。 (毕竟,物体不知道光子来自何处。)

     

我们选择简化API,并硬连线material.ambient以匹配material.color。因此,material.ambient已被删除。

这意味着您将无法再设置与材质颜色不同的环境颜色,据我所知,没有"快速修复"获得与以前相同的渲染结果。

  • 一种可能的解决方案是尝试通过调整/更改场景中的材质颜色和环境光线来使材质像以前一样显示。
    另请参阅THREE.AmbientLightTHREE.MeshBasicMaterial(以及其他材料)的three.js文档以供参考。

  • 或者,您可以使用THREE.ShaderMaterial创建自己的着色器材质,您可以在其中(重新)创建一个允许您明确设置环境颜色的着色器。

答案 1 :(得分:1)

这个问题在这里讨论:

https://github.com/mrdoob/three.js/issues/6501

或者您可以使用较早的着色器覆盖r71着色器(或者只使用旧版本的三个)。