从 Directional/Ambient 光照中排除区域

Exclude Area from Directional/Ambient Lighting

我有一个在地面上渲染多个 房间 的场景。房间看起来像这样:

所以你看 - 它只是一个被 1 个单位高的墙包围的区域。我希望用户能够看到房间内部(这就是为什么它没有任何类型的屋顶)。但是由于没有屋顶,房间本身参与了我设置的全局照明。

我能否以某种方式为房间添加屋顶,使其不再受到全局 ambient/directional 光线的影响,同时能够从上方查看房间内部?

我建议你通过维护两个场景来解决这个问题。第一个场景包含应受全局照明影响的 3D 对象。第二个场景是你的房间。通过简单地将环境光和方向光添加到第一个场景,第二个场景不会受到影响。

需要说明的是,此设置需要两次渲染调用:

renderer.clear();

renderer.render( scene1, camera );
renderer.render( scene2, camera );

不要忘记将渲染器的 autoClear 属性 设置为 false 因为您手动执行了清除操作。