资料介绍
作者:隐士低手
游戏中的场景管理,一个容易被忽视,但是却和游戏性能息息相关的问题。现在的手机游戏越来越重度,比如吃鸡,原神,这种大场景开放世界的游戏,场景中的物件成千上万,如何组织场景中的物件是一个非常棘手的问题,场景管理一般解决四个重要问题。
- 视锥体剔除
- 遮挡剔除
- 碰撞检测
- 邻近查询
游戏优化会使用多种裁剪技术来减少不必要的渲染。其中视锥体剔除是最重要的裁剪工作,我们只希望把视锥体中的物体传递给GPU进行渲染,视锥体之外的物体直接丢弃。如果场景中有1万个物体,简单的做法就是在每帧循环1万次,做1万次立方体与视锥体的包含判断,如果这么做会把cpu累死。这时候就需要场景管理来优化检查次数,一般的场景管理算法,会把检测次数由O(n)降低到O(logn),提升非常大。一个游戏引擎一定会有非常优秀的场景管理算法,这个是优化的重中之重。
碰撞检查和视锥体剔除一样都是为了减少检查的次数,但是碰撞检查还需要考虑相对位置关系,比如子弹射线的检查,我们除了需要快速剔除之外,还要考虑物体的前后位置关系,如果先打中后面的物体那么就会出现判断错误。
遮挡剔除是一把双刃剑,实时计算遮挡剔除会耗费大量cpu时间,如果gpu做检查然后将结果传递给cpu,又会增加cpu等待gpu的时间。所以在使用遮挡剔除的时候一直很纠结,用的好可以提升性能,用的不好性能反而会下降。Gpu driven rendering pipelines,是未来的发展方向,现在gpu越来越强大,将渲染的工作全部交给gpu做吧,cpu已经够累了。
邻近查询在服务器端也会经常使用比如AOI处理,我们也不希望用笨拙的循环来查询是否在区域中。
场景管理主要解决两个问题
- 空间划分
- 潜在可见集
空间划分的目的是可以快速剔除没用的物体,比如我们把空间划分成眼睛前和眼睛后两个空间,视锥体剔除可以快速把眼睛后的空间剔除,那么空间中的全部物件也就被剔除了。空间划分算法有bsp,四/八叉树,kd-tree,BVH树(四/八叉树算是BVH树的一种)等。
潜在可见集就是解决遮挡剔除的问题,比如一面墙后面的物体可以不需要渲染,再比如进入一个没有窗口的房间,室外场景都不在可见范围内。常用的技术有PVS,入口,遮挡剔除等。
不同的游戏适合不同的场景管理算法,比如室外场景适合八叉树,狭长的室内场景适合Bsp。
场景管理分静态物件和动态物件,动态物件的管理需要不停的构建新的树,这部分的性能消耗是否值得。
现在场景管理一般都是放到cpu计算,未来的趋势是gpu计算,这部分的技术在转变。
一系列的问题等着我们去解决,如何为项目做出合理的技术决策。首先我们需要熟悉手中的工具,先把全部的算法做一遍,了解了各个算法的优缺点后,再根据具体问题具体分析。天下没有免费的午餐,这是唯一的学习途径。
来源:电子创新网
- 新一代蓝牙最新标准LE Audio音频技术
- 基于业务目标和业务场景的语义一致性验证方法 9次下载
- 面向5G网络的虚拟化资源分配管理方法 19次下载
- 基于Unity3D游戏引擎的神经反馈治疗系统 5次下载
- 基于LabVIEW的贪吃蛇游戏源代码 73次下载
- 病房呼叫管理系统电路图下载 7次下载
- 管理基于Cortex®-M7的MCU的高速缓存一致性 5次下载
- VxSCADA组态管理软件使用手册电子版 0次下载
- 一种适用于动态场景的SLAM方法 21次下载
- 游戏场景管理(二)视锥体剔除
- 如何使用一种形式化方法的3D虚拟祭祀场景建模语言与环境 9次下载
- 《Visual C++游戏编程基础》电子书.pdf 0次下载
- 几款HTML5游戏引擎一览 1次下载
- 传感器和安全:从汽车到游戏场,新的解决方案保护参与者 1次下载
- 三维游戏场景中动态物体的遮挡剔除算法
- 聊一聊消息队列技术选型的7种消息场景 1132次阅读
- 分享一个棋盘游戏电子骰子电路 2234次阅读
- Python-pygame 游戏开发 1276次阅读
- Android 游戏性能调优的一些技巧 1430次阅读
- Android游戏开发工具以及游戏调试、打包和分发技巧 2555次阅读
- 构建区块链游戏的项目有哪一些 478次阅读
- 黑鲨正式发布了新一代游戏手机黑鲨游戏手机2,黑鲨游戏手机2的拆解 6294次阅读
- 论玩小游戏AI不一定比你差 3072次阅读
- 图像识别技术在模拟器的游戏场景当中体现的尤为明显 4024次阅读
- 1500r和1800r曲率对比分析 浅谈曲率的变化 19.2w次阅读
- 基于区块链的游戏基础技术平台GES游戏引擎公链 3344次阅读
- 区块链游戏“狗巴巴”是一款基于以太坊智能合约的完全去中心化的游戏 1800次阅读
- 继OpenAI发布Dota2的团战AI后,DeepMind今天也发布了自家的最新研究 3427次阅读
- 区块链游戏会成为下一个生财好渠道吗? 504次阅读
- Vim 的使用技巧—Vim 命令行游戏 2379次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多