游戏制作之路(24)Camera(摄像机)的清除标志Skybox

news/2025/1/12 23:08:46/

在前面学习了摄像机的属性:Clear Flags,知道它有四个选项,但是什么时候使用哪一个选项呢?这是一个必须学习会的知识点,否则你是做不出来游戏的,就像数学里充分必要条件一样。由于摄像机的重要性,就因为游戏显示的一切都是从它显示出来的。在这里先来学习第一个选项:Skybox(天空盒)。
什么是天空盒呢?这个天空盒有什么作用呢?我们可以先从现实的生活来观察一下,比如你们来到深圳的莲花山顶,可以看到市民中心,可以看到比市民中心更远一点位于香港的高山,再远一点,就是蓝色的天空。当你环绕山顶一圈,总会看到天空,四周的天空总是围成一个以自己为中心的半球天空。由于整个地球是圆形的,并且由于万有引力的作用,导致整个大气层是半球形状,因此观察到整个天空也是半球的形状。这个就是现实观察到的真实世界,那么我们要在游戏里实现这个场景,当然是照搬现实世界了。好吧,在游戏里实现一个天空体,叫做Skydome,就是一个内半球。在这个内半球里贴上天空和云的纹理图片,就像现实世界里看到的天空一样了,有太阳,也有月亮,更可以有星星。当角色在这个天空体里行走时,同时移动这个天空体,让角色永远在这个圆心点上,这样无边无际的天空视野就实现了。
上面使用天空半球来实现,当然是最真实的情况,但在计算量上还是复杂了一些,有没有更简单的方法呢?其实还是有的。比如我们来观察一下室内情况,就会发现每个房子都是四四方方的,如果采用房子的结构来代替半球的情况,这样就更简单了。因为一个房子,就只有6个面,每个面使用两个三角形,才12个三角形就解决了。比一个半球显然少了不少的计算量。这样的天空体设计,就叫做天空盒,它的主要作用是模拟天空、室内场景。
如下6个图片,就可以显示一个天空盒:

从这个纹理图片上,就可以看到天空体的6个面,每个面设计是不一样的,四周是地球的边缘地貌,头顶上是天空云,地面是山地。

在unity里摄像机包含有显示对象的颜色和深度,这里的深度是指显示对象到摄像机的显示平面的距离。当摄像机要显示一帧画面时,它需要考虑几个因素,比如显示物体与显示平面的深度距离,还要考虑物体的颜色,再有上一次显示图片之间的关系。在这里的清除标志,其实就是与这三者都有关系,四个选项里选择那一个,就是选择了怎么样的深度、颜色和上一帧图片叠加的效果。第一个选项skybox,意味着摄像机要显示一帧新画面时,把上一帧的画面全部清空,让它显示以天空体为背景,再在上面按从远到近来显示摄像机范围可视的物体,如果没有游戏物体部分,就会显示天空体的图片

最后来看一下,透视投影的摄像机,会加深理解它:

到这里,就学会了第一个选项的使用。

五子棋游戏开发
http://edu.csdn.net/course/detail/5487
RPG游戏从入门到精通
http://edu.csdn.net/course/detail/5246
WiX安装工具的使用
http://edu.csdn.net/course/detail/5207
 


http://www.ppmy.cn/news/666550.html

相关文章

移动游戏性能优化通用技法

1. 前言 很多年前就想将这些年工作中积累的优化经验撰写成文章,但懒癌缠身,迟迟未动手,近期总算潜下心写成文章。 涉及到具体优化技巧时,我会尽量阐述原理和依据,让读者知其然也知其所以然。 要完全读懂这篇文章&#…

深圳大学数学文化赏析MOOC答案

1.4 章节测验 一、多选题 (共 100.00 分) 1. 以下关于数学的描述,正确的有( )。 A. 数学是研究现实世界的空间形式与数量关系的科学。 B. 数学是研究模式与秩序的科学 C. 数学研究事物的物质属性 D. 数学只是研究数的科学 满分…

Hibernate Validator 组件

Hibernate Validator 组件介绍 Hibernate Validator 是一个基于 Java 的验证框架,它提供了强大且灵活的验证功能,用于验证 JavaBean 对象的状态。它是基于 JSR 380 规范(Bean Validation 2.0)的实现,并且可以与任何 J…

IDEA开发插件的相关参考

教程 用gradle开发IDEA插件_idea gradle插件_ykdsg的博客-CSDN博客 5分钟从零开发一款简易的IDEA插件 ※通过gradle开发idea插件,环境版本适配_wl1411956542的博客-CSDN博客 技术调研,IDEA 插件怎么开发「脚手架、低代码可视化编排、接口生成测试」&…

苹果手机自制铃声

把文件拖到资料库,或者点击文件-将文件添加到资料库 点击菜单栏下面的 音乐 图标,右键点击刚刚添加的音乐文件名称——显示简介——选项:设置铃声开始与结束时间,长度不能超过40秒,确认; 左侧菜单栏切换到歌…

panic 苹果aop_iPhone重启故障 iOS日志分析

iPhone重启故障 iOS日志分析 Panic Full文件里面记录了iPhone重启原因,根据对日志数据的分析,我们能得到一些故障信息,以此判断出是哪个硬件导致的问题。 进入手机设置 – 通用-隐私-分析-数据,找到对应时间的重启文件,Panic Full开头的文件,如Panic Full – 2020/02/25 …

Apple Push Notification Service(苹果推送服务)

https://developer.apple.com/library/IOS/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html Apple Push Notification Service 苹果推送服务 Apple Push Notification service (APNs for short) is the centerpiece of t…

java苹果推送_iphone 推送通知 java 实现

前提准备, 在编写push notification之获取device token中拿到device token以后,需要把token字符串发送给应用的服务器端,即provider。 对于越狱手机获取不到 device token的可以通过cydia安装pushdoctor,安装方法可以google一下在这就不多说了,我的越狱手机通过安装push补…