Skip to main content

场景光源

最近更新时间:2023-12-26

概述​

光源的光线会对物体产生影响,引擎中的光照用于模拟光线在现实世界中的传播和交互。引擎使用了详细模型分析光线的工作原理,以达到更加逼真的效果,或使用简化模型来达到更加风格化的效果。

创建场景光源​

在组件编辑器中,依次点击创建游戏对象(Create Game Object)-> 光源对象(Light Source Object),创建一个光源对象。

image-20231212173933888

场景光源设置​

在大纲(Hierarchy)面板中选中所创建的光源对象(LLightSource),然后在观察器(Inspector)面板中选中LightSourceComponent0(Inherited),在下方的空间可视对象(VisBase)分类中可进行光源的相关设置。

image-20231130175656219

场景光源类型​

引擎提供了不同的类型的光源,可根据应用于不同场景的需求选择合适的光源。

点(Point)光源、聚(Spot)光源、盒(Box)光源和面(Area)光源可通过光源(Light Source)对象的光源类型(Light Type)属性来选择。

image-20231130175532597

点光源​

可将点光源看作一个点,从该点发出的光线在空间中辐射出去,均匀地向四面八方发射。点光源通常用于模拟灯泡光源。

image-20230712133121242

提示

在场景中可先添加地形、直接光照(Direct Light)和模型对象,以便查看场景光源的效果。

image-20230921134506781

聚光源​

聚光源是一种具有方向性的光源,它从圆锥形中的单个点发出光线,可模拟聚焦光束的效果。聚光源通常用于模拟手电筒、舞台照明灯等光源。

image-20230712133617891

盒光源​

可将盒光源看作一个盒子,从盒子内部发出光线。盒光源通常用于模拟室内场景中的灯具、窗户等光源。

image-20230712142851986

面光源​

可将面光源看作一个具有面状形状的光源和一个发射光线的表面。面光源通常用于模拟大面积光源,如地板、墙壁等。

image-20230712141349209

场景光源属性​

光源基础属性​

以下为场景光源的基础属性。

image-20231130175737638

属性说明
颜色(Color)光源发出的颜色
强度(Intensity)光源发出的总能量
高光强度(Specular Intensity)调节镜面光强度
闪烁强度(Flash Intensity)闪烁亮度偏移系数(与强度(Intensity)相乘)
闪烁速度(Flash Speed)闪烁时淡入淡出的时间
闪烁停顿时间(Flash Peak Period)闪烁时保持最亮状态的时间与保持最暗状态的时间之和
启用镜头光晕(Enable Lens Flare)启用镜头效果,开启后将模拟镜片看向光源时的玻璃模糊效果
镜头光晕配置(Lens Flare Config)镜头效果配置文件
镜头光晕距离(Lens Flare Distance)镜头效果衰减距离

基础属性效果​

颜色​

image-20230927152650933

强度​

image-20230921165459772

高光强度​

图中展示了点光源照到镜子上后反射的高光效果。

image-20230922113318652

提示

在场景中放置一面镜子,用于查看场景光源照射到镜子后反射的高光效果。

闪烁​

可通过修改光源的闪烁强度(Flash Intensity)、闪烁速度(Flash Speed)和闪烁停顿时间(Flash Peak Period)属性来实现不同的闪烁效果。

下图为闪烁强度(Flash Intensity)=1、闪烁速度(Flash Speed)=2、闪烁停顿时间(Flash Peak Period)=0.5的效果。

Flash

镜头光晕​

若需场景光源产生镜头光晕效果,需先开启全局镜头光晕效果。在编辑器中依次点击菜单栏窗口(Windows) -> 默认效果(Default Effect),在默认效果(Default Effect)窗口中勾选镜头光晕(Lens Flare) -> 代理对象(Proxy Object) -> 镜头光晕(Lens Flare) -> 是否可见(Visible)。

image-20231011155630097

启用光晕效果​

勾选光源的启用镜头光晕(Enable Lens Flare)属性,即可看到该光源产生的镜头光晕效果。

image-20231205141137318

镜头光晕配置​

从项目(Project)面板中将镜头光晕文件(*.lensflare)拖拽到镜头光晕配置(Lens Flare Config)中,该镜头光晕文件的配置会覆盖全局的镜头光晕配置。

image-20231205141229100

配置完成:

image-20231205141625611

备注

在资源预览窗口空白处右键,依次点击创建资源(Create Res) -> 镜头光晕(Lens Flare)可创建一个镜头光晕文件,双击该文件后可对其进行编辑。

image-20231012163150588

镜头光晕距离​

与光源距离一致,不同镜头光晕距离(Lens Flare Distance)的效果。

镜头光晕距离:50
镜头光晕距离:60

状态属性​

以下为场景光源状态(State)分类下的属性。

image-20231214160206806

属性说明
是否可见(Visible)光源是否在场景中显示
激活(Active)启用光源效果
是否显示光源范围线框(Show Bounding Box)是否显示光源范围线框
是否影响体积雾(Affect Volumetric Fog)启用光源照射在雾中的效果
是否仅影响体积雾(Volumetric Fog Only)仅显示光源照射在雾中的效果,不显示光源照射在地面/物体上的效果
名称(Name)光源名称
当前高光亮度(Current Specular Intensity)不可修改
是否异步加载(Async Load)加快贴图加载速度
动态阴影贴图(Shadow Map Dynamic)自动刷新阴影贴图大小
辅助点名称(Helper Name)不可修改

点光源属性​

以下为设置点光源的相关属性。

image-20231012140941495

属性说明
范围(Range)限制光的可见范围
常数衰减(Constant Attenuation)常数衰减因子
线性衰减(Linear Attenuation)线性衰减因子
径向衰减(Radial Attenuation)径向衰减因子
阴影贴图尺寸(Shadow Map Size)创建阴影时呈现的阴影贴图的大小
调整阴影贴图尺寸(Adapt Shadow Map Size)启用后,可以根据视距自动调整阴影贴图的大小
体积雾内散射强度(Volumetric Fog Inscatter Intensity)使用体积雾后,可用来控制体积雾的强度

属性效果​

下图中为不同范围(Range)的点光源。选中光源后,可看到由线框包围的区域,该区域表示光源的可见范围。

不显示光源范围线框
显示光源范围线框

提示

可通过光源的是否显示光源范围线框(Show Bounding Box)属性开启关闭线框。

衰减​

常数衰减(Constant Attenuation)、线性衰减(Linear Attenuation)、径向衰减(Radial Attenuation)属性用于调节光照区域内的光照强度。

衰减公式为:

d = max(d + Attenuation Coefficient 0, 0.0F);
float inten = max(0.0F, 1.0F - (Attenuation Coefficient 1 * d + Attenuation Coefficient 2 * d * d));
//如果衰减系数0和2的值都为0将会使用以下公式
float inten = max(0.0F, 1.0F - Attenuation Coefficient 1 * d);

//d是光照区域内的点到光源中心的距离
//以上公式计算的结果是光照强度

其中Attenuation Coefficient 0为常数衰减( Constant Attenuation),Attenuation Coefficient 1为线性衰减(Linear Attenuation),Attenuation Coefficient 2为径向衰减(Radial Attenuation)。

常数衰减​

下图为线性衰减(Linear Attenuation)都为1,径向衰减(Radial Attenuation)都为0,不同常数衰减(Constant Attenuation)的效果。

image-20231012133603867

线性衰减​

下图为常数衰减(Constant Attenuation)都为0,径向衰减(Radial Attenuation)都为0,不同线性衰减(Linear Attenuation)的效果。

image-20231012105343203

径向衰减​

下图为常数衰减(Constant Attenuation)都为0,线性衰减(Linear Attenuation)都为1,不同径向衰减(Radial Attenuation)的效果。

image-20231012105847977

体积雾内散射强度​

首先需开启体素体积雾效果。在编辑器中依次点击菜单栏窗口(Windows) -> 默认效果(Default Effect),在默认效果(Default Effect)窗口中勾选体素体积雾(Voxel Fog Volume) -> 属性(Property) -> 是否可见(Visible)。

image-20231011133606029

在大纲(Hierarchy)面板中选中LSceneSettings-1,在观察器(Inspector)面板中勾选上下文配置(Context Config)下的启用分块前向着色(Enable Tiled Forward Shading)属性。

image-20231011134658247

在大纲(Hierarchy)面板中选中光源对象,在观察器(Inspector)面板中选中LightSourceComponent0(Inherited),然后勾选空间可视对象(VisBase) -> 状态(State) -> 是否影响体积雾(Affect Volumetric Fog)。

image-20231012145131382

可通过调整光源的体积雾内散射强度(Volumetric Fog Inscatter Intensity)属性来控制体积雾强度。

image-20231011153558948

在上述基础上,开启、关闭光源状态(State) -> 是否仅影响体积雾(Volumetric Fog Only)属性的效果如下图所示:

关闭是否仅影响体积雾
开启是否仅影响体积雾

聚光源属性​

以下为设置聚光源的相关属性。

image-20231215110936599

属性说明
遮罩贴图(Mask Map)设置聚光源加载的遮罩贴图
范围(Range)限制光的可见范围
线性衰减(Linear Attenuation)线性衰减因子
径向衰减(Radial Attenuation)径向衰减因子
内角度数(Inner Degree)设置聚光源椎体内部的角度(以度计)
外角度数(Outer Degree)设置聚光源椎体外部的角度(以度计)
衰减指数(Falloff Exponent )聚光源强度的指数幂
阴影贴图尺寸(Shadow Map Size)创建阴影时呈现的阴影贴图的大小
调整阴影贴图尺寸(Adapt Shadow Map Size)启用后,可以根据视距自动调整阴影贴图的大小
体积雾内散射强度(Volumetric Fog Inscatter Intensity)使用体积雾后,可用来控制体积雾的强度

属性效果​

遮罩贴图​

遮罩贴图(Mask Map)属性用于修改聚光源照亮区域的模式(Pattern)。

从资源预览窗口中将一个遮罩贴图拖拽到光源对象(LLightSource)的遮罩贴图(Mask Map)中,为该光源添加遮罩贴图。

image-20231214172921418

效果:

image-20230926145131177

范围​

范围(Range)属性用于调整光源照亮的区域。选中光源,可看到由线框包围的区域,该区域表示光源的可见范围。

不显示光源范围线框
显示光源范围线框
衰减​

线性衰减(Linear Attenuation)、径向衰减(Radial Attenuation)属性用于调节光照区域内的光照强度。

衰减公式为:

float attenu = max(0.0F, 1.0F - (Attenuation Coefficient 1 * d + Attenuation Coefficient 2 * d * d));
//如果衰减系数2的值为0将会使用以下公式
float attenu = max(0.0F, 1.0F - Attenuation Coefficient 1 * d);
//d是光照区域内的点到光源中心的距离
//以上公式计算的结果是光照强度

其中Attenuation Coefficient 1为线性衰减(Linear Attenuation),Attenuation Coefficient 2为径向衰减(Radial Attenuation)。

线性衰减​

下图为径向衰减(Radial Attenuation)都为0,不同线性衰减(Linear Attenuation)的效果。

image-20231012132835363

径向衰减​

下图为线性衰减(Linear Attenuation)都为0,不同径向衰减(Radial Attenuation)的效果。

image-20231012133056543

内角度数​

外角度数(Outer Degree)=30,不同内角度数(Inner Degree)的效果。

不显示光源范围线框
显示光源范围线框
外角度数​

内角度数(Inner Degree)=15,不同外角度数(Outer Degree)的效果。

不显示光源范围线框
显示光源范围线框
衰减指数​

image-20231016152629267

体积雾内散射强度​

有关聚光源的体积雾内散射强度(Volumetric Fog Inscatter Intensity)效果的开启和使用可参考点光源体积雾内散射强度。

image-20231212133115169

盒光源属性​

以下为设置盒光源的相关属性。

image-20231012152623960

属性说明
常数衰减(Constant Attenuation)常数衰减因子
线性衰减(Linear Attenuation)线性衰减因子
径向衰减(Radial Attenuation)径向衰减因子
光源盒尺寸(Light Box Scale)盒的尺寸

属性效果​

衰减​

常数衰减(Constant Attenuation)、线性衰减(Linear Attenuation)、径向衰减(Radial Attenuation)属性用于调节光照区域内的光照强度。

衰减公式为:

d = max(d + Attenuation Coefficient 0, 0.0F);
float attenu = max(0.0F, 1.0F - (Attenuation Coefficient 1 * d + Attenuation Coefficient 2 * d * d));
//如果衰减系数0和2的值都为0将会使用以下公式
float attenu = max(0.0F, 1.0F - c_Attenu.y * d);
//d是光照区域内的点到光源中心的距离
//以上公式计算的结果attenu将会与光照强度相乘

其中Attenuation Coefficient 0为常数衰减( Constant Attenuation),Attenuation Coefficient 1为线性衰减(Linear Attenuation),Attenuation Coefficient 2为径向衰减(Radial Attenuation)。

常数衰减​

下图为线性衰减(Linear Attenuation)都为1,径向衰减(Radial Attenuation)都为0,不同常数衰减( Constant Attenuation)的效果。

image-20231012153724916

线性衰减​

下图为常数衰减( Constant Attenuation)都为0,径向衰减(Radial Attenuation)都为0,不同线性衰减(Linear Attenuation)的效果。

image-20231012154619016

径向衰减​

下图为常数衰减( Constant Attenuation)都为0,线性衰减(Linear Attenuation)都为0,不同径向衰减(Radial Attenuation)的效果。

image-20231012153032466

光源盒尺寸​
不显示光源范围线框
显示光源范围线框

面光源属性​

以下为设置面光源的相关属性。

image-20231213170449677

属性说明
范围(Range)限制光的可见范围
区高度(Area Height)面光源沿局部Y轴的长度
区宽度(Area Width)面光源沿局部Z轴的长度
照亮角度(Area Angle)照亮的区域角度
阴影贴图尺寸(Shadow Map Size)创建阴影时呈现的阴影贴图的大小
调整阴影贴图尺寸(Adapt Shadow Map Size)启用后,可以根据视距自动调整阴影贴图的大小

属性效果​

范围​

范围(Range)属性用于调整光源照亮的区域。

image-20230926175245575

区高度/区宽度​

通过区高度(Area Height)和区宽度(Area Width)属性可调整面光源的尺寸大小。

不显示光源范围线框
显示光源范围线框
照亮角度​

image-20230927105857288

阴影设置​

在大纲(Hierarchy)面板中选中LSceneSettings-1,勾选上下文配置(Context Config)下的启用动态阴影效果(Enable Dynamic Shadow)。

image-20230927134807662

点光源、聚光源和面光源使用阴影时需要设置阴影贴图尺寸(Shadow Map Size)的值(必须大于0)。启用调整阴影贴图尺寸(Adapt Shadow Map Size)后,将不使用阴影贴图尺寸(Shadow Map Size)的值,且会自动计算阴影贴图的大小,此时阴影贴图尺寸(Shadow Map Size)的值也必须大于0。

关闭调整阴影贴图尺寸(Adapt Shadow Map Size),设置不同阴影贴图尺寸(Shadow Map Size)的效果如下图所示:

image-20230927151216557

以下为在阴影贴图尺寸(Shadow Map Size)都为1024的面光源照射下,启用、关闭调整阴影贴图尺寸(Adapt Shadow Map Size)的效果。

未启用调整阴影贴图尺寸:

off

启用调整阴影贴图尺寸:

on

移动光源下的模型,默认情况下,其阴影会实时跟随模型移动,可通过状态(State) -> 动态阴影贴图(Shadow Map Dynamic)属性来关闭该功能。

使用动态阴影贴图(Shadow Map Dynamic)前,需先依次点击菜单栏窗口(Windows) -> 默认效果(Default Effect),然后在默认效果(Default Effect)窗口中,勾选光照管理器(Light Manager)下的是否优化阴影贴图生成(Shadow Map Optimal)属性,并取消勾选是否使用阴影池(Use Shadow Pool)。

image-20231215163958219

若场景中有LQualityVolume,可直接选中LQualityVolume,然后在观察器(Inspector)面板中选中光照管理器(LightManager),勾选是否优化阴影贴图生成(Shadow Map Optimal)属性,并取消勾选是否使用阴影池(Use Shadow Pool)。

image-20231215170303072

此时,若取消勾选动态阴影贴图(Shadow Map Dynamic),移动模型,阴影不会跟随模型移动,效果如下图:

ShadowMapDynamicOff

若勾选动态阴影贴图(Shadow Map Dynamic),移动模型,阴影跟随模型移动,效果如下图:

ShadowMapDynamicOn