Unity 5 教程 低多边形场景的光照与后处理
本文将详细介绍如何在 Unity 5.5 中为低多边形场景添加光照和后处理。考虑到部分读者可能缺乏相关经验,以下将通过对低多边形场景设置光照的步骤讲解和处理方法,为大家提供帮助。
课前介绍
通过学习本教程,您可以了解到以下内容:
- Unity 中光照的基础概念
- 为场景设置预计算实时全局光照(Precomputed Realtime GI)
- 为动态(非静态)对象添加光照探针(Light Probes)以使用预计算实时全局光照
- 更改光照设置/颜色
- 从 Unity 标准资源包中导入 Images Effects
- 设置摄像机的后处理图像效果:
- 环境光遮蔽(Ambient Occlusion)
- 全局雾(Global Fog)
- 景深(Depth of Field)
- 色调映射(Tonemapping)
- 抗锯齿(Antialiasing)
- 泛光(Bloom)
- 色彩矫正寻址纹理(Color Correction Lookup Texture)
- 晕影和色差(Vignette and Chromatic Aberration)
- 调整场景颜色衬托不同的氛围
本教程使用的软件:Unity 5.5 和 Photoshop CC 2017
如何为低多边形场景设置光照
下面将按步骤介绍如何为低多边形场景设置光照。
目标平台
确保将目标平台设为 PC,Mac & Linux Standalone 平台。若不是该平台,请点击菜单项 File -> Build Settings,选择“PC,Mac & Linux Standalone”,然后点击 Switch Platform 按钮切换平台。
启用预计算实时 GI(全局光照)
- 依次点击 Unity 菜单项
Window -> Lighting打开 Lighting 面板,在 Lighting 面板选择Scene选项卡。 - 打开
Precomputed Realtime GI选项卡,设置实时分辨率(Realtime Resolution)为 0.5(分辨率越小,全局光照预计算越快)。建议在开发时将 Realtime Resolution 设得更低,在最终场景中将其设为 0.5 或更大。将 CPU Usage 设为 Medium。 - 禁用 Baked GI。
- 在面板底部取消 Auto 复选框,以禁用自动构建。
清除 GI 缓存
由于场景可能未按预期进行烘焙,需要清除缓存。依次点击菜单项 Edit -> Preferences,在 GI Cache 选项卡下点击 Clean Cache 按钮清除缓存。
使用预计算实时 GI
- 在层级视图选中地形资源,并将它们设为静态,以便使用预计算实时 GI。对于非静态资源可以使用光照探头(Light Probes),后续步骤将具体说明。
- 打开光照面板,启用自动构建。等待构建完成(编辑器右下角会显示蓝色进度条),此时地形正在使用预计算实时全局光照(Precomputed Realtime GI)或反射光照(Bounced Lighting)。
- 启用自动构建后,当场景发生任何改变,例如移动地形时,场景会自动构建实时全局光照。
确保将颜色空间(Color Space)设为线性
依次点击菜单项 Edit > Project Settings > Player,将 Other Settings 下的 Color Space 设为 Linear。设为 Linear 效果会比 Gamma 更佳。
更改光照设置
- 选取场景中的方向光(这里命名为 Sun),将其拖拽到光照面板 Scene 选项卡的 Sun 属性中。当使用程序化的天空盒时,该属性用于指定一个方向光来表示“太阳”的方向(或是照亮场景的大型远距离光源)。如果未设置该值,则场景中最亮的方向光将被指定为太阳光。
- 将 Ambient Source 改为 Color,并设置颜色为您喜欢的颜色(本例使用 #896262),它用于改变场景中的环境光颜色。
- 在层级视图中选择 Sun(方向光),将其按 X 和 Y 轴旋转来改变场景时间和氛围。调整光线和阴影直到效果满意。仅通过改变 Sun(方向光)的旋转就可以实现不同效果。
添加光照探头
非静态(移动的)对象使用光照探头(Light Probes)来获取反射光(预计算实时 GI)数据。场景中所有的树、石头、蘑菇等都可使用光照探头,即使它们静止不动。为小对象使用光照探头有助于提高性能,包括内存和全局光照构建时长。
- 在层级视图上依次点击
Create > Light > Light Probe Group。 - 选中 Light Probe Group 并将其移动到场景资源(树、石头等)所在的地方。将光照探头放在地面,以确保所有物体都能受到预计算实时全局光照的影响。
- 选中 Light Probe Group 并启用 Edit Light Probes 模式。可以在检视面板点击按钮进入编辑模式,也可以在鼠标左键点击光照探头上黄色的球来自动启用该模式。同时按住 SHIFT 键可以选择多个部分。
- 选中一面的所有光照探头,将它们移动到资源(树、石头等)的边界位置。按此方式移动所有面,让主场景的非静态资源如树、石头等都在光照探头组内部,以便它们通过预计算实时全局光照获得地面的反射光。
- 在正交视图(Orthographic View)下选择整面的光照探头,复制(按住
CTRL + SHIFT)并移动几次,以覆盖主场景的所有非静态资源。 - 复制并移动光照探头后,取消选择 Light Probe Group。可通过在场景视图中的 Gizmos 下拉菜单中取消勾选
LightProbeGroup来禁用光照探头组 Gizmo,以便更好地观察场景。 - 现在可以通过在检视面板上禁用或启用 Light Probe Group 组件来测试光照探头组的效果。从测试中可以看到石头从地面上反射出绿光,这体现了预计算实时全局光照对静态地形和使用光照探头组的非静态物体的影响。
如何为低多边形场景设置后处理
光照设置好之后,接下来介绍如何为低多边形场景设置后处理。
导入资源
选择 Assets > Import Package > Effects。您可以从 Unity 官网下载标准资源包,导入所需的特效资源,将 Image Effects 导入到项目中。
在摄像机上添加后处理图像特效
- 添加 Screen Space Ambient Occlusion:在层级视图选中 Main Camera,在检视面板中点击
Add Component,为其添加 Screen Space Ambient Occlusion 组件。调整脚本设置以获得更好的场景效果。 - 添加 Global Fog 组件:点击
Add Component按钮并搜索 Global Fog。启用 Lighting 界面 Scene 标签页下的 Fog,以设置 Global Fog Color 和其他雾效属性。 - 添加 Depth of Field 组件:点击
Add Component并且搜索 Depth of Field (Lens Blur,Scatter…),调整脚本设置,让场景突出主要焦点。 - 添加 Tonemapping 组件:在示例的低多边形场景中使用特定设置效果最佳。
- 添加 Antialiasing:保持默认设置。
- 添加 Bloom:Bloom 脚本设置可将阈值调整为 0.6。
- 添加 Color Correction (3D Lookup…):保持默认设置。
- 添加 Vignette and Chromatic Aberration:调整脚本设置以便场景效果最佳。
设置 Color Correction Lookup Texture
- 截取 Unity 编辑器游戏视图的场景屏幕截图,打开 Photoshop 并粘贴该截图。通过调整图像的 Adjustments 实现您想要的场景氛围,可尝试不同设置,如稍微改变亮度/对比度和色彩平衡。
- 导入 Color Lookup Texture 到 Photoshop 中的截图上。可以在 Unity 工程中找到 Color Lookup Texture,路径为
Assets > Standard Assets > Image Effects > Textures目录下有名为 Neautral3D16 的纹理。若找不到该纹理,请确保已经从 Standard Assets 资源包中导入了 Image Effects。 - 导入 Color Lookup Texture 到 Photoshop 后,确保纹理层级在 Image Adjustment Effects 的下方。
- 选择 Color Lookup Texture 并用 Crop Tool 进行裁剪,仅保留该纹理。
- 选择
File -> Save As…将文件保存为.PNG格式(可以任意命名)用于 Unity 项目,您可以为该纹理新建文件夹。 - 打开 Unity,在层级视图选中 Main Camera,在检视面板中打开 Color Correction Lookup (Script)。将刚刚保存的 Color Lookup Texture 拖拽至” None (Texture 2D)”的方形区域上,并且点击“Conver and Apply”。
总结
希望您可以尝试按照上述教程,使用 Unity 5 进行学习,期待看到您创造出更加真实的场景。