本质上而言,光照函数(Light Functions) 就是一种材质,可用于过滤光照的强度。
但需要注意的是,你无法使用光照函数来修改光照颜色,只有"光照颜色"设置可以修改。此外,静态光照无法使用光照函数,因为这个功能只适用于未应用光照贴图的光源(例如静态光源和可移动光源)。
下图中,材质使用了Panner和ScalarParameter节点来移动纹理并生成闪烁效果。
点击查看大图。
创建光照函数
你可以将材质的材质域设置成"光照函数(Light Function)"属性,以此创建一个光照函数。

应用光照函数
你可以使用 细节 面板中的 光照函数材质(Light Function Material) 设置,将光照函数应用到光源上。

已知问题和常见提问
下文介绍了在正向渲染中使用光照函数时,已知的一些问题。
- 光照函数只有在启用投射阴影时才能工作: 出现这种情况是因为 FScene::AssignAvailableShadowMapChannelForLight 只为阴影投射光源分配了一个阴影贴图通道。光照函数需要渲染进阴影贴图,才能传递给正向渲染中的基础通道。
- 光照函数只有在存在一个阴影投射对象时才能工作: 出现这种情况是因为 FDeferredShadingSceneRenderer::RenderForwardShadowProjections 会跳过光源,除非 VisibleLightInfo.ShadowsToProject.Num() > 0。