UE4光照通道

使动态光源照亮与其光照通道相同的Actor。使用户能自由掌握Actor的光照。当前ue支持最多3中光照通道。

用法

定向光源、聚光灯、点光源和可被光源影响的所有Actor(staticMesh,SkeletonMesh等)均默认启用Lighting Channel 0. 如果需要一个可照亮的Actor受某一光源的影响,这个Actor和光源的光照通道需要相同,即Light的Lighting channels属性值和这个Actor的Lighting Channel值相同,均为channel0或channel1或channel2。

限制

光照通道的影响为动态应用。无法用于静态光源或Mobility为Static的静态网格体Actor。但可用于Mobility为Movable的静态网格体,同时,需要光源为stationary或movable。

光照通道只影响不透明材质上的直接光照,无法用于半透明或遮罩材质。

性能

性能影响较小,但不是毫无影响。

移动平台

光照通道可用于支持以下功能的移动渲染器:

不同通道中支持不同定向光源;
每个图元只受一个定向光源影响,且用设置的第一个光照通道;
来自stationary或可移动的定向光的csm阴影只向光照通道相同的图元上投影;
动态点光源完全支持光照通道。

项目中的接口

Lua中调用C++里的void ULuautils::ChangeActorLightChannel(AActor * obj, int channel)接口,动态改变Actor的光照通道,从而使其动态改变光照通道,受不同定向光源的光照和阴影。

代码实现的主要内容就是改变Actor的staticMeshComponent或SkeletalMeshComponent(GetRootComponent()获取)及其子component的lightingchannel。改变后,要MarkRenderStateDirty。

调用方法参考:UISpriteModel.lua里OnModelLoadEnd()。

你可能感兴趣的:(UE4,渲染)