資料介紹
作者:隱士低手
游戲中的場景管理,一個容易被忽視,但是卻和游戲性能息息相關的問題。現在的手機游戲越來越重度,比如吃雞,原神,這種大場景開放世界的游戲,場景中的物件成千上萬,如何組織場景中的物件是一個非常棘手的問題,場景管理一般解決四個重要問題。
- 視錐體剔除
- 遮擋剔除
- 碰撞檢測
- 鄰近查詢
游戲優化會使用多種裁剪技術來減少不必要的渲染。其中視錐體剔除是最重要的裁剪工作,我們只希望把視錐體中的物體傳遞給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次下載 | 免費
評論
查看更多