在今年的Unity亞洲開發者大會上,高通公司半導體事業部資深經理劉曉光從硬件芯片、引擎優化、OpenGL ES 3.0支持,以及開發工具等角度,分享了如何軟硬件雙管齊下,開發及優化出優秀的移動游戲。
高通公司半導體事業部資深經理劉曉光
高通深植無線領域已逾25年,一直引領無線領域的創新,到目前為止芯片出貨量已超過150億。高通僅2013年在R&D方面投入了50億美元,這在所有高科技公司中,每年50億美元的R&D投入是非常大的。劉曉光表示“到目前為止高通擁有超過84000多個合作伙伴,我們的市值也已經達到1280億美元。”
到現在為止高通覆蓋了市場中超過1350款終端,而且還有500款正在緊鑼密鼓地研發過程中。截止至目前,與已經有超過100個廠家采用高通處理器研制手機。
采用高通Snapdragon的平板電腦
高通和微軟進行了深度合作,在Windows Phone領域中,高通是最大的供貨商,100%的Windows Phone都是采用的高通處理器。同時,我們也是最先支持Windows Phone和Windows 8的芯片供應商。到目前為止,已經有超過50款Windows Phone和RT設備面世,將來還會有更多Windows Phone平臺設備會應用到高通處理器。
移動游戲與芯片
移動游戲這幾年的發展突飛猛進,其增長率甚至超過了整個游戲領域增長率。據Gartner分析報告顯示,從2013到2015年,移動游戲領域收入將會翻倍,實現從132億至220億美元的增長。而且將會有更多的游戲開發商和設備生產商被吸引至移動平臺上來。到底是什么使移動游戲如此流行?劉曉光認為真正原因還是用戶體驗。如果對比2010年狂野飆車的界面和2013年狂野飆車8的界面,渲染、背景,儼然是兩個時代的產品。
高通的處理器不僅僅是面向高端領域,從低端入門到高端的產品均有涉獵,從低到幾百元的智能手機,到最高端的智能手機,大多數用的都是高通驍龍芯片。高通驍龍芯片有四個特點,提供最完整的單芯片解決方案,有強大的圖形處理器,以及異步對稱多處理(aSMP)CPU架構,這是現在很多芯片所不具備的。
在CPU構架方面,高通在移動領域上是唯一支持異步對稱多處理架構的公司。留意一下關于手機芯片的新聞你會發現一個問題,有很多性能比較高的芯片進入市場,但是為什么在手機上很少見呢?那是因為高性能并不是全部,高性能和低功耗相結合才是剛需。異步處理器,在性能和功耗能效上具備最佳平衡,只有異步處理器,才能保證當手機忙的時候,讓所有的核都工作起來,讓手機性能達到最高,但是手機空閑的時候,不同的CPU可以單獨工作,讓功耗降至最低。
“在SoC嵌入式GPU領域,高通市場份額第一,占有32.3%的市場份額,Nvidia占1.4%,剩下的48家廠商則占66.3%”劉曉光表示,“GPU在移動領域發展非常迅速,甚至超過了整個PC領域。高通在短短幾年內,從最早的GPU的Adreno A200開始到現在最新的Adreno A420的處理器,將其整體性能提升了65倍。”
觀眾現場體驗采用高通技術的平板電腦
基于OpenGL ES 3.0進行優化
高通不僅支持從DX9.3到DX11.1版本,也是全球第一個支持OpenGL ES 2.0和OpenGL ES 3.0的芯片,并在GDC上宣布支持OpenGL ES 3.1。
以實例化幾何渲染(Instaced Geometry Rendering)為例,大家繪制比較復雜的圖形時,經常會遇到一些需要重復渲染的小元素,比如說天上的鳥,地上的螞蟻等類似場景,以前需要對它們逐一渲染,這會占用很多CPU資源,非常耗電。而現在繪制一個實例,GPU可以一次渲染多個類似對象,這讓游戲繪制流暢很多。
對于OpenGL ES 3.0的遮擋查詢(Occlusin Queries)方面。我們在移動設備做事情講的最多的就是提高效率,我們也想了很多方法來提高效率,比如說有景深的畫面,如果前面的元素遮擋了后面的元素,那么后面的元素是不需要渲染的。而這在以前開發過程中需要全部渲染出來,做了許多無用功。我們用遮擋查詢,可以讓繪圖效率達到最高,通過查詢簡單的查詢,可以判斷邊界是否被遮擋,比如在做鏡頭光暈效果時,可以查詢太陽是否可見,并且只渲染鏡頭光暈。
另外高通對陰影PCF做了很多優化,讓整個陰影更加的流暢,包括延遲著色和光照,對于幾何物體,在第一遍著色時就會被渲染,在第二遍著色時,只有在有光照的情況下才會最終被渲染成像素。可以說,OpenGL ES 3.0開啟了移動領域的延遲光照,這需要GPU支持多渲染目標和浮點紋理。“我們可以同時對多個目標進行渲染,我們的浮點紋理處理性能也非常高。”劉曉光表示。
很多開發者可能都有過這樣的體會,當你做紋理壓縮的時候,OpenGL ES 2.0就是個惡夢,直到3.0定義了紋理壓縮格式。“希望大家盡快遷移到3.0版本,因為OpenGL 2.0做游戲,要針對不同的GPU做不同的紋理壓縮包。不是讓應用體積增大,就是需要你在用的時候下載不同的擴展包。對于小白用戶來說,他不知道自己的手機是什么樣的,也不知道,這個游戲是不是為他所用的設備生產的,有那么多的下載資源,如果游戲下載到手機上,發現沒法玩的時候,受害最大的還是開發者,如果遷移到3.0上的話,這些問題就迎刃而解了。”
對GPU的歷史熟悉的朋友肯定知道,以前GPU曾有兩派,一種是可編程單元式頂點著色器和像素著色器用不同的單元做,另一種則是同一單元可以做頂點著色,也可以做像素著色。各有各的好處,到移動領域,最優解是同樣的處理單元可以做不同的工作。現在GPU畫圖時,如果頂點處理的任務和像素處理的任務,并沒有完全充分利用到現在的處理單元的話,有一部分單元是空閑的。在移動領域最不容忍的就是浪費效率和浪費能耗。
廣泛支持引擎中間件
高通跟很多游戲引擎中間件都有合作,包括包括游戲引擎Unity、Unreal、CryENGINE、Unigine,物理引擎Box2D、havok、Bullet,音頻引擎FMOD、SRS、Dolby、Wwise,以及高級渲染引擎Lighting Engine、Enlighten、ALG、Procedural Texturing,讓開發者無需接觸GPU開發,可以直接通過這些引擎達到GPU優化的目的。
高通針對第三方引擎我們做了很多優化,首先是渲染和用戶界面,讓游戲引擎針對我們的GPU進行優化,包括最新的API調用,以及GPU的特性。針對物理和AI的引擎,則讓它充分利用到高通GPU的多線程的特性,并且讓它利用高效的處理單元,甚至DSP以最低功耗最快的速度處理你需要的數據。在視頻和音頻方面,讓解碼器用DPS,把最完美的圖像做出來。高通芯片支持所有的網絡協議,在LTE Cat6的下載速度可以達到300Mbps的水平,通過與游戲引擎公司合作,讓他們在網絡層面進行充分優化,讓需要聯網的應用或游戲網絡延遲更小。
Unity CEO參觀高通展位
多種工具助力開發及優化
高通為開發者提供了Adreno的SDK和調試工具Adreno Profiler。Adreno SDK在桌面上可以模擬OpenGl ES,高通有實例和教程,可以掌握OpenGL ES的用法。調試工具對于開發者來說非常必要,它能夠對GPU的利用率進行細致分析。同時,高通還有工具庫,幫開發者做紋理壓縮和混合優化。
大家在開發過程中可能會碰到各種各樣的問題,以前靠猜問題出在哪兒,甚至走很多彎路。Adreno GPU分析器,它有兩種模式,一個是“洗滌器模式”,在一幀里著色紋理,所有調用信息實時進行處理,讓你知道繪制這個圖的時候,你的程序給GPU下了什么指令,GPU做的動作是什么。另外一個是“繪圖器模式”,實時監視并分析所有數據,包括每種3D場景,GPU調用的實施情況,你可以從中知道GPU是否在想要的狀態下工作。
高通驍龍覆蓋低端、中端、高端移動終端。高通和Unity一起基于高通處理器對Unity 4.3做了優化,大家可以享受高通處理器優化的功能。同時,高通還未為開發者提供工具和文檔,節約開發時間。劉曉光表示,對于優秀的頂級廠商,還有應用開發商,高通還會為大家的應用提供更多的展示機會。
更多高通技術信息,詳見【高通開發者專區】