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