- ダウンロード商品無料サンプル版(PDF)¥ 0
- ダウンロード商品電子書籍(PDF) v1.2.3¥ 1,500
- 物販商品(倉庫から発送)ネコポス可能製本版 第5版(v1.2.3)¥ 1,500
- 物販商品(倉庫から発送)ネコポス可能【40%オフ】製本版+電子版セット 第5版(v1.2.3)¥ 1,800
iOS/macOSのGPUインターフェース、Metalの入門書です。GPUを操って高度なグラフィックス処理や大規模な並列演算を行うことにはロマンがありますが、OpenGLやDirectXといった他の低レベルグラフィックスAPIを扱った経験がない開発者にとって、Metalは**一歩目のハードルが一番高い**のではないかと思います。筆者もそんなGPUプログラミング初心者のひとりで、四苦八苦しながら最初の一歩目を乗り越えました。本書では、そんな「非」熟練者である筆者だからこその視点から、Metalをかみくだいて解説します。
製品仕様
- iOS 17, Xcode 15, Swift 5対応。A5版、136ページ - サンプルコードはGitHubよりダウンロード可能 - 電子版は一度購入していただくと今後のアップデート版も無料でダウンロードしていただけます。
読者の方々の評判
ニッチな書籍ですが、読んだ方々には好評をいただいております。 『まだ読み始めたばかりですが、 ここまで初心者にも分かりやすくMetalを解説する本は世界中探してもなかなかないのでは。』 『『Metal入門』は入門書とは思えないほどのボリュームと内容です。』 『同人誌ながらMetalに関して一通り網羅されてる良書。はっきりいって安い。』 『1章2章を読むだけでもかなり価値があると思います。 GPUとCPUが、iPhoneの中でどうなっているのかという全体感を掴めただけでも大きな収穫になりました!』 『このボリュームとわかりやすさで1500円! Metalに興味ある人全員必読では』(※価格は発売当時のものです) 『ちゃんとMetal入門できた気がする!(今まで適当に書いてたけど意味分かって書けてきた気がする)』 『シェーダープログラミングに興味を持つ事があって、そういえばいつかの技術書典でMetal入門とかいうメタリカロゴ風の表紙のカッコいい本あったなと思い出し読んだら面白すぎた。Processingやめます。』 『Metal入門を読み始めて、ちょっとMetalについてわかってきた気になってきた』 『日本語で読める書籍としてはかなり貴重で分かりやすいです。これからMetal触る方はぜひに』 『Metalについての日本語の書籍て中々無かったから有り難い。OpenGLの非推奨を機にMetalを勉強する人に十分にオススメできる。しかも安い』 『内容もわかりやすくMetal初心者で私のようにGPGPUやMPS・画像処理などMetalのすべてを知りたいという人には最適の本だと思いました』 『MTLCommandBuffer,MTLCommandQueue...と新しい用語がたくさんでてくるGPU周りですが,この本のおかげでスッキリ理解できたのかなと思います』 『Apple公式サンプルよりもうまく情報がまとめられており,はじめの一歩としては最適だと思います』 『手探りが続いていたが、本書に出会って一気に理解が進んだ。本家ドキュメントを読む前にまず本書を。』
改訂履歴
- v1.2.3(2023.11.12) -- iOS 17, Xcode 15, Swift 5に対応しました。 - v1.2.2(2020.9.12) -- iOS 14, Xcode 12, Swift 5.2に対応しました。 - v1.2 -- Swift 5に対応しました。 -- 加筆しました:SceneKit×Metal、ARKit×Metalの章 -- その他細かい修正を行いました。 - v1.1: Swift 4.2, iOS 12に対応しました。 - v1.0.1: カバーを修正 - v1.0: 初回リリース
著者プロフィール
京都大学にて電気電子工学、京都大学大学院にて信号処理を学び、NTTデータにて音声処理、キヤノンにて画像処理を専門として研究開発に従事。カヤックにてiOSアプリ開発者としてフルスクラッチで30本以上のアプリを開発しリリースする。その後シリコンバレーの500Startupsのインキュベーションプログラムに参画。現在はサンフランシスコのFyusion社にてシニア・プリンシパルエンジニアとしてH-1Bビザで籍を置きつつ、同時に日本ではフリーランスとして活動中。オープンソース活動も積極的に行い、GitHubの累計スター数は23,000超。 著書 - 『Depth in Depth - iOSデプス詳解』(個人出版/2019) - 『iOSエンジニアのためのmacOSアプリ開発入門』(個人出版/2019) - 『iOS 12 Programming』(PEAKS/2018) - 『実践ARKit』(個人出版/2018-2019) - 『iOS 11 Programming』(PEAKS/2017) - 『iOS×BLE Core Bluetoothプログラミング』(ソシム/2015年) - 『iOSアプリ開発 達人のレシピ100』(秀和システム/2013年)
目次
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デバイスのチップとGPUファミリー - 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 のマテリアルを描画する -- SCNProgramの実装 -- SCNProgramで利用するシェーダの実装 -- SCNProgramで用いるシェーダに数値を渡す -- SCNProgramで用いるシェーダにテクスチャを渡す - 13.2 他のSceneKitとMetalの連携機能 -- SCNTechnique -- shaderModifiers -- SCNRenderer 14章 ARKit × Metal - 14.1 マテリアルをMetalで描画する - 14.2 Metalによるカスタムレンダリング -- 方法1: Metalだけでレンダリングする -- 方法2: SCNRendererを用いてレンダリングする -- 方法3: SceneKitレンダリング + Metalレンダリング 15章 Core Video × Metal - 15.1 Metalでリアルタイム動画処理