首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Three.js中仅对有限区域应用平行光?

如何在Three.js中仅对有限区域应用平行光?
EN

Stack Overflow用户
提问于 2021-09-15 20:18:40
回答 1查看 29关注 0票数 0

我想用类似于平行光处理整个场景的方式来照亮播放器周围的所有东西。因为我正在做一个自上而下的视图项目,所以我应该能够看到地面上的椭圆光

我试着用两层来达到这个效果:一层用于除要被照亮的区域之外的所有东西,另一层包含要被照亮的区域和一个额外的光源:

代码语言:javascript
复制
new three.SpotLight(0xffffff, .6, 0, Math.PI / 3, 0, 0);

光总是在玩家的顶部,玩家是它的目标。

它可以工作,但有两个问题:它不是平行光,所以我不能在不同的面孔上实现那些好看的阴影;光不是一直在椭圆:

当灯光投射在导入的模型上时,在播放器周围的地面上确实是一个很好的椭圆形,但对于编程生成的几何图形,情况似乎并非如此。我的猜测是,一个面只能应用一种来自光源的颜色,但使几何体变得更加复杂,将在正确的灯光计算之上增加额外的开销。

我在想,是否有可能将平行光限制在球体内部

EN

回答 1

Stack Overflow用户

发布于 2021-09-18 13:17:28

我认为你可以使用层:https://threejs.org/docs/#api/en/core/Layers

此外,尝试使用来自HDR的灯光(检查PMREM生成器),它可以提供很好的效果,您可以结合您的灯光,使场景看起来更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69199314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档