譯者注:這篇文章只是對接下來知識的概括和梳理,并沒有實際講解技術,故算作第0課,不納入課程序號。實際上蘋果官方也沒有第幾課這種說法,只是譯者方便大家按順序閱讀而設,不必過于糾結。可以將本文當成Metal學習的目錄。
查看原文
關于Metal和本教程
Metal框架支持GPU加速的3D圖像渲染以及數據并行計算工作。Metal為細粒度的、架構上需要操縱低層級的、提交和處理圖像、運算指令等提供了現代化流水線型的API,同時還有對這些指令涉及到的數據及資源的管理工作。Metal的一個主要目的就是降低執行GPU運算帶來的CPU負擔。
驚鴻一瞥
本文檔討論Metal中的一些基本概念:命令提交模型、內存管理模型以及關于圖像著色器和并行數據計算函數的獨立編譯代碼的使用。之后本文檔會詳細介紹如何使用Metal的API來開發app。
你可以在下邊的章節中詳細學習如下知識:
- Metal中的基本概念(譯文)簡單地介紹了Metal的主要功能。
- 命令的組織及執行模型介紹了如何創建并提交命令給GPU,從而使之執行。
- 資源對象:緩沖和紋理討論了設備內存的管理,包含的緩沖及紋理對象這些由GPU分配使用顯存的對象。
-
庫函數
描述了如何在使用了Metal的應用里使用Metal著色器語言(shading language),以及Metal著色器語言代碼是怎么由GPU加載并執行的。 - 圖像渲染:渲染指令編碼器描述了如何渲染3D圖像,包括如何在多線程下分發繪圖操作。
- 并行數據計算處理:運算指令編碼器介紹了如何實現并行數據處理。
- 緩沖和紋理操作:位塊傳送命令編碼器描述了如何在紋理和緩沖區之間拷貝數據。
- Metal工具列出了可以幫你定制或改進開發工作流的一些工具。
- Metal功能設定表列出了Metal中每一項功能的可用性、使用時的限制和支持的像素格式。
- iOS 9和OS X 10.11中的新功能總結了在iOS 9和OS X 10.11中添加的新功能。
- iOS 10、tvOS 10和OS X 10.12中的新功能總結了在iOS 10、tvOS 10和OS X 10.12中添加的新功能。
- 鑲嵌(tessellation)描述了Metal用來鑲嵌圖塊的鑲嵌管線的相關內容,包括使用計算內核、鑲嵌器或后鑲嵌(post-tessellation)頂點函數。
- 資源堆描述了如何在內存堆中子分配(sub-allocate)資源、創建別名并使用柵欄來追蹤它們。
先決條件
你應該熟悉Objective-C語言,并且具有OpenGL、OpenCL或類似API的編程經驗。
參考
Metal框架參考資料是一系列講解Metal框架接口的文檔。
Metal著色器語言指南講解了Metal著色器語言,它在使用了Metal的應用中被用來創建圖像著色器或運算函數。
此外,在蘋果開發者庫中有一些使用了Metal的示例代碼。