2016年7月31日 星期日

千呼萬喚 - Unity 5.4正式發佈

作者:ALEX LIAN 原文

讓大家久等了,Unity 5.4正式版現已發佈可立即下載

正如我們在3月份發佈的公告,我們在Unity 5.4的測試版裡額外放了很多測試資源,為了發佈品質及穩定性都達到最高。沒有這些測試用戶的幫助我們不可能做到,謝謝你們的Bug回報!我們想表達我們的謝意並對你們的付出給些獎勵,下面會一一解釋。

最近幾個月除了忙著發佈Unity5.4之外,同時我們也一樣繼續改善Unity 5.3.x讓它繼續堅定的成為現在開發中的專案的一個穩定平台。

快速地瀏覽一下Unity5.4主要改善:

圖形相關和渲染校能提升:

  • 更佳的多緒渲染
  • GPU Instancing用來減少Draw Call - 支援Windows、OSX、Linux、PlayStation4以及Xbox One
  • 改善低階圖形功能:貼圖陣列,計算著色器(Compute Shader)等
美術相關:
  • 得益於新的觸發器模組 - 尺寸控制器,以及光照探頭代理(LPPV)的光照更佳,粒子可以更個性化。
  • 引擎內建支援動態模糊渲染(Motion vector rendering)
VR改善:內建支援更多VR平台且校能表現更好

IL2CPP正式支援Android平台(之前被標記為「體驗版」)

Unity編輯器現在支援Mac Retina高解析螢幕顯示(Windows 的HiDPI支持正在開發中),還加了可縮放Game View的函式(OSX & Windows)

現在支援在Unity編輯器內設定Cloud Build

校能報告(
Performance Reporting)現已完全整合在Unity編輯器中,打個勾不需要安裝任何套件

Analytics分析的主要功能更新,原始數據(raw data)匯出,熱圖(Heatmap),即時串流(Live Stream),並且在面板加入Ads廣告數據

IAP現在支援Amazon商店

移除了目標平台Web Player、PS3,並且不再支持iOS6(現在支持iOS 7.x及以上版本)


下面為大家介紹具體細節

圖形相關和渲染校能提升:


更佳的多緒渲染
Unity 5.4將對多
緒渲染的支援提升了一個等級。它能根據專案和發佈的平台改善專案的幀率。

我們從Unity 5.3就想把粒子、圖片、火焰、光、線條及拖尾等等的渲染運算從主緒移除,在這個基礎上我們導入了並行式命令產生法(parallel command list generation)。不再將這些圖形繪製命令送給用來物理運算及程式使用的主CPU核心,而是分配到其他幾個CPU核心,以便複雜的場景可以更快地執行。

透過GPU Instancing減少Draw Call

Draw Call越少就表示效能越好。透過支援GPU Instancing的硬體來渲染大量相同Shader的物體只需要很少的Draw Call。

目前支援GPU Instancing的平台包括Windows(DX 11/12,Shader Model 4.0及以上),OS X,Linux(OpenGL 4.1及以上),以及PlayStation 4和Xbox One。更多平台支援正在開發中。

上圖的場景包含3種石頭網格。每塊石頭使用同一個材質並調整了顏色。第一個場景使用了有支援Instance的著色器,第二個場景使用內建的標準著色器。執行環境是Unity 5.4 beta,Windows D3D11,CPU 是Intel Core i7-4980HQ@2.8GHz,GPU是nVidia GeForce GT 750M。

改善了底層的圖形功能:貼圖陣列,Computer Shader等


如果你是自己寫Shader的圖形程式設計師,你可以使用2D Texture Array來幫助優化大場景渲染。原理是讓GPU將大小格式相同的2D紋理當作一個物件來處理。


我們還改善了一系列底層的圖形功能。Computer Shader現在可以透過DispatchIndirect串聯在一起,也改善了Compute Buffer計數器,以及用於除錯Computer Shader的除錯信息。使用新的CopyTexture函式可以快速複製貼圖,由於新增了著色器參數所以也能支援Uniform Array。我們在Metal、OpenGL及D3D9平台上實現了Alpha-to-coverage,iOS上可以支援Metal多緒渲染。最後,圖像特效也可以透過新增的ImageEffectAllowedInSceneView屬性作用於場景裡的相機。

美術方面改進:粒子光照更佳,新增動態模糊以及強化Cinematic Image Effect


新的粒子控制


Unity 5.4的粒子包含了新的大小控制,可以獨立控制粒子的寬度和高度,並控制網格粒子的全3D形狀。



我們還推出了新的觸發器模組,用來修改碰撞器列表中的粒子屬性。簡單來說,可以在粒子碰到碰撞體時銷毀粒子,但同樣也可使用自訂的程式Callback函式,現在可以調整所有的粒子屬性。查看下方的效果瞭解它的作用。



透過使用光照探針代理「LPPV」,可以使大量粒子系統的發光效果更加真實。這是一種讓無法取得光照貼圖的動態物體能獲取烘焙光照資料的方式。

LPPV的工作原理是在指定範圍中產生可以指定解析度並帶有插值光探針的3D網格。這樣就可以探測空間光線亮度變化。LPPV不僅僅只對粒子有用,還可用於大量的動態對象。



Cinematic Image Effects以及動態向量(Motion Vector)支援

最後,我們沒忘記 Cinematic Image Effects(像是屏幕空間光線追蹤反射(SSRR),景深(Depth of Field),色調映射(Tonemapping)和顏色分級(Colour Grading)等等),這些特效均已開放在 Asset Store 中下載(也歡迎修改並放到我們的 repo)。 Adam demo中就很好的利用了Cinematic Image Effects效果。



在5.4中,我們也加入了動態向量(Motion vector)支援。
動態向量可以從像素層追蹤每一幀的運動行為,並實現非常棒的後處理效果如動態模糊和反鋸齒(Temporal Anti-Aliasing)。舉個例子,目前Cinematic Image Effects beta版中就利用動態向量實現了非常逼真的動態模糊效果:



支援更多VR平台且效能表現更好

Unity 5.4現已內建支援OpenVR (SteamVR/HTC Vive), Oculus Rift, Gear VR, 和 Playstation VR平台,並針對這些平台進行了渲染優化。只需一個API就可以發佈到多個VR平台,將需要針對平台進行的調整降至最少。

為了達到這個目標,我們重建了VR子系統並清除不同VR設備相同功能的重複程式。在效能方面,我們加入了優化過的單通道立體渲染(Single-Pass Stereo Rendering,之前叫Double Wide Rendering),所以現在兩眼視圖都是單通道渲染,大大提高FPS。

如果想學習如何開始VR開發,可以看看這些教學和相關的免費資源來快速上手。

最後,如同在Google IO上宣佈的,Unity將原生支援新的Daydream平台。如果等不及整合也可到Google開發者網站下載 Google Daydream VR Dev Kit for Unity



IL2CPP支持Android平台

先介紹一下,IL2CPP是Unity的腳本後台,用來將Unity專案中的腳本和組件的IL(中間語言)程式轉換為C++程式,然後利用不同平台原生編譯器進行編譯。最明顯的優點就是改善了Unity運行腳本(遊戲邏輯)的效能。自Unity 5.0開始引入IL2CPP,最初是為支持WebGL而實現的,現在IL2CPP已完全支持iOS、 PS4和PS Vita,同時也在Windows Store/UWP 和 Xbox One上測試。

現在,我們很高興的宣佈IL2CPP已完全支持Android平台了!


更快的WebGL打包時間與WebGL 2.0體驗版
在5.4裡我們花很多精神在縮減WebGL打包時間,通過暫存在IL2CPP訊息並提供可用於開發打包(Development Build)的內建執行組件,現在只需重新構建開發者定義的程式即可。第一次打包仍需花些時間,但後面將是附加打包,因此會更快(你也可以將打包交給Cloud Build,見下文)

Cloud Build現在完全支援WebGL,你可以放心用Cloud Build來開發網頁遊戲。我們很高興能看到開發者採用WebGL作為遊戲的目標平台,例如Unite Europe 2016所分享的 Nordeus將《Top Eleven》移植到WebGL平台的故事。他們對移植到WebGL平台提供了非常有用的建議並且…收益增長了30%。

我們也非常高興宣佈WebGL 2.0在Unity中開放體驗版。儘管WebGL 2.0標準還是草案並未正式應用到目前正式發佈的網頁瀏覽器規範中,你仍可以在Unity中啓用WebGL2.0,並使用Firefox或者 Chrome先行體驗。取消勾選「Auto Graphics API」屬性並在列表上加「WebGL2.0」即可。




Unity編輯器支援Retina模式和可縮放的Game View
如果你是用MAC支援Retina開發遊戲,現在的Unity編輯器效果會更好。對於Windows的HiDPI支援也正在進行中。



另外,如果螢幕解析度太高,也可以對Unity編輯器中的Game View設定縮放來調到比較適合的解析度。OSX及Windows均適用。


Cloud Build現在可以從Unity編輯器中直接設定

使用Cloud Build可以幫你擺脫跨平台編譯及構建的繁瑣流程,加快專案的迭代時間。Unity 5.4可以直接在編輯器中啓用Cloud Build設定。此外還可在編輯器的Services標籤下查看狀態,不需要打開控制頁面。非常方便!


有興趣可以看看這段教學影片

Performance Reporting效能報告已完全整合到Unity編輯器,一個按鈕即可啟用


Unity Performance Reporting用來自動蒐集從不同設備平台的錯誤訊息,以便及時發現並找到問題。在Unity 5.4中,Performance Reporting已完全整合到編輯器中,一次點擊即可啟用,只需幾秒:



錯誤Log會顯示在下方報表中:



這還只是開始。效能報告的目的是為了幫助你更好理解遊戲內部的運作。異常報告是我們發佈的第一個功能,後續還有更多英文。

Analytics分析重要功能更新:收益報告(Revenue reports),即時事件(Real time events),新的Heatmap,原始數據導出(Raw data export)

隨著Unity 5.4發佈,我們也推出了Unity Analytics分析最重要的功能更新。可以在新的分析面板中查看廣告收益和ARPDAU(每日活躍用戶平均收益),使用 Livestream功能(只支援Unity Plus及Unity Pro)追蹤即時遊戲事件,使用新的熱圖來反映遊戲選定的關鍵指標,使用原始數據導出(只支援Unity Pro)功能可以很方便的下載所有的自訂數據分析。


現在Unity IAP(In-App purchasing)支援Amazon商店

我們在Unity IAP中增加了Amazon Appstore的支援。使用Unity IAP服務只需要一個API即可支援多個不同的App商店。


再見了Unity WebPlayer,PS3以及iOS 6

此前已宣佈,由於瀏覽器廠商逐漸不支援,所以Unity 5.3會是最後一個支援Web Player發佈的版本。當然,你也可以繼續使用Unity 5.3.x來發佈Web Player遊戲。或是時候轉向WebGL了!

考慮到iPhone用戶更新iOS最新版本較為即時(《Games by the Numbers 2016 Q2》報告顯示99.2%的iOS遊戲安裝在iOS 7.x或以上版本),這讓我們確認有必要從Unity發佈的目標平台列表中移除iOS 6。

同時,我們也很不捨地宣佈不再支持PS3發佈,以便專注於幫助大家做出更棒的PS4遊戲。

感謝測試用戶參與並提交Bug報告!

感謝參與測試的所有開發者。謝謝大家的努力,花時間升級專案到測試版並回報問題。由於你們用Unity的方式千奇百怪,幫我們解決了最難搞定的復現Bug。

所以,每位回報有效Bug的開發者都將收到一封郵件通知,以及Unity 5.4 beta特製T恤一件。除此之外,我們還會從中抽取100位贈送價值100美元的Asset Store現金券。快去看看信箱!

Unity 5.5測試版即將來臨

Unity 5.5測試版即將發佈,敬請期待。在開始之前可以先看看如何加入Unity測試(英文),或者看看Unity Roadmap來瞭解Unity 5.5的新功能。


想要了解Unity 5.4的所有更新內容,請看更新日誌

沒有留言:

張貼留言

著作人