场景是各种资源素材搭配来实现某个虚拟环境的载体。例如摆放一个房屋模型,在里面添置各种家具模型后,就搭建了一个简单的室内环境。这些操作都是在一个场景中完成的,场景作为一个载体,存放着一个环境中的各类元素,通常包括模型、音频、灯光等。
在游戏中,一个关卡通常作为一个单独的场景,不同关卡之间的跳转可以理解为多个不同场景的转换。为什么需要这样做呢?下面从两个角度出发进行分析。
1.从性能的角度出发
当项目都是室内场景时,需要从性能的角度出发进行考量。用户总是只能看到当前场景的内容(指模型,因为场景就是通过模型摆放来营造的),而其他场景的内容用户必须移步到对应场景才能查看。(www.xing528.com)
那么如果将项目中的所有场景都汇聚在一个场景中进行展示,其对运行设备的要求非常高,因为同时加载这么多资源,不仅对内存的存储空间来说是一种负担,同时占据大量的运算性能,这些都是不必要的,所以可以分割场景,当用户在某个场景中时,只加载对应场景的内容。
2.从项目逻辑出发
假设从一个游戏项目的角度出发,通常会随着游戏剧情的进度推展,拓展出不同的场景——从刚开始游戏时的新手指引,到游戏背景呈现不同的室内环境、室外环境。如果从现实生活的角度出发,认为在同一个环境(如地球)中,应该实时涵盖所有场景,此处可以参考目前的开放世界类型游戏。但这样仍然存在局限性,回顾之前提到的性能问题,以及不同手段的性能优化所带来的项目安装体积(即安装占用的磁盘空间大小)问题等,对性能进行优化时需要提供多种模型,即从原本的一个模型拓展出三四个模型(如后续单元所讲解的LOD技术)。这并不适用于所有项目,特别是移动平台方向的应用开发(手机设备就是一个典型的例子)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。