35

GitHub - shu223/MetalBook: 日本語初のMetal解説書「Metal入門」のサンプルコードで...

 5 years ago
source link: https://github.com/shu223/MetalBook
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

MetalBook

日本語初のMetal解説書「Metal入門」のサンプルコードです。

書籍の概要

iOS/macOSのGPUインターフェース、Metalの入門書です。 GPUを操って高度なグラフィックス処理や大規模な並列演算を行うことにはロマンがありますが、OpenGLやDirectXといった他の低レベルグラフィックスAPIを扱った経験がない開発者にとって、Metalは一歩目のハードルが一番高いのではないかと思います。筆者もそんなGPUプログラミング初心者のひとりで、四苦八苦しながら最初の一歩目を乗り越えました。 本書では、そんな「非」熟練者である筆者だからこその視点から、Metalをかみくだいて解説します。

全128ページ。iOS 10.3, Xcode 9.3, Swift 4.1対応。

書籍の目次

1章 Metal の概要

2章 Metal の基礎

  • 2.1 Metalの「最初のハードル」
  • 2.2 「背景にある概念」を理解する
  • 2.3 Metalの基本クラスとプロトコル
  • 2.4 MetalKit

3章 入門その1 - 画像を描画する

  • 3.1 描画処理のためのセットアップを行う
  • 3.2 画像をテクスチャとしてロードする
  • 3.3 描画処理を実行する

4章 入門その2 - シェーダを利用する

  • 4.1 Metalシェーダの基礎
  • 4.2 「画面全体を一色に塗る」シェーダの実装
  • 4.3 CPUプログラム側の実装

5章 入門その3 - シェーダでテクスチャを描画する

  • 5.1 テクスチャを扱うシェーダの実装
  • 5.2 テクスチャ内座標データをシェーダに渡す
  • 5.3 テクスチャをシェーダに渡す
  • 5.4 ピクセルフォーマットを合わせる

6章 Metal のハードウェア要件

  • 6.1 歴代iOSデバイスのMetalサポート状況
  • 6.2 MTLFeatureSet
  • 6.3 Metal非対応デバイスの判定

7章 GPGPU プログラミング入門

  • 7.1 コンピュートシェーダ
  • 7.2 スレッドとスレッドグループ
  • 7.3 GPGPUの実装例

8章 MSL 入門

  • 8.1 Metal のグラフィックスレンダリングパイプライン
  • 8.2 .metalファイルと.metallibファイル
  • 8.3 FunctionQualifier(関数修飾子)
  • 8.4 AttributeQualifier(属性修飾子)
  • 8.5 Address Space Qualifiers(アドレス空間修飾子)
  • 8.6 型
  • 8.7 GLSLをMSLに移植する

9章 Metal Performance Shaders

  • 9.1 デバイスがMPSをサポートしているかを確認する
  • 9.2 ガウシアンブラー
  • 9.3 MPSUnaryImageKernelを継承する他の画像処理カーネルクラス
  • 9.4 画像のリサイズ
  • 9.5 画像の転置(行と列の入れ替え)

10章 Metal の最適化

  • 10.1 スレッドグループサイズの最適化
  • 10.2 ArgumentBuffers

11 章 Metal のデバッグ

  • 11.1 GPUフレームキャプチャを有効にする
  • 11.2 Xcode上でGPUの負荷を確認する
  • 11.3 GPUフレームデバッガ
  • 11.4 GPUフレームキャプチャをプログラムから制御
  • 11.5 InstrumentsのMetalSystemTrace
  • 11.6 ラベル
  • 11.7 デバッググループ
  • 11.8 GPUで利用中のメモリサイズを調べる

12 章 Core Image × Metal

  • 12.1 Core ImageとMetalのシームレスな統合
  • 12.2 Core Imageのフィルタ結果をMetalで描画する
  • 12.3 CoreImageのカスタムフィルタをMetalで書く
  • Metalでカーネルを書く利点
  • MSLによるカスタムカーネルの実装
  • Metalカスタムカーネルを利用するためのビルド設定

13 章 SceneKit × Metal

  • 13.1 Metal で SceneKit のマテリアルを描画する
  • 13.2 他のSceneKitとMetalの連携機能

14章 ARKit × Metal

  • 14.1 マテリアルをMetalで描画する
  • 14.2 MetalによるARKitのカスタムレンダリング

15章 Core Video × Metal

  • 15.1 Metalでリアルタイム動画処理

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK