lights
lights
允许一个材质只被一个手动指定的光源列表所影响,从而覆盖默认的、接收场景中所有光源的行为。
核心优势
提供了极致的性能优化(通过减少特定物体的光照计算量)和艺术控制力(如创建不影响环境的角色专属光照)。
常见用途
为角色创建专属光照(主光、辅光、轮廓光)。
在大规模场景中,为远景或静态物体减少光照计算以优化性能。
通过传入空列表 `lights([])` 来让使用光照贴图的物体忽略所有实时光源。
实现交互式高亮效果,动态地为物体添加一个临时光源。
如何调整
通过在 JavaScript 中修改传入的光源数组来调整。例如,调用 `myLightsNode.setLights([newLight])` 会使材质立即忽略旧光源,转而只被 `newLight` 照亮。这为动态切换光照效果或实现交互提供了可能。
代码示例
1// 在光照上下文中,指定此材质只被 myLight1 和 myLight2 照亮
2lightingContext( lightingModel, {
3 lights: lights( [ myLight1, myLight2 ] )
4} );