UE4光照通道

23 篇文章 0 订阅

使动态光源照亮与其光照通道相同的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()。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值