Version: 2019.4
天空盒
天空盒着色器

使用天空盒

在 Unity 中,天空盒是使用天空盒着色器的一种材质。有关可用的天空盒着色器的信息,请参阅天空盒着色器

渲染管线兼容性

内置渲染管线通用渲染管线 (URP) 都专门使用天空盒来渲染天空。这些天空盒是使用天空盒着色器的材质。

高清渲染管线 (HDRP) 不支持天空盒材质,而是包含多个天空生成解决方案。

创建天空盒材质

要创建新的天空盒材质,请执行以下操作:

  1. 从菜单栏中,单击 Assets > Create > Material
  2. Shader 下拉选单中,单击 Skybox,然后单击要使用的天空盒着色器。
  3. 现在可以填写材质的属性以设置天空盒。材质的可用属性取决于材质使用的天空盒着色器。

注意:每个天空盒着色器都有自己的一组必备纹理,这些纹理的数量和格式有所不同。有关特定天空盒着色器所需的纹理的信息,请参阅该天空盒着色器的文档。在天空盒着色器页面上可以找到天空盒着色器及其文档的列表。

在场景中绘制天空盒

创建天空盒材质后,可以在场景中渲染该材质。为此需要执行以下操作:

  1. 从菜单栏中,单击 Window > Rendering > Lighting Settings
  2. 在随后出现的窗口中,单击 Scene 选项卡。
  3. 将天空盒材质分配给 Skybox Material 属性。

这样会在场景内每个摄像机的背景中绘制天空盒。如果只想为特定摄像机绘制天空盒,请参阅为特定摄像机绘制天空盒

将天空盒材质用于环境光照设置

创建天空盒材质后,Unity 可将其用于在场景中产生环境光照。为了让 Unity 这样做,请执行此操作:

  1. 打开 Lighting 窗口(菜单:Window > Rendering > Lighting Settings)。
  2. 将所选天空盒分配给 Skybox Material 属性。
  3. 单击 Source 下拉选单,然后从列表中单击 Skybox

还可以指定 Unity 更新环境光照的时间。为此,请更改 Ambient Mode。两个值如下:

  • Realtime:Unity 会不断为场景重新生成环境光照。如果在运行时改变天空盒,这很有用。
  • Baked:仅当在 Lighting 窗口底部单击 Generate Lighting 按钮时,Unity 才为场景生成环境光照。如果天空盒在运行时不变,此模式很有用,因为它可以节省计算资源。

有关环境光照的更多信息,请参阅室外光照和场景设置

为特定摄像机绘制天空盒

如果只想在特定摄像机的背景中绘制天空盒,请使用 Skybox 组件。将此组件附加到带有摄像机的游戏对象时,它会覆盖摄像机绘制的天空盒。要附加并设置 Skybox 组件,请执行以下操作:

  1. 选择场景中的一个摄像机,然后在 Inspector 窗口中进行查看。
  2. 单击 Add Component > Rendering > Skybox
  3. 在 Skybox 组件中,将天空盒材质分配给 Custom Skybox 属性。

最佳实践

如果天空盒中包含太阳、月亮或其他光源,请设置一个方向光来指向该光源的相同方向。这就好像天空盒中的光源在场景中产生阴影一样。如果场景中有多个方向光,可以选择天空盒使用的方向光。为此需要执行以下操作:

  1. 从菜单栏中,单击 Window > Rendering > Lighting Settings
  2. 单击 Scene 选项卡。
  3. 将需要使用的方向光分配给 Sun Source 属性。

如果希望场景中有雾,请让雾的颜色与天空盒颜色匹配。这样可以使雾与场景天空的颜色混合。为此需要执行以下操作:

  1. 从菜单栏中,单击 Window > Rendering > Lighting Settings
  2. 单击 Scene 选项卡。
  3. Other Settings 部分中,选中 Fog 复选框。
  4. Color 属性设置为适合天空盒的颜色。为此,可以使用墨水滴管工具从场景中选择一种颜色。
天空盒
天空盒着色器