Unity3D遊戲開發如何優化性能?—— LOD技術

2021-02-08 SiKi



1、Erenow —— 在此之前

今天我們來說下Unity遊戲開發時,性能優化用到的一項簡單技術LOD —— 多層次細節。

該技術很常用、對於初學者來講也屬於比較好理解的。

在此之前,為了便於初學者腦海裡,很形象的理解這項技術有多麼簡單,我在這裡先給大家講一個例子,幫助理解。

PS-A:我們現在讓計算機,在屏幕上繪製一條線,就一條線。那麼計算機是如何做到繪製這條線,並顯示給我們看的呢?初學者提示:CPU (電腦的大腦)、GPU (電腦的成像)

1:CPU 接收到我們的指令:一條線;

2:CPU 通過計算與整合,這條線所需的基本數據,發給 GPU;

3:GPU 拿到 CPU 交由的數據後,通過計算繪製出圖像,呈現在顯示器上 —— 結束!

假設: 電腦做了一件事,很輕鬆!一瞬間都完成了!

PS-B:我們現在讓計算機,在屏幕上繪製10000條線。
基本流程1-2-3,是不會變的。但是電腦任務量發生了變化,現在要繪製的是10000條線。

假設:這時候電腦要做10000件事,相比1件事來講,用時肯定要長的多的多

(以上假設只是為了便於初學者理解,CPU與GPU的交互工作,比較繁瑣,這裡就不再過多解釋,重要的還是理解我們 LOD 技術)

2、Model —— 模型

大家都知道,模型是由頂點和面數,確定繪製出來的

一個小的模型,例如 Unity 為我們提供的 Cube 立方體:24頂點、12面

精緻的房子模型, 幾萬頂點,N萬個面

由於攝像機工作照射的區域,都會被繪製並顯示在屏幕上。

而一個遊戲場景可能有很多遊戲對象,例如諸多遊戲的野外、吃雞時跳傘的視角能觀察下方很大範圍內的環境、區域

那麼電腦的處理任務就會成倍增加,因為視野內所有物體都需要顯示在屏幕上,無論大小,都會在電腦的計算範圍之內,電腦忙不過來了,就開始卡了。

假設:要顯示所有物體,電腦的任務量可能就是20萬、50萬甚至更多。視野不斷的在進行變換,計算也就在不斷進行。3、Level of detail —— 多層次細節多層次細節處理,就是讓一個物體,在相機距離不同的情況下,顯示不同的模型,從而節省性能的開銷。


LOD 對模型進行 分層級顯示

視角離近時,我們讓物體顯示精細度高的模型
視角離遠時,我們讓物體顯示精細度低的模型

這就是 Level of detail 多層次細節優化,模型精度低了,自然就為電腦減少了工作量,性能負擔也就降下來了,不難理解!

4、LOD Example —— 多層次細節實例Unity 為我們提供了一個組件 LOD Group

開發者可以極為方便創建,並進行 LOD 優化
在層次面板中創建一個空物體,並創建3個子物體: Cube 、 Sphere 、 Capsule 
分別代表:精模、中模、低模5、Setting —— 設置分組Add ComPonent 添加組件 LOD Group
並將 3 個子物體,對應設置到組件相應的參數的層級中
注意:
其實遊戲開發時,多數都是在參數中直接關聯 預設物 ,而並非層次面板中的遊戲對象
所以,LOD技術帶來性能優化的同時,存在的一個 缺點就是會增大程序包的體積
因為本來一個模型,現在要準備起碼2個/3個/4個,打包時自然而然程序包體積就會增大!

這就是LOD技術技術的應用,有的小夥伴看完這篇文章已經躍躍欲試了。那麼你呢?

想要獲取最新的最有趣的編程資訊、知識,視頻,那麼就關注我們。


相關焦點

  • Unity3d遊戲程序開發培訓靠譜嗎?好就業嗎?
    特別是在VR設備中,90%以上的遊戲都是使用Unity引擎開發,這足以證明Unity的遊戲開發引擎更加具有統治地位。Unity的遊戲開發引擎如此受歡迎,而市場上Unity3d的遊戲程序開發者卻供不應求,這就吸引了一大批遊戲愛好者想學習Unity3d遊戲程序開發,甚至未來想轉行Unity3d遊戲程序開發。
  • unity3d遊戲引擎開發的遊戲都有哪些?
    Unity3d是目前主流的遊戲開發引擎,它提供了一個整合的編輯器、跨平臺發布、地形編輯、著色器,腳本,網絡,物理,版本控制等特性。Unity3d可以開發桌面版、web版、手機版的遊戲,是一個非常理想的三維遊戲開發平臺。
  • 年薪30W的Unity3D遊戲開發崗面試題(上)
    在三維計算機圖形的貼圖渲染中有一個常用的技術被稱為Mipmapping。為了加快渲染速度和減少圖像鋸齒,貼圖被處理成由一系列被預先計算和優化過的圖片組成的文件,這樣的貼圖被稱為 MIP map 或者 mipmap。7.用u3d實現2d遊戲,有幾種方式?
  • 為什麼JAVA不用於遊戲開發,而經常使用C++或C井 呢?
    JAVA就比如市場上最火爆的unity3d和虛幻引擎,unity3d用C#開發,虛幻引擎用C++開發。unity3dJAVA語言作為市場上最火的語言之一,沒有JAVA的遊戲引擎僅僅是因為JAVA確實不適合遊戲開發。
  • 好課分享u3d技術教程 unity3d實戰案例小項目 2D遊戲開發含素材源碼完整
    低價課程分享好課分享u3d技術教程 unity3d實戰案例小項目 2D遊戲開發含素材源碼完整高清完整
  • 2D小遊戲開發實戰技術沙龍:一場不得不聽的H5遊戲乾貨盛宴
    H5遊戲研發當中常見問題有哪些,該如何解決?H5遊戲性能應該如何優化?《大天使之劍H5》等大型H5遊戲如何能登陸微信小遊戲?相信這些問題,都曾經或正在困擾著H5遊戲或微信小遊戲的開發者。作為行業的先驅者以及領頭羊,極光網絡攜手著名引擎研發商Layabox和Cocos,聯合舉辦了此次「2D小遊戲開發實戰技術沙龍」,旨在分享乾貨,為廣大研發人員解決實際問題。本場技術沙龍,將圍繞重度HTML5遊戲的研發及優化展開。
  • 如何針對遊戲性能優化Windows 10
    Windows10對於遊戲玩家來說是一個很棒的作業系統,不僅支持原生遊戲,支持復古遊戲,甚至是XboxOne流媒體。但它還是需要一定的優化,才能更好的運行所有遊戲。需要進行一些調整才能享受Windows 10提供的最佳遊戲體驗。以下是幾種優化Windows 10 PC遊戲的方法。
  • 程序丨Unity3D性能優化最佳實踐(四):資源審查
    作者: Ian 翻譯: Kelvin Lo / 海龜系列回顧:Unity3D性能優化最佳實踐
  • 程序丨Unity3D性能優化最佳實踐(三):協程
    作者:Ian翻譯:Kelvin Lo / 海龜系列回顧:Unity3D性能優化最佳實踐
  • 絕地求生:如何設置NVIDIA卡使遊戲更加流暢高效!及N卡設置原理
    絕地求生:如何設置NVIDIA卡使遊戲更加流暢高效!只要更新N卡驅動,然後打開N卡的屬性設置,然後參照下圖設置1、在通過預覽調整圖像設置中,使用我的優先選擇,側重於(M)性能。 如果你顯卡足夠好,可以選擇質量。小編是1080就選擇質量,反之就選擇性能。(為了流暢還是性能最好)
  • 火石軟體高薪誠聘遊戲技術開發人員
    火石軟體高新誠聘遊戲技術開發人員1.1廣州職位:   PHP工程師(急聘)1.2廣州職位:  高級cocos2d-x遊戲開發工程師1.3廣州職位:  cocos2d-x遊戲開發工程師(急聘)
  • 說說那些經典的web前端面試題-開發及性能優化
    1、規避javascript多人開發函數重名問題命名空間封閉空間js模塊化mvc(數據層、表現層、控制層)seajs壓縮css、js文件合併js、css文件,減少http請求外部js、css文件放在最底下減少dom操作,儘可能用變量替代不必要的dom操作3、你所了解到的Web攻擊技術
  • 為什麼越來越多的人開始學Unity3d遊戲開發?
    為什麼越來越多的人開始學Unity3d遊戲開發,其實主要原因是我因為遊戲產業和VR技術的發展火爆。無論是PC遊戲還是手機遊戲,最近幾年都呈現井噴爆發式的增長,而國內Unity3d遊戲開發相關技術人才還有很大的缺口,可以說非常緊缺。
  • 僅需兩小時 慕課網教你學會Unity3D遊戲開發
    近日,IT學習網站慕課網上線課程——《小十傳奇》 ,帶領開發者使用Unity3D進行休閒遊戲開發。隨著移動手機遊戲盛行,遊戲開發人才供不應求,如何成為一名優秀的開發者?慕課網此次上線的課程通過好的架構保證質量,加上方便的工具和優良的方法,帶你迅速掌握遊戲開發新技能。
  • 專為遊戲打造,支持為手機GPU優化性能
    昨天,谷歌正式推出了Android GPU檢查器工具Android GPU Inspector,可以幫助開發人員更好地優化GPU在遊戲上的表現,並且能通過OTA更新直接為消費者帶來全新的GPU驅動版本。新工具支持主流GPU型號,包括高通的Adreno和ARM的Mali。
  • 頂級畫質如何煉成?天涯明月刀遊戲技術揭秘
    因此,在遊戲研發伊始,《天涯明月刀》的開發人員就全力研發了擁有自主智慧財產權的Quicksilver引擎,並在技術上選擇全球視覺計算技術的行業領袖NVIDIA?(英偉達?)作為主要的技術合作方。這樣的做的好處非常明顯。自主引擎擁有完全自主可控的使用權力和改進權利,相比購買引擎授權而言受的限制更小、自由度更高;但同時也存在劣勢,那就是開發難度大、開發周期長。
  • 聽雲應用性能管理大講堂 APP性能優化專場乾貨大放送
    4月18日,聽雲舉辦的第二期《聽雲應用性能管理大講堂——APP性能優化專場》在IC咖啡如約登場,有接近200名的現場觀眾以及超過300人同時觀看線上直播,分享來自聽雲、騰訊雲、藝龍、唱吧幾位高級工程師、研發總監與架構師的技術乾貨。
  • 程序丨Unity3D性能優化最佳實踐(二):內存
    作者:Ian  翻譯: Kelvin Lo / 海龜系列回顧:Unity3D性能優化最佳實踐(一):分析
  • 程序丨Unity優化技巧(中):介紹具體的優化方式
    Top10使用Profile找到CPU佔用最靠前的函數,從最高的開始依次分析優化。定位的方法有很多,Unity的Profile,UWA的性能測試工具,比較推薦的是使用XCode,可以抓取一段時間內函數的開銷。更品均準確也可以看到更底層。
  • 系統架構性能優化思路
    資料庫性能調優拿Oracle資料庫來說,影響資料庫性能的因素包括:系統、資料庫、網絡。資料庫的優化包括:優化資料庫磁碟I/O、優化回滾段、優化Rrdo日誌、優化系統全局區、優化資料庫對象。資料庫性能優化應該是一個持續性的工作,一個方面是本身的性能和參數巡檢,另外一個方面就是DBA也會經常提取最佔用內存的低效SQL語句給開發人員進一步分析,同時也會從資料庫本身的以下告警KPI指標中發現問題。