17 灯光与阴影之灯光类型与特性
在上一篇内容中,我们介绍了在 UE5 中如何使用地形工具进行模型导入与场景搭建。作为本系列的下一篇,我们将深入探讨灯光与阴影的基本概念,并讲解灯光类型与其特性。灯光在游戏开发中起着至关重要的作用,不仅影响视觉效果,还能极大地提高游戏的沉浸感。
灯光的基本概念
在 Unreal Engine 5 中,灯光是一种可放置于场景中的物体,用来照亮环境。灯光源可以影响场景中的材质以及纹理的外观。常见的灯光类型包括:
- 定向光(Directional Light) - 模拟太阳光的效果,具有无限远的光源。
- 点光源(Point Light) - 以特定的点为光源,光线向四周发散,类似于灯泡。
- 聚光灯(Spot Light) - 从一个点发出锥形的光束,可用于重点照明。
- 面光源(Rect Light) - 发出均匀光照的平面光源,适合室内环境。
- 环境光(Sky Light) - 用于捕捉天空的光线,增加环境的亮度。
各类灯光的特性
定向光(Directional Light)
- 默认情况下,它模拟阳光,产生平行的光线。
- 光照可以影响大范围的区域,因此非常适合大场景。
- 其阴影特性能够增强物体的体积感。
1
2
3// 创建定向光
ADirectionalLight* DirectionalLight = NewObject<ADirectionalLight>();
DirectionalLight->SetActorRotation(FRotator(-45.0f, 0.0f, 0.0f)); // 设置光的方向点光源(Point Light)
- 从一个点向外发散光线,具有一定的衰减范围。
- 更适合局部照明或小规模场景。
- 可设置光的强度和范围,以达到最佳效果。
1
2
3// 创建点光源
APointLight* PointLight = NewObject<APointLight>();
PointLight->AttenuationRadius = 500.0f; // 设置光照范围聚光灯(Spot Light)
- 照亮特定区域,可以调整光束的角度和范围。
- 适用于强调某个特定的物体或区域,例如舞台照明。
- 属性设置示例:
1
2
3// 创建聚光灯
ASpotLight* SpotLight = NewObject<ASpotLight>();
SpotLight->SpotAngle = 45.0f; // 设置光束角度面光源(Rect Light)
- 光源发射均匀的光线,适合室内或有多个光源的场合。
- 可以创建柔和的阴影效果,提升真实感。
1
2
3// 创建面光源
ARectLight* RectLight = NewObject<ARectLight>();
RectLight->SetActorScale3D(FVector(1.0f, 1.0f, 0.1f)); // 设置尺寸环境光(Sky Light)
- 通过捕捉场景环境的光线,实现整体环境的照明。
- 对于 outdoors 场景中的阴影处理尤为重要。
1
2
3// 创建环境光
ASkyLight* SkyLight = NewObject<ASkyLight>();
SkyLight->SourceType = ESkyLightSourceType::SLSCapturedScene; // 捕捉场景
灯光的设置与调整技巧
在 UE5 中,使用直观的用户界面(UI)进行灯光设置非常方便。以下是一些设置和调整灯光的技巧:
1. 使用光源的“光照强度”设置
根据场景需求,适当调整光源的强度。在 Details
面板中,找到 Intensity
属性,输入合适的数值来达到预期效果。
2. 调整阴影质量
灯光的 Cast Shadows
属性控制是否投射阴影。对于性能要求高的游戏,可以在必要时关闭阴影以提高帧率。
3. 利用光源的衰减半径
通过设置光源的衰减半径,可以精确控制光的有效范围。例如,将 Attenuation Radius
设置为一个较小的值,可以达到高亮局部的效果。
4. 实时预览和迭代
使用 Viewport
的实时预览功能,在修改灯光设置时,能够快速查看效果,便于调整和优化。
结语
通过理解不同灯光类型和特性,我们可以在 UE5 中创建出更富有表现力的场景,为玩家提供良好的视觉体验。下一篇将讲解如何在具体场景中设置光源,并通过实例展示其应用。通过不断迭代和优化,确保灯光不仅是视觉上的亮点,更是游戏氛围的重要组成部分。
17 灯光与阴影之灯光类型与特性