本系列文章是對 metalkit.org 上面MetalKit內容的全面翻譯和學習.
每年六月都是我的最愛,原因很多,但WWDC2016是最重要的原因!觀看開篇keynote
和昨天的Platforms State Of The Union
會議中,透露出很多新特性甚至新框架.在本文中,我們只關注Graphics and Games圖形和遊戲方面.
先從Metal開始.目前,最熱門最期待的特性是支援Tessellation曲面細分,它使3D應用和遊戲通過高效描述複雜幾何體到GPU
來渲染出更多細節.另一個特性是Function Specializatio功能專業化/功能特化,它幫助建立一個特殊優化過的函式的集合來處理材料和燈光在場景中的結合.今年還有一個新功能是Resource Heaps and Memoryless Render Targets資源堆和無記憶渲染目標,來實現iOS
和tvOS
上細粒度的資源分配和效能優化控制.最後,Metal System Trace是macOS
獨佔的特性,可以幫助我們用CPU
和GPU
之間的互動概況來分析圖形管線,這可以幫助我們發現基於Metal的應用的效能優化點.
Model I/O框架帶來了USD檔案格式支援.MDLMaterialPropertyGraph類可以讓我更方便地支援對模型進行執行時程式改變.同時,MDLVoxelArray類新增了對 signed distance fields有符號距離場的支援.最後,你可以通過MDLLightProbeIrradianceDataSource協議新增輔助燈光探頭的旋轉.
GameplayKit框架帶來了Procedural noise generation程式噪聲生成可以用來豐富遊戲世界,更高階的紋理,更真實的攝像機移動.接著,Spatial partitioning空間分割讓我們分割遊戲世界的資料,這樣可以更高效的搜尋.還有Monte Carlo strategist蒙特卡洛策略幫助我們建模遊戲中可能存在移動困難的地方.新的decision tree API決策樹API在採用決策樹學習來產生基於玩家動作資料探勘的行為可以增強我們遊戲內建AI.
ReplayKit框架引入對tvOS的支援,及對broadcasting的支援,所以我們可以通過第三方網站來廣播錄製的媒體了.
SceneKit框架引入了新的Physically Based Rendering基於物理渲染系統,可以讓我們用簡單的資源編輯就建立出更真實的結果.同時,新的HDR特性和效果幫助我們建立更加真實.
SpriteKit框架引入了新的tilemap瓷磚地圖解決方案來支援矩形,六邊形和等軸測瓷磚地圖.Xcode編輯器也提供對瓷磚和瓷磚地圖的支援.
Accelerate框架引入了對quadrature求積分
(積分)的支援,組建神經網路的基本數學函式,及幾何學斷言函式來測試物體交叉.
Core Image框架現在允許我們插入自定義的處理到Core Image
圖形濾鏡中.Core Image
核心程式碼現在可以請求特殊輸出畫素格式了.最後,Core Image
新增了五個新濾鏡來擴充套件濾鏡集合.
敬請關注更多訊息!