Three.js中的均匀照明模型

Uniformly lighting model in Three.js

本文关键字:照明 模型 js Three      更新时间:2024-06-25

我有一个3D模型,我想从各个方向均匀照明,没有任何阴影。目前我正在使用聚光灯,但由于它是定向的,我只能在任何时间点看到模型的某些部分被照亮。

解决这个问题的一种方法是在边界框的每个角都有一个指向边界框中心的聚光灯。这样我就有8个聚光灯。

这是解决这个问题的标准方法吗?还是这种方法也有局限性?你能提出一个更好的解决方案吗?

有几种方法可以在three.js中生成相当均匀的照明。

如果你想要聚光灯或平行光,一定要添加一些环境光:

scene.add( new THREE.AmbientLight( 0x222222 ) );

如果执行此操作,还可以将material.ambient设置为与material.color匹配,这样模型的未照明侧看起来会正确。(material.ambient在r.71中被删除)。

第二种解决方案是使用半球光。

第三种解决方案是添加点光源作为摄影机的子对象,因为您不关心阴影。

scene.add( camera ); // required only if the camera has children
camera.add( new THREE.PointLight( 0xffffff, 1 ) );

这样,无论视图的方向如何,场景都会得到很好的照明。

three.js r.70