如何仅将定向光应用于 Three.js 中的有限区域?
Posted
技术标签:
【中文标题】如何仅将定向光应用于 Three.js 中的有限区域?【英文标题】:How apply directional light only for a limited zone in Three.js? 【发布时间】:2021-11-10 21:48:29 【问题描述】:我想以与定向光对整个场景的作用类似的方式照亮玩家周围的一切。因为我在做一个俯视图项目,我应该能够看到地面上的一个椭圆形光
我尝试通过使用 2 层来实现该效果:一层用于除待照明区域之外的所有内容,另一层包含待照明区域和额外的光源:
new three.SpotLight(0xffffff, .6, 0, Math.PI / 3, 0, 0);
光总是在玩家的顶部,玩家就是它的目标
有效,但有两个问题:它不是定向光,所以我无法在不同的脸上实现那些好看的阴影;并且光线不会一直在做椭圆:
当灯光投射到导入的模型上时,它确实是玩家周围地面上的一个很好的椭圆,但对于以编程方式制作的几何图形,情况似乎并非如此。我的猜测是,一张脸只能从光源应用 1 种颜色,但是使几何图形更复杂会在适当的光照计算之上增加额外的开销
我在想是否可以将定向光限制在球体内
【问题讨论】:
【参考方案1】:我认为你可以使用图层:https://threejs.org/docs/#api/en/core/Layers
另外,请尝试使用来自 HDR(检查 PMREM 生成器)的灯光,它可以提供很好的效果,您可以将其与灯光相结合,让场景看起来更好。
【讨论】:
以上是关于如何仅将定向光应用于 Three.js 中的有限区域?的主要内容,如果未能解决你的问题,请参考以下文章
循环中的对象不会在Three.js的整个lopop上投射阴影
Wordpress:如何仅将 widget_title 过滤器应用于某个侧边栏中的小部件?