Skip to content

Latest commit

 

History

History
67 lines (43 loc) · 3.77 KB

visual-effect.md

File metadata and controls

67 lines (43 loc) · 3.77 KB

视觉效果

在 HDRP 中,视觉效果是基于 Volume 制作的。 简单来说,volume 划分了游戏世界中的“区域”。 它们可以在默认的视觉上叠加额外的效果,以此来实现后处理等功能的。

要让 volume 生效,需要为其指定 VolumeProfile 资产。 VolumeProfile 中包含了要“叠加”的效果清单。

为了避免在关卡设计、搭建的过程中,各种 VolumeProfile 相互冲突、资产管理混乱,撰此手册以指导之。

本项目工程中可能出现的 VolumeProfile(视觉配置),按语义区分,一共有四种:全局、场景、关卡、区域。

全局视觉配置

全局视觉配置是从游戏启动到退出一直生效且唯一的视觉配置。 它有一项非常重要的责任:统一全局应当统一的视觉环境配置项。 这些项包括:

  • 环境光照。
  • 曝光。

要统一它们的原因主要是因为,游戏的关卡加载模块并非基于 scene 的,而是基于 level prefab 的。 如果每个 prefab 里都有自定义的视觉环境配置项,那么在关卡加载时,就会出现视觉环境的突变。 这是不想要的,因此必须有一个统一配置的地方。

全局视觉配置的 Volume 应当作为 GameManager 的 prefab 的子物体出现(注意是要应用到 prefab 里的而不是仅仅是场景里的 override)。 这是因为,GameManager 符合“从游戏启动到退出一直生效且唯一”的设定:即使在关卡加载的过程中不小心加载了重复的实例,后来者也会立马自毁。

全局视觉配置的 VolumeProfile 资产是唯一的,存放于 Assets/Configs/Rendering/ 下。 此路径下应当只存在这一个 VolumeProfile 实例,任何多余的都应当立即清除。

场景视觉配置

场景视觉配置是仅在某些场景(scene)里生效的全局视觉配置。 它们主要存在于用来测试特殊视觉风格的场景里,作为对全局视觉配置的补充或修改。

如上所述,游戏的关卡加载模块是基于 level prefab 的。 这意味着,如果场景特异的 Volume 没有应用到 level prefab 里,那么在从别的场景中启动的游戏运行时载入新的关卡,就不会使得这些场景特异的 Volume 生效。 这与“测试特殊视觉风格”的目的相合。

场景视觉配置的 Volume 应当作为场景中的物体出现,绝不应当应用到 GameManager 或 level prefab 中。

场景视觉配置的资产存放于 Assets/Scenes/[场景名]/ 下。

关卡视觉配置

关卡视觉配置是对整个 level prefab 生效的“关卡默认”视觉配置。

它们随着关卡动态加载而加载,这意味着它们不应是 global 的,否则会在加载时造成视觉效果的突变。

关卡视觉配置应当存在于 level prefab 里(而不是场景中的 override); 它们应当是 local 的,只不过区域足够大到涵盖整个关卡。

有时,根据关卡设计的需要,多个关卡可能会互相穿插。 这种情况,可以在创建每个关卡的 VolumeProfile 后,应用到多个零碎的 Volume 上。 如果仍然用一个大 Volume 的做法,会导致在重叠区域同时应用两套视觉效果的错误结果。

关卡视觉配置的资产存放于 Assets/Levels/[关卡名]/ 下。

区域视觉配置

区域视觉配置是关卡视觉配置的局部版。

根据关卡设计,关卡中的某些区域可能会有独特的视觉风格。 这可以通过在 level prefab 里创建小范围的局部 Volume 覆盖关卡的默认视觉配置来实现。

区域视觉配置的资产,同关卡视觉配置一样,存放于 Assets/Levels/[关卡名]/ 下。