資料介紹
作者:隱士低手
游戲中的場景管理,一個容易被忽視,但是卻和游戲性能息息相關(guān)的問題。現(xiàn)在的手機(jī)游戲越來越重度,比如吃雞,原神,這種大場景開放世界的游戲,場景中的物件成千上萬,如何組織場景中的物件是一個非常棘手的問題,場景管理一般解決四個重要問題。
- 視錐體剔除
- 遮擋剔除
- 碰撞檢測
- 鄰近查詢
游戲優(yōu)化會使用多種裁剪技術(shù)來減少不必要的渲染。其中視錐體剔除是最重要的裁剪工作,我們只希望把視錐體中的物體傳遞給GPU進(jìn)行渲染,視錐體之外的物體直接丟棄。如果場景中有1萬個物體,簡單的做法就是在每幀循環(huán)1萬次,做1萬次立方體與視錐體的包含判斷,如果這么做會把cpu累死。這時候就需要場景管理來優(yōu)化檢查次數(shù),一般的場景管理算法,會把檢測次數(shù)由O(n)降低到O(logn),提升非常大。一個游戲引擎一定會有非常優(yōu)秀的場景管理算法,這個是優(yōu)化的重中之重。
碰撞檢查和視錐體剔除一樣都是為了減少檢查的次數(shù),但是碰撞檢查還需要考慮相對位置關(guān)系,比如子彈射線的檢查,我們除了需要快速剔除之外,還要考慮物體的前后位置關(guān)系,如果先打中后面的物體那么就會出現(xiàn)判斷錯誤。
遮擋剔除是一把雙刃劍,實(shí)時計(jì)算遮擋剔除會耗費(fèi)大量cpu時間,如果gpu做檢查然后將結(jié)果傳遞給cpu,又會增加cpu等待gpu的時間。所以在使用遮擋剔除的時候一直很糾結(jié),用的好可以提升性能,用的不好性能反而會下降。Gpu driven rendering pipelines,是未來的發(fā)展方向,現(xiàn)在gpu越來越強(qiáng)大,將渲染的工作全部交給gpu做吧,cpu已經(jīng)夠累了。
鄰近查詢在服務(wù)器端也會經(jīng)常使用比如AOI處理,我們也不希望用笨拙的循環(huán)來查詢是否在區(qū)域中。
場景管理主要解決兩個問題
- 空間劃分
- 潛在可見集
空間劃分的目的是可以快速剔除沒用的物體,比如我們把空間劃分成眼睛前和眼睛后兩個空間,視錐體剔除可以快速把眼睛后的空間剔除,那么空間中的全部物件也就被剔除了。空間劃分算法有bsp,四/八叉樹,kd-tree,BVH樹(四/八叉樹算是BVH樹的一種)等。
潛在可見集就是解決遮擋剔除的問題,比如一面墻后面的物體可以不需要渲染,再比如進(jìn)入一個沒有窗口的房間,室外場景都不在可見范圍內(nèi)。常用的技術(shù)有PVS,入口,遮擋剔除等。
不同的游戲適合不同的場景管理算法,比如室外場景適合八叉樹,狹長的室內(nèi)場景適合Bsp。
場景管理分靜態(tài)物件和動態(tài)物件,動態(tài)物件的管理需要不停的構(gòu)建新的樹,這部分的性能消耗是否值得。
現(xiàn)在場景管理一般都是放到cpu計(jì)算,未來的趨勢是gpu計(jì)算,這部分的技術(shù)在轉(zhuǎn)變。
一系列的問題等著我們?nèi)ソ鉀Q,如何為項(xiàng)目做出合理的技術(shù)決策。首先我們需要熟悉手中的工具,先把全部的算法做一遍,了解了各個算法的優(yōu)缺點(diǎn)后,再根據(jù)具體問題具體分析。天下沒有免費(fèi)的午餐,這是唯一的學(xué)習(xí)途徑。
- 新一代藍(lán)牙最新標(biāo)準(zhǔn)LE Audio音頻技術(shù)
- 基于業(yè)務(wù)目標(biāo)和業(yè)務(wù)場景的語義一致性驗(yàn)證方法 9次下載
- 面向5G網(wǎng)絡(luò)的虛擬化資源分配管理方法 19次下載
- 基于Unity3D游戲引擎的神經(jīng)反饋治療系統(tǒng) 5次下載
- 基于LabVIEW的貪吃蛇游戲源代碼 74次下載
- 病房呼叫管理系統(tǒng)電路圖下載 7次下載
- 管理基于Cortex?-M7的MCU的高速緩存一致性 5次下載
- VxSCADA組態(tài)管理軟件使用手冊電子版 0次下載
- 一種適用于動態(tài)場景的SLAM方法 21次下載
- 游戲場景管理(二)視錐體剔除
- 如何使用一種形式化方法的3D虛擬祭祀場景建模語言與環(huán)境 9次下載
- 《Visual C++游戲編程基礎(chǔ)》電子書.pdf 0次下載
- 幾款HTML5游戲引擎一覽 1次下載
- 傳感器和安全:從汽車到游戲場,新的解決方案保護(hù)參與者 1次下載
- 三維游戲場景中動態(tài)物體的遮擋剔除算法
- 聊一聊消息隊(duì)列技術(shù)選型的7種消息場景 1416次閱讀
- 分享一個棋盤游戲電子骰子電路 2593次閱讀
- Python-pygame 游戲開發(fā) 1517次閱讀
- Android 游戲性能調(diào)優(yōu)的一些技巧 1674次閱讀
- Android游戲開發(fā)工具以及游戲調(diào)試、打包和分發(fā)技巧 2820次閱讀
- 構(gòu)建區(qū)塊鏈游戲的項(xiàng)目有哪一些 517次閱讀
- 黑鯊正式發(fā)布了新一代游戲手機(jī)黑鯊游戲手機(jī)2,黑鯊游戲手機(jī)2的拆解 6395次閱讀
- 論玩小游戲AI不一定比你差 3171次閱讀
- 圖像識別技術(shù)在模擬器的游戲場景當(dāng)中體現(xiàn)的尤為明顯 4178次閱讀
- 1500r和1800r曲率對比分析 淺談曲率的變化 19.3w次閱讀
- 基于區(qū)塊鏈的游戲基礎(chǔ)技術(shù)平臺GES游戲引擎公鏈 3470次閱讀
- 區(qū)塊鏈游戲“狗巴巴”是一款基于以太坊智能合約的完全去中心化的游戲 1858次閱讀
- 繼OpenAI發(fā)布Dota2的團(tuán)戰(zhàn)AI后,DeepMind今天也發(fā)布了自家的最新研究 3517次閱讀
- 區(qū)塊鏈游戲會成為下一個生財(cái)好渠道嗎? 535次閱讀
- Vim 的使用技巧—Vim 命令行游戲 2459次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1491次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費(fèi)
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計(jì)
- 0.23 MB | 4次下載 | 免費(fèi)
- 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評論
查看更多