23.立方体纹理天空盒

23.高级纹理-立方体纹理-天空盒


23.1 知识点

准备工作

  • 导入天空盒资源

天空盒是什么

天空盒(Skybox)是计算机图形学和三维游戏开发中常用于模拟背景的一种方式,它通常由一个立方体构成。字面上理解就是一个用于模拟天空的盒子(但是它不仅可以模拟天空,模拟室内等环境也是可以的)。在游戏场景中使用天空盒时,整个场景就被包围在了一个立方体中。这个立方体的每个面使用的技术就是立方体纹理技术。

它给我们带来的主要好处是:

  • 可以创建逼真的背景
    天空盒使场景看起来更加逼真,因为它可以展示复杂和详细的背景。

  • 可以提高性能
    可以减少渲染远景所需的消耗,只需要纹理贴图就可以模拟远景的效果,而无需实际的在远处创建这些物体。

  • 全景视图
    天空盒的六个面(前、后、左、右、上、下)共同构成一个完整的环境,无论玩家向哪个方向看,都能看到连贯的背景图像。

  • 易于实现
    对于开发者来说,制作和应用天空盒相对简单,只需要准备好六个方向的纹理图像,并将它们应用到立方体纹理中即可。

通过天空盒来感受立方体纹理的作用

主要步骤

在Unity当中使用天空盒非常简单,我们无需写任何代码就可以使用天空盒。

  1. 创建天空盒材质球

    • 创建一个材质球。
    • 将其Shader设置为Unity自带的天空盒着色器(Skybox/6 Sided)。
    • 为了让天空盒接缝处不要出现不匹配的现象,我们将准备的纹理的Wrap Mode(循环模式)设置为Clamp(夹紧)。
    • 将我们准备好的6张纹理赋值给对应的面。
    • 修改材质球上的各参数:Tint Color(材质整体颜色),Exposure(天空盒亮度),Rotation(天空盒沿正Y轴方向的旋转角度)。
  2. 创建测试用场景

    • 新建一个测试场景。
    • 设置天空盒:
      • 设置全局天空盒(影响所有摄像机),在Window/Lighting面板中设置材质球。
      • 单独为摄像机设置天空盒(可以覆盖全局设置),为摄像机添加Skybox组件并关联材质球。

创建材质,将其Shader设置为Unity自带的天空盒着色器(Skybox/6 Sided)

为了让天空盒接缝处不要出现不匹配的现象,我们将准备的纹理的Wrap Mode(循环模式)设置为Clamp(夹紧)

将我们准备好的6张纹理赋值给对应的面,可以尝试修改材质球上的各参数:Tint Color(材质整体颜色),Exposure(天空盒亮度),Rotation(天空盒沿正y轴方向的旋转角度),查看效果


建一个测试场景,设置天空盒,设置全局天空盒(影响所有摄像机)在Window/Lighting面板中设置材质球


如果只想影响到某个摄像机,即只想单独为摄像机设置天空盒,为摄像机添加Skybox组件并关联材质球,这个设置可以覆盖全局设置


23.2 知识点代码

Lesson23_高级纹理_立方体纹理_天空盒.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson23_高级纹理_立方体纹理_天空盒 : MonoBehaviour
{
    void Start()
    {
        #region 准备工作
        
        //导入天空盒资源

        #endregion

        #region 知识点一 天空盒是什么?

        //天空盒(Skybox)是计算机图形学和三维游戏开发中常用于模拟背景的一种方式,它通常由一个立方体构成
        //字面上理解就是一个用于模拟天空的盒子(但是它不仅可以模拟天空,模拟室内等环境也是可以的)
        //在游戏场景中使用天空盒时,整个场景就被包围在了一个立方体中。
        //这个立方体的每个面使用的技术就是立方体纹理技术。

        //它给我们带来的主要好处是:
        //1.可以创建逼真的背景
        //  天空盒使场景看起来更加逼真,因为它可以展示复杂和详细的背景
        //2.可以提高性能
        //  可以减少渲染远景所需的消耗,只需要要纹理贴图就可以模拟远景的效果,而无需实际的在远处创建这些物体
        //3.全景视图
        //  天空盒的六个面(前、后、左、右、上、下)共同构成一个完整的环境,无论玩家向哪个方向看,都能看到连贯的背景图像
        //4.易于实现
        //  对于开发者来说,制作和应用天空盒相对简单,只需要准备好六个方向的纹理图像,并将它们应用到立方体纹理中即可
        //等等

        #endregion

        #region 知识点二 通过天空盒来感受立方体纹理的作用

        //在Unity当中使用天空盒非常的简单
        //我们无需写任何代码就可以使用天空盒
        //第一步:创建天空盒材质球
        //  1.创建一个材质球
        //  2.将其Shader设置为Unity自带的天空盒着色器(Skybox/6 Sided)
        //  3.为了让天空盒接缝处不要出现不匹配的现象,我们将准备的纹理的Wrap Mode(循环模式)设置为Clamp(夹紧)
        //  4.将我们准备好的6张纹理赋值给对应的面
        //  5.修改材质球上的各参数:Tint Color(材质整体颜色),Exposure(天空盒亮度),Rotation(天空盒沿正y轴方向的旋转角度)
        //第二步:创建测试用场景
        //  1.新建一个测试场景
        //  2.设置天空盒
        //      2-1:设置全局天空盒(影响所有摄像机)在Window/Lighting面板中设置材质球
        //      2-2:单独为摄像机设置天空盒(可以覆盖全局设置)为摄像机添加Skybox组件并关联材质球

        #endregion
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏