ゲーム開発の1つの醍醐味である美麗なCGグラフィックス。
現在はゲームエンジンが担う部分も大きいですが、それを活用するため、またゲーム制作・CGの根幹を理解するために、ゲームグラフィクスの知識が必要となります。
そんな一段上のゲーム開発をするための、「ゲームグラフィックス(CG)」に関する書籍を、人気・高評価のおすすめ本として以下でまとめて紹介していきます。
発売したて・発売予定の新書をピックアップ
技術書は情報の鮮度も重要、人気ランキングの前に新しい書籍もチェックしておきましょう。
- 2021/06/29発売 「Unityゲーム プログラミング・バイブル」
- 2021/08/23発売 「Unity 3Dゲーム開発ではじめるC#プログラミング impress top gearシリーズ」
- 2021/10/12発売 「Direct3D12 ゲームグラフィックス実践ガイド」
- 2021/12/01発売 「HTMLグラフィックスプログラミング―初心者のための画像の操作からゲーム開発まで」
- 2022/08/29発売 「リアルタイムグラフィックスの数学 ― GLSLではじめるシェーダプログラミング」
- ゲームグラフィックスの本 人気ランキング/10冊詳細
- ゲームグラフィックス 2020 CGWORLD特別編集版
- ゲームグラフィックス 2019 CGWORLD特別編集版
- ゲームグラフィックス 2018 CGWORLD特別編集版
- ゲームグラフィックス 2017 CGWORLD特別編集版
- ゲームグラフィックス 2016 CGWORLD特別編集版
- Unity 3Dゲーム開発ではじめるC#プログラミング impress top gearシリーズ
- [増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎] WEB+DB PRESS plus
- [増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎] WEB+DB PRESS plus
- HLSL シェーダーの魔導書 シェーディングの基礎からレイトレーシングまで
- [ゲーム&モダンJavaScript文法で2倍楽しい]グラフィックスプログラミング入門——リアルタイムに動く画面を描く。...
- ゲームグラフィックスの本 最新・高評価のおすすめの5冊
- ゲームグラフィックス参考書「新書一覧(2021年、2022年刊行)」
- ゲームグラフィックス参考書「Kindle Unlimited 読み放題 人気本ランキング」
- 動画編:本より高コスパ?「Udemy ゲームグラフィックス おすすめ講座」
- 関連:ゲーム開発に関する参考書
ゲームグラフィックスの本 人気ランキング/10冊詳細
以下が「ゲームグラフィックスの本」人気ランキングと人気の10冊詳細です。
ランキングはAmazonの書籍売上ランキングに基づき毎日更新されています。
(2023/05/15 12:16 更新)
Rank | 製品 | 価格 |
---|---|---|
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | Unity 3Dゲーム開発ではじめるC#プログラミング impress top gearシリーズ... 発売日 2021/08/23 Harrison Ferrone, 吉川 邦夫 (インプレス) Kindle Unlimited対象 総合評価 | |
7 | ||
8 | ||
9 | ||
10 | [ゲーム&モダンJavaScript文法で2倍楽しい]グラフィックスプログラミング入門——リアルタイムに動く画面を描く。プログラマー直伝の基... 発売日 2020/01/11 杉本 雅広 (技術評論社) 総合評価 | |
11 | [ゲーム&モダンJavaScript文法で2倍楽しい]グラフィックスプログラミング入門——リアルタイムに動く画面を描く。プログラマー直伝の基... 発売日 2020/01/11 杉本 雅広 (技術評論社) 総合評価 | |
12 | ||
13 | ||
14 | ||
15 | ||
16 | ||
17 | ||
18 | ||
19 | ||
20 | ゲームグラフィックス 2013 CGWORLD特別編集版 (Works books) 発売日 2013/09/09 久代 忠史, 高木 貞武, 宮田 悠輔, オガワコウサク(有限会社グリグリ) (ワークスコーポレーション) 総合評価 |
ゲームグラフィックス 2020 CGWORLD特別編集版
3DCG&映像制作の専門誌「CGWORLD」に掲載されたゲームグラフィックス記事を集めた2020年版の事例集! 本年度版は『ポケットモンスター ソード・シールド』『ドラゴンボールZ KAKAROT』をはじめ、コンソールとスマホゲームの注目タイトルを多数掲載しています。表紙は和風ダークファンタジーの傑作『仁王2』、新規描き下ろしビジュアル! 実写と見紛うようなフォトリアルなタイトルからデフォルメの利いたアニメ調のタイトルまで多彩なビジュアルの作品を取り上げており、キャラクターはもちろん、背景やエフェクトなど、各社独自の制作ノウハウを膨大な図版と共に堪能できます。
●収録タイトル
・仁王2
・ポケットモンスター ソード・シールド
・ドラゴンボールZ KAKAROT
・グランブルーファンタジー ヴァーサス
・ソードアート・オンライン アリシゼーション リコリス
・新サクラ大戦
・龍が如く7 光と闇の行方
・ASTRAL CHAIN
・CODE VEIN
・SAMURAI SPIRITS
・BLADE XLORD―ブレイドエクスロード―
・マジカミ
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
●収録タイトル
・仁王2
・ポケットモンスター ソード・シールド
・ドラゴンボールZ KAKAROT
・グランブルーファンタジー ヴァーサス
・ソードアート・オンライン アリシゼーション リコリス
・新サクラ大戦
・龍が如く7 光と闇の行方
・ASTRAL CHAIN
・CODE VEIN
・SAMURAI SPIRITS
・BLADE XLORD―ブレイドエクスロード―
・マジカミ
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
↓全て表示↑少なく表示
内容サンプル


目次
CONSOLE GAME(ドラゴンボールZ KAKAROT
龍が如く7 光と闇の行方
新サクラ大戦
仁王2
ポケットモンスター ソード・シールド
ソードアート・オンライン アリシゼーション リコリス
SAMURAI SPIRITS
ASTRAL CHAIN
グランブルーファンタジー ヴァーサス
CODE VEIN)
SMARTPHONE GAME(BLADE XLORD-ブレイドエクスロードー
マジカミ)
龍が如く7 光と闇の行方
新サクラ大戦
仁王2
ポケットモンスター ソード・シールド
ソードアート・オンライン アリシゼーション リコリス
SAMURAI SPIRITS
ASTRAL CHAIN
グランブルーファンタジー ヴァーサス
CODE VEIN)
SMARTPHONE GAME(BLADE XLORD-ブレイドエクスロードー
マジカミ)
↓全て表示↑少なく表示
Users Voice
内容サンプル


ゲームグラフィックス 2019 CGWORLD特別編集版
3DCG&映像制作の専門誌「CGWORLD」に掲載されたゲームグラフィックス記事を集めた2019年版の事例集! キャラクターから背景まで。モデリング、アニメーション、ライティング、エフェクトなど、各社独自の制作ノウハウがここまでじっくり読めるのは本書だけ。ゲーム開発関係者やゲーム業界を目指す学生にぜひ読んでほしいメイキング資料集です。
●収録タイトル
・デビル メイ クライ 5
・SEKIRO: SHADOWS DIE TWICE
・エースコンバット7 スカイズ・アンノウン
・OCTOPATH TRAVELER
・Fate/Grand Order Arcade
・GOD EATER 3
・少女☆歌劇 レヴュースタァライト -Re LIVE-
・禍つヴァールハイト
・アリス・ギア・アイギス
・アトリエ オンライン ~ブレセイルの錬金術士~
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
●収録タイトル
・デビル メイ クライ 5
・SEKIRO: SHADOWS DIE TWICE
・エースコンバット7 スカイズ・アンノウン
・OCTOPATH TRAVELER
・Fate/Grand Order Arcade
・GOD EATER 3
・少女☆歌劇 レヴュースタァライト -Re LIVE-
・禍つヴァールハイト
・アリス・ギア・アイギス
・アトリエ オンライン ~ブレセイルの錬金術士~
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
↓全て表示↑少なく表示
内容サンプル


目次
FEATURE(デビルメイクライ5
SEKIRO:SHADOWS DIE TWICE
エースコンバット7スカイズ・アンノウン)
PICKUP TITLES(OCTOPATH TRAVELER
Fate
Grand Order Arcade
GOD EATER 3)
SMARTPHONE GAME(少女☆歌劇レヴュースタァライトーRe LIVE-
禍つヴァールハイト
アリス・ギア・アイギス
アトリエオンライン~ブレセイルの錬金術士~)
SEKIRO:SHADOWS DIE TWICE
エースコンバット7スカイズ・アンノウン)
PICKUP TITLES(OCTOPATH TRAVELER
Fate
Grand Order Arcade
GOD EATER 3)
SMARTPHONE GAME(少女☆歌劇レヴュースタァライトーRe LIVE-
禍つヴァールハイト
アリス・ギア・アイギス
アトリエオンライン~ブレセイルの錬金術士~)
↓全て表示↑少なく表示
内容サンプル


ゲームグラフィックス 2018 CGWORLD特別編集版
3DCG&映像制作の専門誌「CGWORLD」に掲載されたゲームグラフィック開発のノウハウを凝縮した2018年版の事例集! 本年度版は『モンスターハンター:ワールド』のグラフィックス制作を、50ページを超える大ボリュームで解説! このほか、人気タイトルを豊富にラインナップしました!
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
内容サンプル


内容サンプル


ゲームグラフィックス 2017 CGWORLD特別編集版
3DCG&映像制作の専門誌「CGWORLD」に掲載されたゲームグラフィック開発のノウハウを凝縮した2017年版の事例集!今年度版では、PS4などの今世代機向けやアーケードゲーム、話題のPS VRまで、人気タイトルを豊富にラインナップしました!
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
内容サンプル


Users Voice
内容サンプル


ゲームグラフィックス 2016 CGWORLD特別編集版
3DCG&映像制作の専門誌「CGWORLD」に掲載されたゲームグラフィック開発のノウハウを凝縮した2016年版の事例集!
今年度版では、PS4などハイスペックな今世代機向けやアーケードの人気タイトルを豊富にラインナップしました!
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
今年度版では、PS4などハイスペックな今世代機向けやアーケードの人気タイトルを豊富にラインナップしました!
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
内容サンプル


目次
Feature(METAL GEAR SOLID 5 THE PHANTOM PAIN)
Game Making(ストリートファイター5
GUILTY GEAR Xrd-REVELATOR-
ガンスリンガーストラトス3
DARK SOULS 3
艦これアーケード
イグジストアーカイヴ
聖闘士星矢ソルジャーズ・ソウル
バイオハザードアンブレラコア
NARUTO-ナルトー疾風伝ナルティメットストーム4)
Game Making(ストリートファイター5
GUILTY GEAR Xrd-REVELATOR-
ガンスリンガーストラトス3
DARK SOULS 3
艦これアーケード
イグジストアーカイヴ
聖闘士星矢ソルジャーズ・ソウル
バイオハザードアンブレラコア
NARUTO-ナルトー疾風伝ナルティメットストーム4)
↓全て表示↑少なく表示
Users Voice
内容サンプル


Unity 3Dゲーム開発ではじめるC#プログラミング impress top gearシリーズ
Unity 3Dゲーム開発ではじめるC#プログラミング impress top gearシリーズ
(著)Harrison Ferrone, 吉川 邦夫
発売日 2021/08/23
(著)Harrison Ferrone, 吉川 邦夫
発売日 2021/08/23
総合評価
(2023/05/15 12:02時点)
シンプルなゲームを作りながら、C#とUnityの概念や基本を理解できる!―Unityは、最も人気の高いゲームエンジンの1つで、開発環境も備えています。本書では、Unityのインストール方法などを示した後、シンプルな3Dゲームを構築しながら、プログラムの構成部品としてC#スクリプトを作成/活用する方法を解説します。前半は変数、メソッド、制御フローなどプログラミングの初級テーマを取り上げます。後半はカメラ制御、衝突、ライティングなどゲーム機構を説明し、さらにコレクションやジェネリックなどプログラミングの中級テーマもカバーします。本書では「実践」「クイズ」といったセクションも設けており、Unityゲーム開発におけるC#の基礎を把握するのに格好の一冊です。―◎制御フローやジェネリック/イベントなど様々なキーポイントをカバー。◎ゲーム機構やUIの実装、C#の中級トピックも把握できる―『Learning C# by Developing Games with Unity 2020, 5th Edition』を翻訳【本書は原著の第5版を翻訳】
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
購入前にお使いの端末で無料サンプルをお試しください。
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
購入前にお使いの端末で無料サンプルをお試しください。
↓全て表示↑少なく表示
内容サンプル


目次
第1章 開発環境を理解しよう
第2章 プログラミングの構成要素
第3章 変数と型とメソッドの世界
第4章 制御の流れとコレクション
第5章 クラスと構造体とOOP
第6章 Unityに挑む
第7章 動きとカメラ制御と衝突
第8章 ゲームのメカニズムを記述する
第9章 基本的なAIと敵の動き
第10章 再び、型とメソッドとクラスについて
第11章 スタックとキューとハッシュセット
第12章 ジェネリック、デリゲート、イベント、例外処理など
第13章 C#とUnityの旅はまだ続く
第2章 プログラミングの構成要素
第3章 変数と型とメソッドの世界
第4章 制御の流れとコレクション
第5章 クラスと構造体とOOP
第6章 Unityに挑む
第7章 動きとカメラ制御と衝突
第8章 ゲームのメカニズムを記述する
第9章 基本的なAIと敵の動き
第10章 再び、型とメソッドとクラスについて
第11章 スタックとキューとハッシュセット
第12章 ジェネリック、デリゲート、イベント、例外処理など
第13章 C#とUnityの旅はまだ続く
↓全て表示↑少なく表示
Users Voice
内容サンプル


著者略歴
フェローネ,ハリソン(Ferrone,Harrison)
フリーランスのソフトウェア開発者、インストラクター、テクニカルエディター。米国イリノイ州シカゴ生まれ。小さなスタートアップ企業やフォーチュン500企業で数年間をiOS開発者として過ごす。現在は、Microsoftで技術文書の作成、LinkedIn LearningやPluralsightで教育用コンテンツの作成、Ray WenderlichのWebサイトで技術編集を行っている。2013年からUnityを使ってゲームやアプリケーションを開発し、2016年からはさまざまな学習プロバイダー向けの教育コンテンツを作成している
吉川邦夫(ヨシカワクニオ)
1957年生まれ。ICU(国際基督教大学)卒。おもに制御系のプログラマとして、ソフトウェア開発に従事した後、翻訳家として独立。英文雑誌記事の和訳なども手掛ける。訳書多数(本データはこの書籍が刊行された当時に掲載されていたものです)
フリーランスのソフトウェア開発者、インストラクター、テクニカルエディター。米国イリノイ州シカゴ生まれ。小さなスタートアップ企業やフォーチュン500企業で数年間をiOS開発者として過ごす。現在は、Microsoftで技術文書の作成、LinkedIn LearningやPluralsightで教育用コンテンツの作成、Ray WenderlichのWebサイトで技術編集を行っている。2013年からUnityを使ってゲームやアプリケーションを開発し、2016年からはさまざまな学習プロバイダー向けの教育コンテンツを作成している
吉川邦夫(ヨシカワクニオ)
1957年生まれ。ICU(国際基督教大学)卒。おもに制御系のプログラマとして、ソフトウェア開発に従事した後、翻訳家として独立。英文雑誌記事の和訳なども手掛ける。訳書多数(本データはこの書籍が刊行された当時に掲載されていたものです)
↓全て表示↑少なく表示
[増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎] WEB+DB PRESS plus
[増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎] WEB+DB PRESS plus
(著)Hisa Ando
発売日 2021/03/18
(著)Hisa Ando
発売日 2021/03/18
総合評価
(2023/05/15 12:16時点)
(概要)
GPUのしくみに焦点を当てた技術解説書。
3Dグラフィックス、AI/マシンラーニング、モバイル、IoT、ゲーム、ARなどの各種分野で、GPUの存在感はますます高まっています。また、科学技術計算の超並列計算にもGPUアクセラレータは重要な役割を担ってきました。それらの背景にあるGPUの特性および昨今の計算処理の要求とはどのようなものでしょうか。
本書では、GPUの今に主眼を置き、ハードウェアおよびソフトウェアの観点の基本事項、並列処理と計算の基礎から、内部構造、技術動向まで徹底解説。NVIDIAをはじめとした実製品の具体例、各分野での採用事例などを幅広く紹介し、現場で役立つ技術知識を厳選収録します。今回の改訂では、マシンラーニングの台頭に伴う性能改善のターゲットの変化と各社の新アーキテクチャの登場、第一線のGPU開発競争の鍵を握るスーパーコンピュータでのGPU採用状況など、今押さえておきたい話題を凝縮してお届けします。
(こんな方におすすめ)
・GPUの技術動向に関心のあるソフトウェアエンジニア、モバイルアプリ開発者、学生の方々
(目次)
第1章 [入門]プロセッサとGPU
1.1 コンピュータシステムと画像表示の基礎 ……フレームバッファ、VRAM、ディスプレイインターフェース
1.2 3Dグラフィックスの歴史 ……文字から図、2D、3Dへ。高品質とリアルタイム
1.3 3Dモデルの作成 ……パネル、座標、配置、光
1.4 CPUとGPUの違い ……プロセッサも適材適所
1.5 ユーザーの身近にあるGPUのバリエーション ……SoC、CPUチップ内蔵、ディスクリートGPU
1.6 GPUとおもな処理方式 ……メモリ空間、描画時のGPUメモリ確保方式、並列処理
1.7 まとめ
第2章 GPUと計算処理の変遷
2.1 グラフィックスとアクセラレータの歴史 ……ゲーム機、PCグラフィックス
2.2 グラフィックスボードの技術 ……2Dの背景+スプライト、BitBLT、2D/2.5D/3Dグラフィックアクセラレータ
2.3 GPUの科学技術計算への応用 ……ユニファイドシェーダ、倍精度浮動小数点演算、プログラミング環境
2.4 並列処理のパラダイム ……基本、MIMD/SIMD/SIMTの違い
2.5 まとめ
第3章 [基礎知識]GPUと計算処理
3.1 3Dグラフィックスの基本 ……OpenGLのレンダリングパイプラインを例に
3.2 グラフィックス処理を行うハードウェアの構造 ……Intel HD Graphics Gen 9 GPUの例
3.3 [速習]ゲームグラフィックスとGPU ……ハードウェアとソフトウェア、進化の軌跡 ・特別寄稿 西川 善司
3.4 科学技術計算、ニューラルネットワークとGPU ……高い演算性能で用途が拡大
3.5 並列計算処理 ……プロセッサのコア数の増加と、計算/プログラムの関係
3.6 GPUの関連ハードウェア ……メモリ容量、バンド幅、CPUとの接続、エラーと対策
3.7 まとめ
第4章 [詳説]GPUの超並列処理
4.1 GPUの並列処理方式 ……SIMDとSIMT
4.2 GPUの構造 ……NVIDIA Turing GPU
4.3 AMDとArmのSIMT方式のGPU ……AMD RDNAアーキテクチャとArm Bifrost GPU
4.4 GPUの使い勝手を改善する最近の技術 ……ユニファイドメモリ、細粒度プリエンプション
4.5 エラーの検出と訂正 ……科学技術計算用途では必須機能
4.6 まとめ
第5章 GPUプログラミングの基本
5.1 GPUの互換性の考え方 ……完全な上位互換は難しい状況
5.2 CUDA ……NVIDIAのGPUプログラミング環境
5.3 OpenCL ……業界標準のGPU計算言語
5.4 GPUプログラムの最適化 ……性能を引き出す
5.5 OpenMPとOpenACC ……ディレクティブを使うGPUプログラミング
5.6 まとめ
第6章 GPUの周辺技術
6.1 GPUのデバイスメモリ ……大量データを高速に供給
6.2 CPUとGPU間のデータ伝送 ……PCI Express関連技術、NVLink、CAPI
6.3 まとめ
第7章 GPU活用の最前線
7.1 ディープラーニングとGPU ……ニューラルネットワークの基本から活用事例まで
7.2 3DグラフィックスとGPU ……広がる3D事例
7.3 スマートフォン向けSoC ……機能向上と電池や消費電力とのバランス
7.4 スーパーコンピュータとGPU ……高い演算性能を求めて
7.5 まとめ
第8章 ディープラーニングの台頭とGPUの進化
8.1 ディープラーニング用のハードウェア ……数値計算の精度と性能
8.2 各社のAIアクセラレータ ……TPU、Tensorコア、Efficiera、Goya/Gaudi、MLプロセッサ、Wafer Scale Engine
8.3 ディープラーニング/マシンラーニングのベンチマーク ……MLPerfの基本
8.4 エクサスパコンとNVIDIA、Intel、AMDの新世代GPU ……最先端のコンピュータが牽引する新技術
8.5 今後のLSI、CPUはどうなっていくのか? ……半導体の進歩、高性能CPU
8.6 GPUはどうなっていくのか ……さらなる進化の方向性
8.7 まとめ
GPUのしくみに焦点を当てた技術解説書。
3Dグラフィックス、AI/マシンラーニング、モバイル、IoT、ゲーム、ARなどの各種分野で、GPUの存在感はますます高まっています。また、科学技術計算の超並列計算にもGPUアクセラレータは重要な役割を担ってきました。それらの背景にあるGPUの特性および昨今の計算処理の要求とはどのようなものでしょうか。
本書では、GPUの今に主眼を置き、ハードウェアおよびソフトウェアの観点の基本事項、並列処理と計算の基礎から、内部構造、技術動向まで徹底解説。NVIDIAをはじめとした実製品の具体例、各分野での採用事例などを幅広く紹介し、現場で役立つ技術知識を厳選収録します。今回の改訂では、マシンラーニングの台頭に伴う性能改善のターゲットの変化と各社の新アーキテクチャの登場、第一線のGPU開発競争の鍵を握るスーパーコンピュータでのGPU採用状況など、今押さえておきたい話題を凝縮してお届けします。
(こんな方におすすめ)
・GPUの技術動向に関心のあるソフトウェアエンジニア、モバイルアプリ開発者、学生の方々
(目次)
第1章 [入門]プロセッサとGPU
1.1 コンピュータシステムと画像表示の基礎 ……フレームバッファ、VRAM、ディスプレイインターフェース
1.2 3Dグラフィックスの歴史 ……文字から図、2D、3Dへ。高品質とリアルタイム
1.3 3Dモデルの作成 ……パネル、座標、配置、光
1.4 CPUとGPUの違い ……プロセッサも適材適所
1.5 ユーザーの身近にあるGPUのバリエーション ……SoC、CPUチップ内蔵、ディスクリートGPU
1.6 GPUとおもな処理方式 ……メモリ空間、描画時のGPUメモリ確保方式、並列処理
1.7 まとめ
第2章 GPUと計算処理の変遷
2.1 グラフィックスとアクセラレータの歴史 ……ゲーム機、PCグラフィックス
2.2 グラフィックスボードの技術 ……2Dの背景+スプライト、BitBLT、2D/2.5D/3Dグラフィックアクセラレータ
2.3 GPUの科学技術計算への応用 ……ユニファイドシェーダ、倍精度浮動小数点演算、プログラミング環境
2.4 並列処理のパラダイム ……基本、MIMD/SIMD/SIMTの違い
2.5 まとめ
第3章 [基礎知識]GPUと計算処理
3.1 3Dグラフィックスの基本 ……OpenGLのレンダリングパイプラインを例に
3.2 グラフィックス処理を行うハードウェアの構造 ……Intel HD Graphics Gen 9 GPUの例
3.3 [速習]ゲームグラフィックスとGPU ……ハードウェアとソフトウェア、進化の軌跡 ・特別寄稿 西川 善司
3.4 科学技術計算、ニューラルネットワークとGPU ……高い演算性能で用途が拡大
3.5 並列計算処理 ……プロセッサのコア数の増加と、計算/プログラムの関係
3.6 GPUの関連ハードウェア ……メモリ容量、バンド幅、CPUとの接続、エラーと対策
3.7 まとめ
第4章 [詳説]GPUの超並列処理
4.1 GPUの並列処理方式 ……SIMDとSIMT
4.2 GPUの構造 ……NVIDIA Turing GPU
4.3 AMDとArmのSIMT方式のGPU ……AMD RDNAアーキテクチャとArm Bifrost GPU
4.4 GPUの使い勝手を改善する最近の技術 ……ユニファイドメモリ、細粒度プリエンプション
4.5 エラーの検出と訂正 ……科学技術計算用途では必須機能
4.6 まとめ
第5章 GPUプログラミングの基本
5.1 GPUの互換性の考え方 ……完全な上位互換は難しい状況
5.2 CUDA ……NVIDIAのGPUプログラミング環境
5.3 OpenCL ……業界標準のGPU計算言語
5.4 GPUプログラムの最適化 ……性能を引き出す
5.5 OpenMPとOpenACC ……ディレクティブを使うGPUプログラミング
5.6 まとめ
第6章 GPUの周辺技術
6.1 GPUのデバイスメモリ ……大量データを高速に供給
6.2 CPUとGPU間のデータ伝送 ……PCI Express関連技術、NVLink、CAPI
6.3 まとめ
第7章 GPU活用の最前線
7.1 ディープラーニングとGPU ……ニューラルネットワークの基本から活用事例まで
7.2 3DグラフィックスとGPU ……広がる3D事例
7.3 スマートフォン向けSoC ……機能向上と電池や消費電力とのバランス
7.4 スーパーコンピュータとGPU ……高い演算性能を求めて
7.5 まとめ
第8章 ディープラーニングの台頭とGPUの進化
8.1 ディープラーニング用のハードウェア ……数値計算の精度と性能
8.2 各社のAIアクセラレータ ……TPU、Tensorコア、Efficiera、Goya/Gaudi、MLプロセッサ、Wafer Scale Engine
8.3 ディープラーニング/マシンラーニングのベンチマーク ……MLPerfの基本
8.4 エクサスパコンとNVIDIA、Intel、AMDの新世代GPU ……最先端のコンピュータが牽引する新技術
8.5 今後のLSI、CPUはどうなっていくのか? ……半導体の進歩、高性能CPU
8.6 GPUはどうなっていくのか ……さらなる進化の方向性
8.7 まとめ
↓全て表示↑少なく表示
内容サンプル


内容サンプル


[増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎] WEB+DB PRESS plus
[増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎] WEB+DB PRESS plus
(著)Hisa Ando
発売日 2021/03/16
(著)Hisa Ando
発売日 2021/03/16
総合評価
(2023/05/15 12:16時点)
(概要)
GPUのしくみに焦点を当てた技術解説書。
3Dグラフィックス、AI/マシンラーニング、モバイル、IoT、ゲーム、ARなどの各種分野で、GPUの存在感はますます高まっています。また、科学技術計算の超並列計算にもGPUアクセラレータは重要な役割を担ってきました。それらの背景にあるGPUの特性および昨今の計算処理の要求とはどのようなものでしょうか。
本書では、GPUの今に主眼を置き、ハードウェアおよびソフトウェアの観点の基本事項、並列処理と計算の基礎から、内部構造、技術動向まで徹底解説。NVIDIAをはじめとした実製品の具体例、各分野での採用事例などを幅広く紹介し、現場で役立つ技術知識を厳選収録します。今回の改訂では、マシンラーニングの台頭に伴う性能改善のターゲットの変化と各社の新アーキテクチャの登場、第一線のGPU開発競争の鍵を握るスーパーコンピュータでのGPU採用状況など、今押さえておきたい話題を凝縮してお届けします。
(こんな方におすすめ)
・GPUの技術動向に関心のあるソフトウェアエンジニア、モバイルアプリ開発者、学生の方々
(目次)
第1章 [入門]プロセッサとGPU
1.1 コンピュータシステムと画像表示の基礎 ……フレームバッファ、VRAM、ディスプレイインターフェース
1.2 3Dグラフィックスの歴史 ……文字から図、2D、3Dへ。高品質とリアルタイム
1.3 3Dモデルの作成 ……パネル、座標、配置、光
1.4 CPUとGPUの違い ……プロセッサも適材適所
1.5 ユーザーの身近にあるGPUのバリエーション ……SoC、CPUチップ内蔵、ディスクリートGPU
1.6 GPUとおもな処理方式 ……メモリ空間、描画時のGPUメモリ確保方式、並列処理
1.7 まとめ
第2章 GPUと計算処理の変遷
2.1 グラフィックスとアクセラレータの歴史 ……ゲーム機、PCグラフィックス
2.2 グラフィックスボードの技術 ……2Dの背景+スプライト、BitBLT、2D/2.5D/3Dグラフィックアクセラレータ
2.3 GPUの科学技術計算への応用 ……ユニファイドシェーダ、倍精度浮動小数点演算、プログラミング環境
2.4 並列処理のパラダイム ……基本、MIMD/SIMD/SIMTの違い
2.5 まとめ
第3章 [基礎知識]GPUと計算処理
3.1 3Dグラフィックスの基本 ……OpenGLのレンダリングパイプラインを例に
3.2 グラフィックス処理を行うハードウェアの構造 ……Intel HD Graphics Gen 9 GPUの例
3.3 [速習]ゲームグラフィックスとGPU ……ハードウェアとソフトウェア、進化の軌跡 ◉特別寄稿 西川 善司
3.4 科学技術計算、ニューラルネットワークとGPU ……高い演算性能で用途が拡大
3.5 並列計算処理 ……プロセッサのコア数の増加と、計算/プログラムの関係
3.6 GPUの関連ハードウェア ……メモリ容量、バンド幅、CPUとの接続、エラーと対策
3.7 まとめ
第4章 [詳説]GPUの超並列処理
4.1 GPUの並列処理方式 ……SIMDとSIMT
4.2 GPUの構造 ……NVIDIA Turing GPU
4.3 AMDとArmのSIMT方式のGPU ……AMD RDNAアーキテクチャとArm Bifrost GPU
4.4 GPUの使い勝手を改善する最近の技術 ……ユニファイドメモリ、細粒度プリエンプション
4.5 エラーの検出と訂正 ……科学技術計算用途では必須機能
4.6 まとめ
第5章 GPUプログラミングの基本
5.1 GPUの互換性の考え方 ……完全な上位互換は難しい状況
5.2 CUDA ……NVIDIAのGPUプログラミング環境
5.3 OpenCL ……業界標準のGPU計算言語
5.4 GPUプログラムの最適化 ……性能を引き出す
5.5 OpenMPとOpenACC ……ディレクティブを使うGPUプログラミング
5.6 まとめ
第6章 GPUの周辺技術
6.1 GPUのデバイスメモリ ……大量データを高速に供給
6.2 CPUとGPU間のデータ伝送 ……PCI Express関連技術、NVLink、CAPI
6.3 まとめ
第7章 GPU活用の最前線
7.1 ディープラーニングとGPU ……ニューラルネットワークの基本から活用事例まで
7.2 3DグラフィックスとGPU ……広がる3D事例
7.3 スマートフォン向けSoC ……機能向上と電池や消費電力とのバランス
7.4 スーパーコンピュータとGPU ……高い演算性能を求めて
7.4 まとめ
第8章 ディープラーニングの台頭とGPUの進化
8.1 ディープラーニング用のハードウェア ……数値計算の精度と性能
8.2 各社のAIアクセラレータ ……TPU、Tensorコア、Efficiera、Goya/Gaudi、MLプロセッサ、Wafer Scale Engine
8.3 ディープラーニング/マシンラーニングのベンチマーク ……MLPerfの基本
8.4 エクサスパコンとNVIDIA、Intel、AMDの新世代GPU ……最先端のコンピュータが牽引する新技術
8.5 今後のLSI、CPUはどうなっていくのか? ……半導体の進歩、高性能CPU
8.6 GPUはどうなっていくのか ……さらなる進化の方向性
8.7 まとめ
GPUのしくみに焦点を当てた技術解説書。
3Dグラフィックス、AI/マシンラーニング、モバイル、IoT、ゲーム、ARなどの各種分野で、GPUの存在感はますます高まっています。また、科学技術計算の超並列計算にもGPUアクセラレータは重要な役割を担ってきました。それらの背景にあるGPUの特性および昨今の計算処理の要求とはどのようなものでしょうか。
本書では、GPUの今に主眼を置き、ハードウェアおよびソフトウェアの観点の基本事項、並列処理と計算の基礎から、内部構造、技術動向まで徹底解説。NVIDIAをはじめとした実製品の具体例、各分野での採用事例などを幅広く紹介し、現場で役立つ技術知識を厳選収録します。今回の改訂では、マシンラーニングの台頭に伴う性能改善のターゲットの変化と各社の新アーキテクチャの登場、第一線のGPU開発競争の鍵を握るスーパーコンピュータでのGPU採用状況など、今押さえておきたい話題を凝縮してお届けします。
(こんな方におすすめ)
・GPUの技術動向に関心のあるソフトウェアエンジニア、モバイルアプリ開発者、学生の方々
(目次)
第1章 [入門]プロセッサとGPU
1.1 コンピュータシステムと画像表示の基礎 ……フレームバッファ、VRAM、ディスプレイインターフェース
1.2 3Dグラフィックスの歴史 ……文字から図、2D、3Dへ。高品質とリアルタイム
1.3 3Dモデルの作成 ……パネル、座標、配置、光
1.4 CPUとGPUの違い ……プロセッサも適材適所
1.5 ユーザーの身近にあるGPUのバリエーション ……SoC、CPUチップ内蔵、ディスクリートGPU
1.6 GPUとおもな処理方式 ……メモリ空間、描画時のGPUメモリ確保方式、並列処理
1.7 まとめ
第2章 GPUと計算処理の変遷
2.1 グラフィックスとアクセラレータの歴史 ……ゲーム機、PCグラフィックス
2.2 グラフィックスボードの技術 ……2Dの背景+スプライト、BitBLT、2D/2.5D/3Dグラフィックアクセラレータ
2.3 GPUの科学技術計算への応用 ……ユニファイドシェーダ、倍精度浮動小数点演算、プログラミング環境
2.4 並列処理のパラダイム ……基本、MIMD/SIMD/SIMTの違い
2.5 まとめ
第3章 [基礎知識]GPUと計算処理
3.1 3Dグラフィックスの基本 ……OpenGLのレンダリングパイプラインを例に
3.2 グラフィックス処理を行うハードウェアの構造 ……Intel HD Graphics Gen 9 GPUの例
3.3 [速習]ゲームグラフィックスとGPU ……ハードウェアとソフトウェア、進化の軌跡 ◉特別寄稿 西川 善司
3.4 科学技術計算、ニューラルネットワークとGPU ……高い演算性能で用途が拡大
3.5 並列計算処理 ……プロセッサのコア数の増加と、計算/プログラムの関係
3.6 GPUの関連ハードウェア ……メモリ容量、バンド幅、CPUとの接続、エラーと対策
3.7 まとめ
第4章 [詳説]GPUの超並列処理
4.1 GPUの並列処理方式 ……SIMDとSIMT
4.2 GPUの構造 ……NVIDIA Turing GPU
4.3 AMDとArmのSIMT方式のGPU ……AMD RDNAアーキテクチャとArm Bifrost GPU
4.4 GPUの使い勝手を改善する最近の技術 ……ユニファイドメモリ、細粒度プリエンプション
4.5 エラーの検出と訂正 ……科学技術計算用途では必須機能
4.6 まとめ
第5章 GPUプログラミングの基本
5.1 GPUの互換性の考え方 ……完全な上位互換は難しい状況
5.2 CUDA ……NVIDIAのGPUプログラミング環境
5.3 OpenCL ……業界標準のGPU計算言語
5.4 GPUプログラムの最適化 ……性能を引き出す
5.5 OpenMPとOpenACC ……ディレクティブを使うGPUプログラミング
5.6 まとめ
第6章 GPUの周辺技術
6.1 GPUのデバイスメモリ ……大量データを高速に供給
6.2 CPUとGPU間のデータ伝送 ……PCI Express関連技術、NVLink、CAPI
6.3 まとめ
第7章 GPU活用の最前線
7.1 ディープラーニングとGPU ……ニューラルネットワークの基本から活用事例まで
7.2 3DグラフィックスとGPU ……広がる3D事例
7.3 スマートフォン向けSoC ……機能向上と電池や消費電力とのバランス
7.4 スーパーコンピュータとGPU ……高い演算性能を求めて
7.4 まとめ
第8章 ディープラーニングの台頭とGPUの進化
8.1 ディープラーニング用のハードウェア ……数値計算の精度と性能
8.2 各社のAIアクセラレータ ……TPU、Tensorコア、Efficiera、Goya/Gaudi、MLプロセッサ、Wafer Scale Engine
8.3 ディープラーニング/マシンラーニングのベンチマーク ……MLPerfの基本
8.4 エクサスパコンとNVIDIA、Intel、AMDの新世代GPU ……最先端のコンピュータが牽引する新技術
8.5 今後のLSI、CPUはどうなっていくのか? ……半導体の進歩、高性能CPU
8.6 GPUはどうなっていくのか ……さらなる進化の方向性
8.7 まとめ
↓全て表示↑少なく表示
内容サンプル


目次
# 第1章 [入門]プロセッサとGPU
## 1.1 コンピュータシステムと画像表示の基礎 ……フレームバッファ、VRAM、ディスプレイインターフェース
◆Column プロセッサの構造と動き
## 1.2 3Dグラフィックスの歴史 ……文字から図、2D、3Dへ。高品質とリアルタイム
## 1.3 3Dモデルの作成 ……パネル、座標、配置、光
## 1.4 CPUとGPUの違い ……プロセッサも適材適所
◆Column 整数と浮動小数点数
GPUは、並列に実行できない処理は苦手
## 1.5 ユーザーの身近にあるGPUのバリエーション ……SoC、CPUチップ内蔵、ディスクリートGPU
## 1.6 GPUとおもな処理方式 ……メモリ空間、描画時のGPUメモリ確保方式、並列処理
## 1.7 まとめ
◆Column プロセッサと半導体の世代 ……24nm世代、16nm世代... 「GxxMxx」表記
# 第2章 GPUと計算処理の変遷
## 2.1 グラフィックスとアクセラレータの歴史 ……ゲーム機、PCグラフィックス
## 2.2 グラフィックスボードの技術 ……2Dの背景+スプライト、BitBLT、2D/2.5D/3Dグラフィックアクセラレータ
## 2.3 GPUの科学技術計算への応用 ……ユニファイドシェーダ、倍精度浮動小数点演算、プログラミング環境
◆Column ムーアの法則と並列プロセッサ
## 2.4 並列処理のパラダイム ……基本、MIMD/SIMD/SIMTの違い
◆Column ARMv7のプレディケート実行機能
## 2.5 まとめ
# 第3章 [基礎知識]GPUと計算処理
## 3.1 3Dグラフィックスの基本 ……OpenGLのレンダリングパイプラインを例に
## 3.2 グラフィックス処理を行うハードウェアの構造 ……Intel HD Graphics Gen 9 GPUの例
## 3.3 [速習]ゲームグラフィックスとGPU ……ハードウェアとソフトウェア、進化の軌跡 ・特別寄稿 西川 善司
## 3.4 科学技術計算、ニューラルネットワークとGPU ……高い演算性能で用途が拡大
## 3.5 並列計算処理 ……プロセッサのコア数の増加と、計算/プログラムの関係
## 3.6 GPUの関連ハードウェア ……メモリ容量、バンド幅、CPUとの接続、エラーと対策
## 3.7 まとめ
# 第4章 [詳説]GPUの超並列処理
## 4.1 GPUの並列処理方式 ……SIMDとSIMT
## 4.2 GPUの構造 ……NVIDIA Turing GPU
◆Column ディープラーニングの計算と演算精度
◆Column RISCとCISC
## 4.3 AMDとArmのSIMT方式のGPU ……AMD RDNAアーキテクチャとArm Bifrost GPU
## 4.4 GPUの使い勝手を改善する最近の技術 ……ユニファイドメモリ、細粒度プリエンプション
## 4.5 エラーの検出と訂正 ……科学技術計算用途では必須機能
◆Column ACEプロトコルとACEメモリバス
## 4.6 まとめ
# 第5章 GPUプログラミングの基本
## 5.1 GPUの互換性の考え方 ……完全な上位互換は難しい状況
## 5.2 CUDA ……NVIDIAのGPUプログラミング環境
## 5.3 OpenCL ……業界標準のGPU計算言語
## 5.4 GPUプログラムの最適化 ……性能を引き出す
## 5.5 OpenMPとOpenACC ……ディレクティブを使うGPUプログラミング
## 5.6 まとめ
# 第6章 GPUの周辺技術
## 6.1 GPUのデバイスメモリ ……大量データを高速に供給
## 6.2 CPUとGPU間のデータ伝送 ……PCI Express関連技術、NVLink、CAPI
## 6.3 まとめ
◆Column AMD HIP
# 第7章 GPU活用の最前線
## 7.1 ディープラーニングとGPU ……ニューラルネットワークの基本から活用事例まで
## 7.2 3DグラフィックスとGPU ……広がる3D事例
## 7.3 スマートフォン向けSoC ……機能向上と電池や消費電力とのバランス
## 7.4 スーパーコンピュータとGPU ……高い演算性能を求めて
## 7.4 まとめ
◆Column Apple M1とそのGPU
# 第8章 ディープラーニングの台頭とGPUの進化
## 8.1 ディープラーニング用のハードウェア ……数値計算の精度と性能
## 8.2 各社のAIアクセラレータ ……TPU、Tensorコア、Efficiera、Goya/Gaudi、MLプロセッサ、Wafer Scale Engine
◆Column RoCE ……Remote DMA on Converged Ethernet
## 8.3 ディープラーニング/マシンラーニングのベンチマーク ……MLPerfの基本
## 8.4 エクサスパコンとNVIDIA、Intel、AMDの新世代GPU ……最先端のコンピュータが牽引する新技術
## 8.5 今後のLSI、CPUはどうなっていくのか? ……半導体の進歩、高性能CPU
## 8.6 GPUはどうなっていくのか ……さらなる進化の方向性
## 8.7 まとめ
## 1.1 コンピュータシステムと画像表示の基礎 ……フレームバッファ、VRAM、ディスプレイインターフェース
◆Column プロセッサの構造と動き
## 1.2 3Dグラフィックスの歴史 ……文字から図、2D、3Dへ。高品質とリアルタイム
## 1.3 3Dモデルの作成 ……パネル、座標、配置、光
## 1.4 CPUとGPUの違い ……プロセッサも適材適所
◆Column 整数と浮動小数点数
GPUは、並列に実行できない処理は苦手
## 1.5 ユーザーの身近にあるGPUのバリエーション ……SoC、CPUチップ内蔵、ディスクリートGPU
## 1.6 GPUとおもな処理方式 ……メモリ空間、描画時のGPUメモリ確保方式、並列処理
## 1.7 まとめ
◆Column プロセッサと半導体の世代 ……24nm世代、16nm世代... 「GxxMxx」表記
# 第2章 GPUと計算処理の変遷
## 2.1 グラフィックスとアクセラレータの歴史 ……ゲーム機、PCグラフィックス
## 2.2 グラフィックスボードの技術 ……2Dの背景+スプライト、BitBLT、2D/2.5D/3Dグラフィックアクセラレータ
## 2.3 GPUの科学技術計算への応用 ……ユニファイドシェーダ、倍精度浮動小数点演算、プログラミング環境
◆Column ムーアの法則と並列プロセッサ
## 2.4 並列処理のパラダイム ……基本、MIMD/SIMD/SIMTの違い
◆Column ARMv7のプレディケート実行機能
## 2.5 まとめ
# 第3章 [基礎知識]GPUと計算処理
## 3.1 3Dグラフィックスの基本 ……OpenGLのレンダリングパイプラインを例に
## 3.2 グラフィックス処理を行うハードウェアの構造 ……Intel HD Graphics Gen 9 GPUの例
## 3.3 [速習]ゲームグラフィックスとGPU ……ハードウェアとソフトウェア、進化の軌跡 ・特別寄稿 西川 善司
## 3.4 科学技術計算、ニューラルネットワークとGPU ……高い演算性能で用途が拡大
## 3.5 並列計算処理 ……プロセッサのコア数の増加と、計算/プログラムの関係
## 3.6 GPUの関連ハードウェア ……メモリ容量、バンド幅、CPUとの接続、エラーと対策
## 3.7 まとめ
# 第4章 [詳説]GPUの超並列処理
## 4.1 GPUの並列処理方式 ……SIMDとSIMT
## 4.2 GPUの構造 ……NVIDIA Turing GPU
◆Column ディープラーニングの計算と演算精度
◆Column RISCとCISC
## 4.3 AMDとArmのSIMT方式のGPU ……AMD RDNAアーキテクチャとArm Bifrost GPU
## 4.4 GPUの使い勝手を改善する最近の技術 ……ユニファイドメモリ、細粒度プリエンプション
## 4.5 エラーの検出と訂正 ……科学技術計算用途では必須機能
◆Column ACEプロトコルとACEメモリバス
## 4.6 まとめ
# 第5章 GPUプログラミングの基本
## 5.1 GPUの互換性の考え方 ……完全な上位互換は難しい状況
## 5.2 CUDA ……NVIDIAのGPUプログラミング環境
## 5.3 OpenCL ……業界標準のGPU計算言語
## 5.4 GPUプログラムの最適化 ……性能を引き出す
## 5.5 OpenMPとOpenACC ……ディレクティブを使うGPUプログラミング
## 5.6 まとめ
# 第6章 GPUの周辺技術
## 6.1 GPUのデバイスメモリ ……大量データを高速に供給
## 6.2 CPUとGPU間のデータ伝送 ……PCI Express関連技術、NVLink、CAPI
## 6.3 まとめ
◆Column AMD HIP
# 第7章 GPU活用の最前線
## 7.1 ディープラーニングとGPU ……ニューラルネットワークの基本から活用事例まで
## 7.2 3DグラフィックスとGPU ……広がる3D事例
## 7.3 スマートフォン向けSoC ……機能向上と電池や消費電力とのバランス
## 7.4 スーパーコンピュータとGPU ……高い演算性能を求めて
## 7.4 まとめ
◆Column Apple M1とそのGPU
# 第8章 ディープラーニングの台頭とGPUの進化
## 8.1 ディープラーニング用のハードウェア ……数値計算の精度と性能
## 8.2 各社のAIアクセラレータ ……TPU、Tensorコア、Efficiera、Goya/Gaudi、MLプロセッサ、Wafer Scale Engine
◆Column RoCE ……Remote DMA on Converged Ethernet
## 8.3 ディープラーニング/マシンラーニングのベンチマーク ……MLPerfの基本
## 8.4 エクサスパコンとNVIDIA、Intel、AMDの新世代GPU ……最先端のコンピュータが牽引する新技術
## 8.5 今後のLSI、CPUはどうなっていくのか? ……半導体の進歩、高性能CPU
## 8.6 GPUはどうなっていくのか ……さらなる進化の方向性
## 8.7 まとめ
↓全て表示↑少なく表示
Users Voice
内容サンプル


著者略歴
↓全て表示↑少なく表示
HLSL シェーダーの魔導書 シェーディングの基礎からレイトレーシングまで
光を自在に操るための
基本の技術を手に入れろ。
DirectXだけでなくUnityでも使われているシェーダー言語HLSL。
本書は、グラフィックスプログラマやテクニカルアーティストをめざす人が、
ハンズオン形式の豊富なサンプルを使って、3Dグラフィックを演出するシェーディング技術を
学ぶための教科書です。
本書では、サンプルプログラムとして、DirectX 12のコーディングをほとんど意識せず、
HLSLプログラミングに集中できるようなミニエンジンが提供されます。
シェーダーの基礎であるレンダリングパイプラインから、最新技術であるレイトレーシングまで、
本書を読めば、あなたもグラフィックスプログラマの仲間入りです!
~本書の内容~
・Chapter 1:レンダリングパイプライン入門
・Chapter 2:はじめてのシェーダー
・Chapter 3:シェーダープログラミングの基本(2)
・Chapter 4:ライティング基礎
・Chapter 5:ライティング発展
・Chapter 6:さまざまなテクスチャの利用
・Chapter 7:PBR(物理ベースレンダリング)
・Chapter 8:2D描画の基礎
・Chapter 9:発展的な2D描画
・Chapter 10:ポストエフェクト
・Chapter 11:シャドウイング
・Chapter 12:ディファードレンダリング
・Chapter 13:ディファードレンダリングとフォワードレンダリングの融合
・Chapter 14:3Dゲームで使える発展的シェーダー
・Chapter 15:コンピュートシェーダー
・Chapter 16:TBR(Tile Based Rendering)
・Chapter 17:レイトレーシング
基本の技術を手に入れろ。
DirectXだけでなくUnityでも使われているシェーダー言語HLSL。
本書は、グラフィックスプログラマやテクニカルアーティストをめざす人が、
ハンズオン形式の豊富なサンプルを使って、3Dグラフィックを演出するシェーディング技術を
学ぶための教科書です。
本書では、サンプルプログラムとして、DirectX 12のコーディングをほとんど意識せず、
HLSLプログラミングに集中できるようなミニエンジンが提供されます。
シェーダーの基礎であるレンダリングパイプラインから、最新技術であるレイトレーシングまで、
本書を読めば、あなたもグラフィックスプログラマの仲間入りです!
~本書の内容~
・Chapter 1:レンダリングパイプライン入門
・Chapter 2:はじめてのシェーダー
・Chapter 3:シェーダープログラミングの基本(2)
・Chapter 4:ライティング基礎
・Chapter 5:ライティング発展
・Chapter 6:さまざまなテクスチャの利用
・Chapter 7:PBR(物理ベースレンダリング)
・Chapter 8:2D描画の基礎
・Chapter 9:発展的な2D描画
・Chapter 10:ポストエフェクト
・Chapter 11:シャドウイング
・Chapter 12:ディファードレンダリング
・Chapter 13:ディファードレンダリングとフォワードレンダリングの融合
・Chapter 14:3Dゲームで使える発展的シェーダー
・Chapter 15:コンピュートシェーダー
・Chapter 16:TBR(Tile Based Rendering)
・Chapter 17:レイトレーシング
↓全て表示↑少なく表示
内容サンプル


目次
Chapter 1 レンダリングパイプライン入門
1.1 CPUとGPU
1.2 メインメモリとグラフィックスメモリ
1.3 絵が表示されるまでの流れ
Chapter 2 はじめてのシェーダー
2.1 DirectX 7.1以前のレンダリングパイプライン
2.2 シェーダーの導入
2.3 頂点シェーダー入門
2.4 ピクセルシェーダー入門
Chapter 3 シェーダープログラミングの基本
3.1 座標変換
3.2 テクスチャマッピング
3.3 複雑な3Dモデルの表示へ
Chapter 4 ライティング基礎
4.1 ライティングなしの3Dモデル表示
4.2 ライトの種類
4.3 反射:Phongの反射モデル
Chapter 5 ライティング発展
5.1 ポイントライト
5.2 スポットライト
5.3 リムライト
5.4 半球ライト
Chapter 6 さまざまなテクスチャの利用
6.1 法線マップ
6.2 スペキュラマップ
6.3 アンビエントオクルージョンマップ(AOマップ)
Chapter 7 PBR(物理ベースレンダリング)
7.1 PBRとは
7.2 ディズニーの論文によるPBR
Chapter 8 2D描画の基礎
8.1 DirectX 12で2D描画
8.2 2D表示
8.3 αブレンディング
Chapter 9 発展的な2D描画
9.1 リニアワイプ
9.2 その他のワイプ
9.3 画像の色を変化させる
Chapter 10 ポストエフェクト
10.1 オフスクリーンレンダリング
10.2 モノクロ化
10.3 ブラー
10.4 ブルーム
10.5 川瀬式ブルームフィルター
10.6 被写界深度
10.7 カメラの絞りによる六角形ブラー
Chapter 11 シャドウイング
11.1 投影シャドウ
11.2 デプスシャドウ
11.3 PCF(Percentage Closer Filtering)
11.4 VSM(Variance Shadow Maps)
11.5 カスケードシャドウ
Chapter 12 ディファードレンダリング
12.1 フォワードレンダリングとは
12.2 ディファードレンダリングとは
12.3 ディファードレンダリングのメリット
12.4 ディファードレンダリングのデメリット
12.5 ディファードレンダリング入門~拡散反射~
12.6 ディファードレンダリング入門~鏡面反射~
12.7 ディファードレンダリング入門~法線マップ~
12.8 ディファードレンダリング入門~スペキュラマップ~
Chapter 13 ディファードレンダリングとフォワードレンダリングの融合
13.1 半透明問題
13.2 ハイブリッドエンジンの実装
Chapter 14 3Dゲームで使える発展的シェーダー
14.1 レンダリングエンジン
14.2 レンダリングエンジンのカスタマイズ
14.3 輪郭線の描画
14.4 ステルス処理
14.5 ディザリング
Chapter 15 コンピュートシェーダー
15.1 GPGPUとは
15.2 コンピュートシェーダーとは
15.3 データの入力と出力
15.4 構造化バッファー
15.5 アンオーダーアクセスビューとシェーダーリソースビュー
15.6 学生の平均点を計算するプログラムを眺めてみる
15.7 合計点を出力するように改造する
15.8 標準偏差を計算する
15.9 コンピュートシェーダーの並列処理
Chapter 16 TBR(Tile Based Rendering)
16.1 ポイントライト再び
16.2 TBDR(Tile Based Deffered Rendering)
16.3 TBFR(Tile Based Forward Rendering)
Chapter 17 レイトレーシング
17.1 レイトレーシングとは
17.2 レイトレーシング法とラスタライザー法の違い
17.3 レイトレーシング超入門
17.4 テクスチャマッピング
17.5 2次反射
17.6 DirectX Raytracing(DXR)
1.1 CPUとGPU
1.2 メインメモリとグラフィックスメモリ
1.3 絵が表示されるまでの流れ
Chapter 2 はじめてのシェーダー
2.1 DirectX 7.1以前のレンダリングパイプライン
2.2 シェーダーの導入
2.3 頂点シェーダー入門
2.4 ピクセルシェーダー入門
Chapter 3 シェーダープログラミングの基本
3.1 座標変換
3.2 テクスチャマッピング
3.3 複雑な3Dモデルの表示へ
Chapter 4 ライティング基礎
4.1 ライティングなしの3Dモデル表示
4.2 ライトの種類
4.3 反射:Phongの反射モデル
Chapter 5 ライティング発展
5.1 ポイントライト
5.2 スポットライト
5.3 リムライト
5.4 半球ライト
Chapter 6 さまざまなテクスチャの利用
6.1 法線マップ
6.2 スペキュラマップ
6.3 アンビエントオクルージョンマップ(AOマップ)
Chapter 7 PBR(物理ベースレンダリング)
7.1 PBRとは
7.2 ディズニーの論文によるPBR
Chapter 8 2D描画の基礎
8.1 DirectX 12で2D描画
8.2 2D表示
8.3 αブレンディング
Chapter 9 発展的な2D描画
9.1 リニアワイプ
9.2 その他のワイプ
9.3 画像の色を変化させる
Chapter 10 ポストエフェクト
10.1 オフスクリーンレンダリング
10.2 モノクロ化
10.3 ブラー
10.4 ブルーム
10.5 川瀬式ブルームフィルター
10.6 被写界深度
10.7 カメラの絞りによる六角形ブラー
Chapter 11 シャドウイング
11.1 投影シャドウ
11.2 デプスシャドウ
11.3 PCF(Percentage Closer Filtering)
11.4 VSM(Variance Shadow Maps)
11.5 カスケードシャドウ
Chapter 12 ディファードレンダリング
12.1 フォワードレンダリングとは
12.2 ディファードレンダリングとは
12.3 ディファードレンダリングのメリット
12.4 ディファードレンダリングのデメリット
12.5 ディファードレンダリング入門~拡散反射~
12.6 ディファードレンダリング入門~鏡面反射~
12.7 ディファードレンダリング入門~法線マップ~
12.8 ディファードレンダリング入門~スペキュラマップ~
Chapter 13 ディファードレンダリングとフォワードレンダリングの融合
13.1 半透明問題
13.2 ハイブリッドエンジンの実装
Chapter 14 3Dゲームで使える発展的シェーダー
14.1 レンダリングエンジン
14.2 レンダリングエンジンのカスタマイズ
14.3 輪郭線の描画
14.4 ステルス処理
14.5 ディザリング
Chapter 15 コンピュートシェーダー
15.1 GPGPUとは
15.2 コンピュートシェーダーとは
15.3 データの入力と出力
15.4 構造化バッファー
15.5 アンオーダーアクセスビューとシェーダーリソースビュー
15.6 学生の平均点を計算するプログラムを眺めてみる
15.7 合計点を出力するように改造する
15.8 標準偏差を計算する
15.9 コンピュートシェーダーの並列処理
Chapter 16 TBR(Tile Based Rendering)
16.1 ポイントライト再び
16.2 TBDR(Tile Based Deffered Rendering)
16.3 TBFR(Tile Based Forward Rendering)
Chapter 17 レイトレーシング
17.1 レイトレーシングとは
17.2 レイトレーシング法とラスタライザー法の違い
17.3 レイトレーシング超入門
17.4 テクスチャマッピング
17.5 2次反射
17.6 DirectX Raytracing(DXR)
↓全て表示↑少なく表示
Users Voice
内容サンプル


著者略歴
清原隆行(キヨハラタカユキ)
大阪のゲーム開発会社で13年間勤務し、国内だけでなく、海外のゲーム制作にも関わる。主にC++、DirectX、OpenGLなどを利用したコンソールゲーム機のゲーム制作で、ゲームAI、開発ツール制作、DirectXを用いたリアルタイムグラフィックプログラム、最適化などの業務を行ってきた。現在は、愛媛県のゲーム系の専門学校で、主にゲーム制作とCGプログラミングの授業を担当し、後進の育成に取り組んでいる(本データはこの書籍が刊行された当時に掲載されていたものです)
大阪のゲーム開発会社で13年間勤務し、国内だけでなく、海外のゲーム制作にも関わる。主にC++、DirectX、OpenGLなどを利用したコンソールゲーム機のゲーム制作で、ゲームAI、開発ツール制作、DirectXを用いたリアルタイムグラフィックプログラム、最適化などの業務を行ってきた。現在は、愛媛県のゲーム系の専門学校で、主にゲーム制作とCGプログラミングの授業を担当し、後進の育成に取り組んでいる(本データはこの書籍が刊行された当時に掲載されていたものです)
↓全て表示↑少なく表示
[ゲーム&モダンJavaScript文法で2倍楽しい]グラフィックスプログラミング入門——リアルタイムに動く画面を描く。...
[ゲーム&モダンJavaScript文法で2倍楽しい]グラフィックスプログラミング入門——リアルタイムに動く画面を描く。プログラマー直伝の基本 WEB+DB PRESS plus
(著)杉本 雅広
発売日 2020/01/11
(著)杉本 雅広
発売日 2020/01/11
総合評価
(2023/05/15 12:05時点)
こちらの書籍は 2020/10/28 紙版の2刷に対応するため更新をおこないました。
(概要)
楽しく遊べる2Dゲームの開発を進めながら、グラフィックスプログラミングの基本が学べる入門書。
一度習得すると、ゲームや映像生成、動的可視化をはじめ、幅広い分野で長く役立つグラフィックスプログラミングの基礎。
本書では、リアルタイムに動く画像を描くために求められる技術や考え方を平易に解説します。
開発言語として、エディタとブラウザがあれば開発ができるJavaScriptを採用し、すぐにスタートできる構成が特徴です。
豊富な図解に加え、いまどきのJavaScript(ES2015準拠)の基本文法、これだけは知っておきたい数学知識も厳選収録。
一線の開発者による、現場で活かせるやさしい実践解説です。
(こんな方におすすめ)
・コンピューターグラフィックスとそのプログラミングに興味をお持ちの方々
・広くグラフィックスというテーマに取り組んでいる学生の方々
・ゲーム開発やWeb開発にまつわる知識を、土台から強化していきたい方々
(目次)
第1章 [入門]グラフィックスプログラミング ……長く役立つ基礎の基礎
1.1 グラフィックスとグラフィックスプログラミングの基本 ……CG、2D、3D、画素
1.2 グラフィックスプログラミングの分類 ……活躍の舞台は広い
1.3 グラフィックスプログラミングと技術 ……原則、プログラミング言語、API
1.4 本章のまとめ
第2章 [グラフィックスプログラミングで役立つ]JavaScript/ES2015入門 ……開発環境から文法基礎まで
2.1 本書における開発言語と開発環境 ……JavaScript、Chrome、Windows&macOS
2.2 サンプルと実行環境について ……ファイル構成、ブラウザ&開発ツール
2.3 [グラフィックスプログラミングのための]JavaScript/ES2015の基本 ……基本操作、変数、関数、オブジェクト、演算子
2.4 本章のまとめ
第3章 [基礎]グラフィックスプログラミングと数学 ……三角関数、線型代数、乱数&補間
3.1 角度と三角関数 ……ラジアン、sin(サイン)、cos(コサイン)
3.2 ベクトルと行列 ……点から始める線型代数
3.3 乱数/擬似乱数と補間&イージング ……グラフィックスプログラミングに役立つ数学関連知識
3.4 本章のまとめ
第4章 Canvas2Dから学べる基本 ……Canvas2Dコンテキストと描画命令
4.1 Canvas2Dの基礎知識 ……コンテキストオブジェクト、Document Object Model
4.2 Canvas2Dの基本プリミティブ ……矩形、線、多角形、円、円弧、ベジェ曲線...
4.3 Canvas2Dコンテキストの描画効果&演出機能 ……テキスト、ドロップシャドウ、グラデーション、パターン、アルファブレンディング、コンポジットオペレーション
4.4 本章のまとめ
第5章 ユーザーインタラクションのプログラミング ……ゼロから作るシューティングゲーム❶
5.1 [まずは準備から]シューティングゲームを作る ……ファイル構成とルール
5.2 ゲームの骨格を作る ……土台となるプログラムの設計
5.3 本章のまとめ
第6章 キャラクターと動きのプログラミング ……ゼロから作るシューティングゲーム❷
6.1 キャラクターの実装 ……キャラクター管理クラス、キーの入力によるインタラクティブな移動
6.2 ショットの実装 ……大量ショットのインスタンス、程良い速度、回転描画
6.3 敵キャラクターの実装 ……敵キャラクターの配置、シーン管理&更新、敵キャラクターのタイプ
6.4 本章のまとめ
第7章 状態に応じた判定や演出のプログラミング ……ゼロから作るシューティングゲーム❸
7.1 衝突判定 ……オブジェクト同士の衝突、エフェクト、補間関数/イージング関数
7.2 自機キャラクターの状態に応じた処理 ……ライフの減算、ゲームオーバーの演出、再スタート
7.3 ゲームの品質向上 ……スコア、敵キャラの攻撃力&耐久力、シーン管理、背景、音声、ボスキャラ
7.4 本章のまとめ
第8章 ピクセルと色のプログラミング ピクセルを塗る操作と感覚
8.1 [再入門]グラフィックスを構成するピクセル ……ピクセルと画像処理
8.2 Canvas APIでピクセルを直接操作する ……ピクセル操作の窓口「ImageData」
8.3 画像処理プログラミングの基本テクニック ……ネガポジ反転、グレースケール、2値化、エッジ検出、ノイズ除去、モザイク
8.4 本章のまとめ
(概要)
楽しく遊べる2Dゲームの開発を進めながら、グラフィックスプログラミングの基本が学べる入門書。
一度習得すると、ゲームや映像生成、動的可視化をはじめ、幅広い分野で長く役立つグラフィックスプログラミングの基礎。
本書では、リアルタイムに動く画像を描くために求められる技術や考え方を平易に解説します。
開発言語として、エディタとブラウザがあれば開発ができるJavaScriptを採用し、すぐにスタートできる構成が特徴です。
豊富な図解に加え、いまどきのJavaScript(ES2015準拠)の基本文法、これだけは知っておきたい数学知識も厳選収録。
一線の開発者による、現場で活かせるやさしい実践解説です。
(こんな方におすすめ)
・コンピューターグラフィックスとそのプログラミングに興味をお持ちの方々
・広くグラフィックスというテーマに取り組んでいる学生の方々
・ゲーム開発やWeb開発にまつわる知識を、土台から強化していきたい方々
(目次)
第1章 [入門]グラフィックスプログラミング ……長く役立つ基礎の基礎
1.1 グラフィックスとグラフィックスプログラミングの基本 ……CG、2D、3D、画素
1.2 グラフィックスプログラミングの分類 ……活躍の舞台は広い
1.3 グラフィックスプログラミングと技術 ……原則、プログラミング言語、API
1.4 本章のまとめ
第2章 [グラフィックスプログラミングで役立つ]JavaScript/ES2015入門 ……開発環境から文法基礎まで
2.1 本書における開発言語と開発環境 ……JavaScript、Chrome、Windows&macOS
2.2 サンプルと実行環境について ……ファイル構成、ブラウザ&開発ツール
2.3 [グラフィックスプログラミングのための]JavaScript/ES2015の基本 ……基本操作、変数、関数、オブジェクト、演算子
2.4 本章のまとめ
第3章 [基礎]グラフィックスプログラミングと数学 ……三角関数、線型代数、乱数&補間
3.1 角度と三角関数 ……ラジアン、sin(サイン)、cos(コサイン)
3.2 ベクトルと行列 ……点から始める線型代数
3.3 乱数/擬似乱数と補間&イージング ……グラフィックスプログラミングに役立つ数学関連知識
3.4 本章のまとめ
第4章 Canvas2Dから学べる基本 ……Canvas2Dコンテキストと描画命令
4.1 Canvas2Dの基礎知識 ……コンテキストオブジェクト、Document Object Model
4.2 Canvas2Dの基本プリミティブ ……矩形、線、多角形、円、円弧、ベジェ曲線...
4.3 Canvas2Dコンテキストの描画効果&演出機能 ……テキスト、ドロップシャドウ、グラデーション、パターン、アルファブレンディング、コンポジットオペレーション
4.4 本章のまとめ
第5章 ユーザーインタラクションのプログラミング ……ゼロから作るシューティングゲーム❶
5.1 [まずは準備から]シューティングゲームを作る ……ファイル構成とルール
5.2 ゲームの骨格を作る ……土台となるプログラムの設計
5.3 本章のまとめ
第6章 キャラクターと動きのプログラミング ……ゼロから作るシューティングゲーム❷
6.1 キャラクターの実装 ……キャラクター管理クラス、キーの入力によるインタラクティブな移動
6.2 ショットの実装 ……大量ショットのインスタンス、程良い速度、回転描画
6.3 敵キャラクターの実装 ……敵キャラクターの配置、シーン管理&更新、敵キャラクターのタイプ
6.4 本章のまとめ
第7章 状態に応じた判定や演出のプログラミング ……ゼロから作るシューティングゲーム❸
7.1 衝突判定 ……オブジェクト同士の衝突、エフェクト、補間関数/イージング関数
7.2 自機キャラクターの状態に応じた処理 ……ライフの減算、ゲームオーバーの演出、再スタート
7.3 ゲームの品質向上 ……スコア、敵キャラの攻撃力&耐久力、シーン管理、背景、音声、ボスキャラ
7.4 本章のまとめ
第8章 ピクセルと色のプログラミング ピクセルを塗る操作と感覚
8.1 [再入門]グラフィックスを構成するピクセル ……ピクセルと画像処理
8.2 Canvas APIでピクセルを直接操作する ……ピクセル操作の窓口「ImageData」
8.3 画像処理プログラミングの基本テクニック ……ネガポジ反転、グレースケール、2値化、エッジ検出、ノイズ除去、モザイク
8.4 本章のまとめ
↓全て表示↑少なく表示
内容サンプル


目次
■第1章 [入門]グラフィックスプログラミング ……長く役立つ基礎の基礎
■■1.1 グラフィックスとグラフィックスプログラミングの基本 ……CG、2D、3D、画素
■■■コンピューターグラフィックス ……コンピューターによって描き出されたグラフィックス
■■■2Dと3D ……グラフィックスの生成手順やデータ管理方法が違うだけ
■■■グラフィックスを構成するもの ……出力先は「画素」の集まり
■■■グラフィックスプログラミングの課題や目的 ……画素をどう塗りつぶすか
■■1.2 グラフィックスプログラミングの分類 ……活躍の舞台は広い
■■■情報を伝えるためのグラフィックス
■■■情報を正しく理解するためのグラフィックス
■■■エンターテイメントとしてのグラフィックス
■■■アートとしてのグラフィックス
■■1.3 グラフィックスプログラミングと技術 ……原則、プログラミング言語、API
■■■グラフィックスプログラミングの原則
■■■グラフィックスプログラミングと、プログラミング言語&ツール ……手軽にグラフィックスを生成する選択肢
■■■■Processingでできること
■■■■ゲームエンジンから学び始める
■■■■ツールと基礎/原理の学習
■■■グラフィックスAPI ……DirectX、OpenGL、OpenGL ES
■■■■[まとめ]DirectXとOpenGLの特徴
■■■グラフィックスAPIを利用するアプリケーション
●Column Metal、Vulkan ……AppleとKhronos Groupのその他のグラフィックスAPI
■■■Webとグラフィックス ……JavaScriptと動的なグラフィックス生成機能
■■■JavaScriptとWebブラウザによる効率的な学習の実現
■■■JavaScriptのメリットを活かす ……本書の構成と解説の流れ
■■1.4 本章のまとめ
■第2章 [グラフィックスプログラミングで役立つ]JavaScript/ES2015入門 ……開発環境から文法基礎まで
■■2.1 本書における開発言語と開発環境 ……JavaScript、Chrome、Windows&macOS
■■■サンプルの実行環境 ……Google Chrome
■■■開発環境とテキストエディタ
■■■Webとアプリケーション
■■■■クライアントサイドとサーバーサイド
■■■JavaScriptとECMAScript
●Column ECMAScript規格とWebブラウザの実装の関係
■■■JavaScriptの進化と、グラフィックスプログラミング
■■2.2 サンプルと実行環境について ……ファイル構成、ブラウザ&開発ツール
■■■サンプルの構成と実行方法
■■■Chromeの開発者ツールの基本 ……JavaScriptのデバッグ準備
■■■開発者ツールのパネル&JavaScriptのデバッグ
■■■■Elementパネル ……HTMLドキュメントの構造を確認
■■■■Sourcesパネル ……JavaScriptプログラムの実行制御をデバッグに活用
■■■■Consoleパネル ……JavaScriptのインラインコードの実行結果を確認できる
■■■コメントとJSDoc ……サンプルに含まれるコメントの読み方
■■2.3 [グラフィックスプログラミングのための]JavaScript/ES2015の基本 ……基本操作、変数、関数、オブジェクト、演算子
■■■アラートやコンソールの活用
■■■変数 ……変数名、キーワード、基本的な規約
■■■変数宣言キーワードとスコープ
■■■■ローカルスコープ、グローバルスコープ
■■■■var ……スコープは関数内部限定
■■■■let ……スコープは関数内部とブロック内部
■■■■const ……スコープは関数内部とブロック内部。再代入が行えない
■■■JavaScriptのデータ型
■■■変数の動的型付け ……JavaScriptでは変数自身は型を持たない
●Column 変数宣言キーワードの取捨選択
■■■■動的型付けの言語で気をつけたいこと
●Column null、undefined、Symbol
■■■関数 ……名前付きの関数の定義と呼び出し、関数の戻り値
■■■関数式 ……文と式
■■■■関数式による関数の定義と呼び出し
■■■■無名関数
■■■■アロー関数
●Column 関数の引数と既定値
■■■■関数式と関数の引数
●Column 非同期処理とコールバック関数
●Column JavaScriptと「自動セミコロン挿入」機能
■■■オブジェクト型 ……JavaScriptではプリミティブなデータ以外、すべてがオブジェクト型
■■■配列 ……データをまとめて格納できる。(グラフィックス)プログラミングで頻出のオブジェクト
■■■■配列の要素へのアクセス ……インデックスを指定
■■■オブジェクト ……多種多様なオブジェクトで成り立つJavaScript
■■■■オブジェクトの構造
■■■■オブジェクトの要素へのアクセス
●Column プロパティとメソッド
●Column ビルトインオブジェクトとプロトタイプチェーン
■■■制御構文 ……条件や繰り返し。ロジックを記述する
■■■■if文 ……ある条件に一致した場合&しなかった場合、処理へ進む
■■■■for文 ……カウンター変数を用いて繰り返し処理を行う
●Column JavaScriptの真偽値判定
■■■■while文 ……柔軟な継続条件で繰り返し処理を行う
●Column 無限ループ
■■■■switch文 ……特定の条件に応じた分岐処理
■■■演算子 ……算術、代入、比較、論理、条件
■■■■算術演算子 ……四則演算、剰余
■■■■インクリメント演算子、デクリメント演算子 ……接頭辞と接尾辞に注意
■■■■代入演算子 ……変数に値を代入
■■■■比較演算子 ……原則として厳密比較を使用
■■■■論理演算子 ……&&(AND)、||(OR)
■■■■条件演算子 ……条件に合わせて異なる値を用いたい場合
■■2.4 本章のまとめ
●Column 条件演算子とif文
■第3章 [基礎]グラフィックスプログラミングと数学 ……三角関数、線型代数、乱数&補間
■■3.1 角度と三角関数 ……ラジアン、sin(サイン)、cos(コサイン)
■■■ラジアン ……弧度
■■■■角度の表現 ……度数法と弧度法
■■■■プログラミングと角度 ……ラジアンで考える
●Column ラジアンの捉え方
■■■グラフィックスプログラミングのためのsin、cos ……ラジアン、半径1の円とともに
●Column グラフィックスプログラミングで大活躍(!?)の三角関数
■■3.2 ベクトルと行列 ……点から始める線型代数
■■■ベクトルとスカラー ……量と向き
■■■原点とベクトルの始点と終点 ……点を結ぶ
■■■ベクトルの向き ……単位化、単位ベクトル、(再び)半径1の円
●Column 座標とベクトル ……配列[x, y]は座標なのか、ベクトルなのか
■■■ベクトルと演算 ……加算、減算
●Column 単位化、正規化、規格化、標準化 ……単位化と同様の意味で使われる言葉?
■■■ベクトルのスカラー倍
■■■ベクトルの内積、外積
■■■■内積 ……内積はベクトルAとベクトルBの成す角θに対するコサイン
●Column ベクトルのスカラー倍で速度が変わる
■■■■外積 ……外積はベクトルAとベクトルBの成す角θに対するサイン
●Column ベクトルの内積と外積の使いどころ
■■■行列 ……ベクトルの変形や変換
■■■■回転行列 ……ベクトルを回転させる
■■3.3 乱数/擬似乱数と補間&イージング ……グラフィックスプログラミングに役立つ数学関連知識
■■■乱数と擬似乱数 ……ランダムな状態と擬似乱数の品質
■■■■JavaScriptと乱数(擬似乱数) ……Chrome/V8のXorshift
■■■補間とイージング ……滑らかさや緩やかさの変化の表現
■■3.4 本章のまとめ
●Column あらゆる場面で活躍する補間関数
●Column 擬似乱数とシード値
■第4章 Canvas2Dから学べる基本 ……Canvas2Dコンテキストと描画命令
■■4.1 Canvas2Dの基礎知識 ……コンテキストオブジェクト、Document Object Model
■■■HTML5とCanvas、Canvas API ……ほとんどのブラウザはCanvasに対応
■■■コンテキストオブジェクト ……描画処理のための機能と設定を持つオブジェクト
■■■Canvas2Dコンテキストの取得 ……CanvasRenderingContext2D
■■■HTML要素としてのCanvas ……Canvas要素にはCSSによる余分な装飾は極力行わない
●Column コンテキストの種類
●Column RetinaディスプレイとCanvas要素の大きさ ……CSSサイズ、物理サイズ
■■■Document Object Model ……Canvas要素をはじめ、HTML要素をJavaScriptから参照する
■■4.2 Canvas2Dの基本プリミティブ ……矩形、線、多角形、円、円弧、ベジェ曲線...
■■■矩形の描画 ……fillRect
■■■塗りつぶしと線のスタイル ……fillStyle、strokeStyle
■■■[予習]Canvas2Dサンプルの構成と動作確認
■■■■サンプルの実行 ……HTMLファイルをダブルクリック
■■■■スクリプトファイルの読み込み ……<script>タグ
●Column CSSのrgb関数とrgba関数
■■■■即時関数を使って全体を囲う
■■■■読み完了タイミングの検出 ……addEventListenerとloadイベント
■■■■初期化処理 ……loadイベント後?
■■■■描画処理 ……loadイベント後?
●Column addEventListenerの第3引数の意味
●Column 即時関数と無名関数
■■■■[まとめ]本書サンプルの基本構成のポイント
■■■処理の役割に応じた関数化 ……シンプルな役割
■■■線分(ライン)の描画 ……Canvas2Dコンテキストではパスを利用
■■■■サブパス ……パスを区切る仕組み
■■■■パス&サブパスを使ったラインの描画
■■■■[まとめ]Canvas2Dコンテキストでパスを用いた描画の流れ
■■■パスを利用した多角形の描画 ……一筆書きで座標を連続でつなぐ
■■■ランダムに変化する多角形の描画
■■■円の描画 ……円や円弧の描画もパスを利用
■■■円弧の描画 ……乱数によってランダムに変化する円弧の例
●Column arcメソッドの第6引数
■■■ベジェ曲線 ……2次ベジェ曲線、3次ベジェ曲線、複雑な曲線を描画する
●Column パスを閉じずに描く ……closePath、stroke
■■■画像を利用した描画 ……読み込みの待機にaddEventListener(再び)
■■4.3 Canvas2Dコンテキストの描画効果&演出機能 ……テキスト、ドロップシャドウ、グラデーション、パターン、アルファブレンディング、コンポジットオペレーション
■■■テキストの描画 ……グラフィックスとしてテキストを描く
■■■ドロップシャドウの描画 ……一様に設定内容が反映される点には注意
●Column 文字列のfillとstroke
■■■グラデーションとパターン ……まずは効果を適用する実体のオブジェクトを生成
■■■■グラデーション ……線形グラデーション、円形グラデーション
■■■■パターン ……repeat、repeat-x、repeat-y、no-repeat
■■■アルファブレンディング ……アルファ値で、透明や半透明の描画処理
■■■コンポジットオペレーション ……さまざまな合成の種類
■■■■コンポジットオペエレーションの設定
■■4.4 本章のまとめ
■第5章 ユーザーインタラクションのプログラミング ……ゼロから作るシューティングゲーム?
■■5.1 [まずは準備から]シューティングゲームを作る ……ファイル構成とルール
■■■なぜ、ゲーム作り? ……種々の関連技術の集合体で、小さなゴールを設定しやすい
■■■作成するゲームのファイル構成
■■■作成するゲームの枠組み ……最低限のルールの定義
■■5.2 ゲームの骨格を作る ……土台となるプログラムの設計
■■■HTMLページとしての構造 ……ゲームの舞台となるCanvas要素のための設定
■■■class構文 ……独自の機能や属性を持つクラスを定義できる
●Column loadイベントとDOMContentLoadedイベント
■■■■クラス再入門 ……クラスの概念を持つ言語、持たない言語
■■■■プロトタイプとクラス ……JavaScriptにクラスは存在しない
■■■■[まとめ]クラスベースとプロトタイプベース
■■■■プロトタイプベースの言語の記述と振る舞い ……prototype、new演算子、コンストラクタ関数
■■■■class構文の使い方 ……プロトタイプの記述をわかりやすくする
●Column プロトタイプは拡張できる ……ただし、注意点も
■■■canvas2d.jsに記述したCanvas2DUtilityオブジェクト ……class構文で定義
■■■■コンストラクタ関数でインスタンスを生成できるオブジェクト ……便宜上の「クラス」
■■■■constructor(コンストラクタ)
■■■■property(プロパティ)
■■■■propertyとgetter(プロパティとゲッター) ……プロパティを取得する際に関数を実行したい
●Column setter(セッター) ……プロパティを設定する際に関数を実行したい
■■■■method(メソッド) ……オブジェクトが持っている関数
●Column プロトタイプを用いるメリット ……プロトタイプチェーン
■■■script.jsに記述されたメインプログラム ……シューティングゲーム作成のひな形
■■■メインループ ……アニメーション処理のための基盤を実装
■■■■タイムスタンプの格納と取得
■■■■描画処理 ……塗りつぶし、経過時間の計測、画像の描画、描画処理の再帰呼び出し
■■■ユーザーインタラクション ……ユーザーの入力とaddEventListener
●Column キー入力系イベントの発生順序とリピート
■■■シーン構成を整える ……各種シーンの状態管理の基盤
■■5.3 本章のまとめ
■第6章 キャラクターと動きのプログラミング ……ゼロから作るシューティングゲーム?
■■6.1 キャラクターの実装 ……キャラクター管理クラス、キーの入力によるインタラクティブな移動
■■■クラスの抽象化 ……共通して必要となるパラメーターをまとめて管理
■■■■Positionクラス ……座標を管理するためのクラス
●Column コンストラクタによる値の代入
■■■■Characterクラス ……キャラクターのベースとなる汎用的なクラス
■■■■クラスの継承と自機キャラクタークラス ……class構文のextendsと、super
■■■自機キャラクタークラスを利用したメインプログラム
■■■クラスに特有の処理を一元管理する
■■■キャラクターの幅を考慮した描画
■■■キャラクターの移動をなめらかに行う
■■■■windowオブジェクトへのプロパティ追加
●Column キャラクターの中心 ……3Dでも活かせる座標を意識する感覚
■■■■オブジェクトのプロパティへのアクセス ……ドット記法とブラケット記法
■■■■テンプレートリテラル
■■■■ブラケット記法とテンプレートリテラルを組み合わせる
■■■画面の外に出ないように制限する ……画面の端の判定と座標の補正
●Column 速度をspeedというプロパティに置き換えた意味
■■6.2 ショットの実装 ……大量ショットのインスタンス、程良い速度、回転描画
■■■ショットはキャラクターの一種 ……Characterクラスを継承してShotクラス
■■■キャラクターからショットを放つ ……Characterクラス、Shotクラス、Viperクラス
■■■ショットのことを踏まえた初期化処理 ……大量のショットのインスタンスを扱う
■■■ロードの完了と描画処理
■■■■render関数の呼び出し
■■■ショットが高速に生成されることを防ぐ ……密生するショットの原因と対策
●Column setTimeoutとsetInterval
■■■ショットの進行方向を設定可能にする
■■■異なる種類のショットを同時に放てるようにする
■■■ショットを回転させて描画する
■■■■Canvas2Dコンテキストにおける回転表現
■■■■原点を意識して回転処理を行う
■■■■Canvas2Dコンテキストの状態保存と状態復元
■■■■その他の変更点
●Column Math.PI * 1.5の意味するもの
■■6.3 敵キャラクターの実装 ……敵キャラクターの配置、シーン管理&更新、敵キャラクターのタイプ
●Column サイン、コサインで作るベクトルは常に単位ベクトル
■■■敵キャラクターのためのクラスを実装する
■■■「シーン」という概念 ……SceneManagerクラス
■■■シーン管理クラスの利用とシーン更新用の関数
■■■■[まとめ]シーン関連の変更点
■■■連続して敵キャラクターが出現するシーン
■■■キャラクターに「タイプ」の概念を追加する
■■6.4 本章のまとめ
■第7章 状態に応じた判定や演出のプログラミング ……ゼロから作るシューティングゲーム?
■■7.1 衝突判定 ……オブジェクト同士の衝突、エフェクト、補間関数/イージング関数
■■■衝突を判定するロジック ……形状に応じた判定の基本
■■■■矩形との衝突判定の注意点
■■■ベクトルを利用した衝突判定 ……ベクトルの長さを測る方法の応用
■■■Positionクラスの拡張 ……2つの座標間の距離を計測
■■■自機キャラクターのショットと敵との衝突判定 ……攻撃力とライフ
●Column キャラクターのサイズ
■■■破壊を演出する ……爆発エフェクト
■■■■Explosionクラス
■■■爆発エフェクトの質感を向上する ……ランダム要素を取り入れる
■■■補間関数で減衰するような動きを表現 ……より自然な変化
■■7.2 自機キャラクターの状態に応じた処理 ……ライフの減算、ゲームオーバーの演出、再スタート
■■■自機キャラクターと敵ショットとの衝突判定 ……敵キャラクターの攻撃
■■■ゲームオーバーの演出とゲームの再スタート ……ゲームの終わり。しかし、実装と演出は続く...
■■7.3 ゲームの品質向上 ……スコア、敵キャラの攻撃力&耐久力、シーン管理、背景、音声、ボスキャラ
■■■スコアを集計して表示する
●Column String.padStartメソッド
■■■敵キャラクターのバリエーションを増やす
■■■■自機狙い弾を放つ敵キャラクター
■■■■耐久力の高い敵キャラクター
■■■■シーン管理の見直し ……よりゲームらしく
■■■背景を追加する ……ゲームの舞台を表現する演出
■■■効果音を再生する ……シーンの雰囲気を底上げする演出
■■■■ユーザーの操作を受けてから初期化処理を行う
■■■■音声データを扱う自作クラスを実装する ……Soundクラス
■■■■Promiseと非同期処理
■■■■AudioContextによる音声データの再生
●Column コールバック関数とPromise
●Column JavaScriptとガベージコレクタ
■■■[いよいよ最終仕上げへ]ボスキャラクターやホーミングショットの実装に挑戦!
■■■■ボスキャラクター本体の実装 ……キャラクター自身が「モード」を持つ
■■■■ホーミングショットの実装 ……内積&外積の知識をフル活用
●Column プログラミングと数学や物理
■■7.4 本章のまとめ
■第8章 ピクセルと色のプログラミング ピクセルを塗る操作と感覚
■■8.1 [再入門]グラフィックスを構成するピクセル ……ピクセルと画像処理
■■■そもそもピクセルとは何か? ……グラフィックスを構成する最小の単位
■■■ピクセルを操作する画像処理 ……ある意味ではグラフィックスプログラミングの本質
●Column ペイントソフトは画像処理の宝庫
■■8.2 Canvas APIでピクセルを直接操作する ……ピクセル操作の窓口「ImageData」
■■■[基礎知識]同一生成元ポリシー ……ローカル環境とWebブラウザのセキュリティ
■■■ローカルサーバーを起動してファイルをプレビューする
■■■Chromeの拡張機能を利用したローカルサーバーの起動 ……Web Server for Chrome
●Column (比較的簡単な)その他のローカルサーバー起動方法
■■■ImageDataオブジェクト ……Canvas要素のピクセルを操作する窓口
■■■TypedArray ……数値を効率良く扱える型付き配列
■■■■Uint8ClampedArray形式 ……値がクランプされる特殊な形式
●Column JavaScriptとバイナリデータ ……TypedArray
■■■ピクセルの並び順とデータ構造 ……ImageDataを利用したピクセル情報の抜き出し
■■8.3 画像処理プログラミングの基本テクニック ……ネガポジ反転、グレースケール、2値化、エッジ検出、ノイズ除去、モザイク
■■■ネガポジ反転
■■■グレースケール ……色の鮮やかさと引き換えに。白~灰色~黒の明暗を得る
■■■2値化 ……白か黒か。色が二択
●Column 意外にも奥が深い(!?)グレースケールの世界
■■■エッジ検出 ……色差分を可視化するラプラシアンフィルター
■■■ノイズ除去 ……メディアンフィルターで極端に色が異なるピクセルを除去する
●Column 上下左右だけでなく、斜め方向も加えたラプラシアンフィルター
●Column メディアンフィルターを繰り返し実行する
■■■モザイク ……ピクセルの大きさを変化させる
■■8.4 本章のまとめ
■■1.1 グラフィックスとグラフィックスプログラミングの基本 ……CG、2D、3D、画素
■■■コンピューターグラフィックス ……コンピューターによって描き出されたグラフィックス
■■■2Dと3D ……グラフィックスの生成手順やデータ管理方法が違うだけ
■■■グラフィックスを構成するもの ……出力先は「画素」の集まり
■■■グラフィックスプログラミングの課題や目的 ……画素をどう塗りつぶすか
■■1.2 グラフィックスプログラミングの分類 ……活躍の舞台は広い
■■■情報を伝えるためのグラフィックス
■■■情報を正しく理解するためのグラフィックス
■■■エンターテイメントとしてのグラフィックス
■■■アートとしてのグラフィックス
■■1.3 グラフィックスプログラミングと技術 ……原則、プログラミング言語、API
■■■グラフィックスプログラミングの原則
■■■グラフィックスプログラミングと、プログラミング言語&ツール ……手軽にグラフィックスを生成する選択肢
■■■■Processingでできること
■■■■ゲームエンジンから学び始める
■■■■ツールと基礎/原理の学習
■■■グラフィックスAPI ……DirectX、OpenGL、OpenGL ES
■■■■[まとめ]DirectXとOpenGLの特徴
■■■グラフィックスAPIを利用するアプリケーション
●Column Metal、Vulkan ……AppleとKhronos Groupのその他のグラフィックスAPI
■■■Webとグラフィックス ……JavaScriptと動的なグラフィックス生成機能
■■■JavaScriptとWebブラウザによる効率的な学習の実現
■■■JavaScriptのメリットを活かす ……本書の構成と解説の流れ
■■1.4 本章のまとめ
■第2章 [グラフィックスプログラミングで役立つ]JavaScript/ES2015入門 ……開発環境から文法基礎まで
■■2.1 本書における開発言語と開発環境 ……JavaScript、Chrome、Windows&macOS
■■■サンプルの実行環境 ……Google Chrome
■■■開発環境とテキストエディタ
■■■Webとアプリケーション
■■■■クライアントサイドとサーバーサイド
■■■JavaScriptとECMAScript
●Column ECMAScript規格とWebブラウザの実装の関係
■■■JavaScriptの進化と、グラフィックスプログラミング
■■2.2 サンプルと実行環境について ……ファイル構成、ブラウザ&開発ツール
■■■サンプルの構成と実行方法
■■■Chromeの開発者ツールの基本 ……JavaScriptのデバッグ準備
■■■開発者ツールのパネル&JavaScriptのデバッグ
■■■■Elementパネル ……HTMLドキュメントの構造を確認
■■■■Sourcesパネル ……JavaScriptプログラムの実行制御をデバッグに活用
■■■■Consoleパネル ……JavaScriptのインラインコードの実行結果を確認できる
■■■コメントとJSDoc ……サンプルに含まれるコメントの読み方
■■2.3 [グラフィックスプログラミングのための]JavaScript/ES2015の基本 ……基本操作、変数、関数、オブジェクト、演算子
■■■アラートやコンソールの活用
■■■変数 ……変数名、キーワード、基本的な規約
■■■変数宣言キーワードとスコープ
■■■■ローカルスコープ、グローバルスコープ
■■■■var ……スコープは関数内部限定
■■■■let ……スコープは関数内部とブロック内部
■■■■const ……スコープは関数内部とブロック内部。再代入が行えない
■■■JavaScriptのデータ型
■■■変数の動的型付け ……JavaScriptでは変数自身は型を持たない
●Column 変数宣言キーワードの取捨選択
■■■■動的型付けの言語で気をつけたいこと
●Column null、undefined、Symbol
■■■関数 ……名前付きの関数の定義と呼び出し、関数の戻り値
■■■関数式 ……文と式
■■■■関数式による関数の定義と呼び出し
■■■■無名関数
■■■■アロー関数
●Column 関数の引数と既定値
■■■■関数式と関数の引数
●Column 非同期処理とコールバック関数
●Column JavaScriptと「自動セミコロン挿入」機能
■■■オブジェクト型 ……JavaScriptではプリミティブなデータ以外、すべてがオブジェクト型
■■■配列 ……データをまとめて格納できる。(グラフィックス)プログラミングで頻出のオブジェクト
■■■■配列の要素へのアクセス ……インデックスを指定
■■■オブジェクト ……多種多様なオブジェクトで成り立つJavaScript
■■■■オブジェクトの構造
■■■■オブジェクトの要素へのアクセス
●Column プロパティとメソッド
●Column ビルトインオブジェクトとプロトタイプチェーン
■■■制御構文 ……条件や繰り返し。ロジックを記述する
■■■■if文 ……ある条件に一致した場合&しなかった場合、処理へ進む
■■■■for文 ……カウンター変数を用いて繰り返し処理を行う
●Column JavaScriptの真偽値判定
■■■■while文 ……柔軟な継続条件で繰り返し処理を行う
●Column 無限ループ
■■■■switch文 ……特定の条件に応じた分岐処理
■■■演算子 ……算術、代入、比較、論理、条件
■■■■算術演算子 ……四則演算、剰余
■■■■インクリメント演算子、デクリメント演算子 ……接頭辞と接尾辞に注意
■■■■代入演算子 ……変数に値を代入
■■■■比較演算子 ……原則として厳密比較を使用
■■■■論理演算子 ……&&(AND)、||(OR)
■■■■条件演算子 ……条件に合わせて異なる値を用いたい場合
■■2.4 本章のまとめ
●Column 条件演算子とif文
■第3章 [基礎]グラフィックスプログラミングと数学 ……三角関数、線型代数、乱数&補間
■■3.1 角度と三角関数 ……ラジアン、sin(サイン)、cos(コサイン)
■■■ラジアン ……弧度
■■■■角度の表現 ……度数法と弧度法
■■■■プログラミングと角度 ……ラジアンで考える
●Column ラジアンの捉え方
■■■グラフィックスプログラミングのためのsin、cos ……ラジアン、半径1の円とともに
●Column グラフィックスプログラミングで大活躍(!?)の三角関数
■■3.2 ベクトルと行列 ……点から始める線型代数
■■■ベクトルとスカラー ……量と向き
■■■原点とベクトルの始点と終点 ……点を結ぶ
■■■ベクトルの向き ……単位化、単位ベクトル、(再び)半径1の円
●Column 座標とベクトル ……配列[x, y]は座標なのか、ベクトルなのか
■■■ベクトルと演算 ……加算、減算
●Column 単位化、正規化、規格化、標準化 ……単位化と同様の意味で使われる言葉?
■■■ベクトルのスカラー倍
■■■ベクトルの内積、外積
■■■■内積 ……内積はベクトルAとベクトルBの成す角θに対するコサイン
●Column ベクトルのスカラー倍で速度が変わる
■■■■外積 ……外積はベクトルAとベクトルBの成す角θに対するサイン
●Column ベクトルの内積と外積の使いどころ
■■■行列 ……ベクトルの変形や変換
■■■■回転行列 ……ベクトルを回転させる
■■3.3 乱数/擬似乱数と補間&イージング ……グラフィックスプログラミングに役立つ数学関連知識
■■■乱数と擬似乱数 ……ランダムな状態と擬似乱数の品質
■■■■JavaScriptと乱数(擬似乱数) ……Chrome/V8のXorshift
■■■補間とイージング ……滑らかさや緩やかさの変化の表現
■■3.4 本章のまとめ
●Column あらゆる場面で活躍する補間関数
●Column 擬似乱数とシード値
■第4章 Canvas2Dから学べる基本 ……Canvas2Dコンテキストと描画命令
■■4.1 Canvas2Dの基礎知識 ……コンテキストオブジェクト、Document Object Model
■■■HTML5とCanvas、Canvas API ……ほとんどのブラウザはCanvasに対応
■■■コンテキストオブジェクト ……描画処理のための機能と設定を持つオブジェクト
■■■Canvas2Dコンテキストの取得 ……CanvasRenderingContext2D
■■■HTML要素としてのCanvas ……Canvas要素にはCSSによる余分な装飾は極力行わない
●Column コンテキストの種類
●Column RetinaディスプレイとCanvas要素の大きさ ……CSSサイズ、物理サイズ
■■■Document Object Model ……Canvas要素をはじめ、HTML要素をJavaScriptから参照する
■■4.2 Canvas2Dの基本プリミティブ ……矩形、線、多角形、円、円弧、ベジェ曲線...
■■■矩形の描画 ……fillRect
■■■塗りつぶしと線のスタイル ……fillStyle、strokeStyle
■■■[予習]Canvas2Dサンプルの構成と動作確認
■■■■サンプルの実行 ……HTMLファイルをダブルクリック
■■■■スクリプトファイルの読み込み ……<script>タグ
●Column CSSのrgb関数とrgba関数
■■■■即時関数を使って全体を囲う
■■■■読み完了タイミングの検出 ……addEventListenerとloadイベント
■■■■初期化処理 ……loadイベント後?
■■■■描画処理 ……loadイベント後?
●Column addEventListenerの第3引数の意味
●Column 即時関数と無名関数
■■■■[まとめ]本書サンプルの基本構成のポイント
■■■処理の役割に応じた関数化 ……シンプルな役割
■■■線分(ライン)の描画 ……Canvas2Dコンテキストではパスを利用
■■■■サブパス ……パスを区切る仕組み
■■■■パス&サブパスを使ったラインの描画
■■■■[まとめ]Canvas2Dコンテキストでパスを用いた描画の流れ
■■■パスを利用した多角形の描画 ……一筆書きで座標を連続でつなぐ
■■■ランダムに変化する多角形の描画
■■■円の描画 ……円や円弧の描画もパスを利用
■■■円弧の描画 ……乱数によってランダムに変化する円弧の例
●Column arcメソッドの第6引数
■■■ベジェ曲線 ……2次ベジェ曲線、3次ベジェ曲線、複雑な曲線を描画する
●Column パスを閉じずに描く ……closePath、stroke
■■■画像を利用した描画 ……読み込みの待機にaddEventListener(再び)
■■4.3 Canvas2Dコンテキストの描画効果&演出機能 ……テキスト、ドロップシャドウ、グラデーション、パターン、アルファブレンディング、コンポジットオペレーション
■■■テキストの描画 ……グラフィックスとしてテキストを描く
■■■ドロップシャドウの描画 ……一様に設定内容が反映される点には注意
●Column 文字列のfillとstroke
■■■グラデーションとパターン ……まずは効果を適用する実体のオブジェクトを生成
■■■■グラデーション ……線形グラデーション、円形グラデーション
■■■■パターン ……repeat、repeat-x、repeat-y、no-repeat
■■■アルファブレンディング ……アルファ値で、透明や半透明の描画処理
■■■コンポジットオペレーション ……さまざまな合成の種類
■■■■コンポジットオペエレーションの設定
■■4.4 本章のまとめ
■第5章 ユーザーインタラクションのプログラミング ……ゼロから作るシューティングゲーム?
■■5.1 [まずは準備から]シューティングゲームを作る ……ファイル構成とルール
■■■なぜ、ゲーム作り? ……種々の関連技術の集合体で、小さなゴールを設定しやすい
■■■作成するゲームのファイル構成
■■■作成するゲームの枠組み ……最低限のルールの定義
■■5.2 ゲームの骨格を作る ……土台となるプログラムの設計
■■■HTMLページとしての構造 ……ゲームの舞台となるCanvas要素のための設定
■■■class構文 ……独自の機能や属性を持つクラスを定義できる
●Column loadイベントとDOMContentLoadedイベント
■■■■クラス再入門 ……クラスの概念を持つ言語、持たない言語
■■■■プロトタイプとクラス ……JavaScriptにクラスは存在しない
■■■■[まとめ]クラスベースとプロトタイプベース
■■■■プロトタイプベースの言語の記述と振る舞い ……prototype、new演算子、コンストラクタ関数
■■■■class構文の使い方 ……プロトタイプの記述をわかりやすくする
●Column プロトタイプは拡張できる ……ただし、注意点も
■■■canvas2d.jsに記述したCanvas2DUtilityオブジェクト ……class構文で定義
■■■■コンストラクタ関数でインスタンスを生成できるオブジェクト ……便宜上の「クラス」
■■■■constructor(コンストラクタ)
■■■■property(プロパティ)
■■■■propertyとgetter(プロパティとゲッター) ……プロパティを取得する際に関数を実行したい
●Column setter(セッター) ……プロパティを設定する際に関数を実行したい
■■■■method(メソッド) ……オブジェクトが持っている関数
●Column プロトタイプを用いるメリット ……プロトタイプチェーン
■■■script.jsに記述されたメインプログラム ……シューティングゲーム作成のひな形
■■■メインループ ……アニメーション処理のための基盤を実装
■■■■タイムスタンプの格納と取得
■■■■描画処理 ……塗りつぶし、経過時間の計測、画像の描画、描画処理の再帰呼び出し
■■■ユーザーインタラクション ……ユーザーの入力とaddEventListener
●Column キー入力系イベントの発生順序とリピート
■■■シーン構成を整える ……各種シーンの状態管理の基盤
■■5.3 本章のまとめ
■第6章 キャラクターと動きのプログラミング ……ゼロから作るシューティングゲーム?
■■6.1 キャラクターの実装 ……キャラクター管理クラス、キーの入力によるインタラクティブな移動
■■■クラスの抽象化 ……共通して必要となるパラメーターをまとめて管理
■■■■Positionクラス ……座標を管理するためのクラス
●Column コンストラクタによる値の代入
■■■■Characterクラス ……キャラクターのベースとなる汎用的なクラス
■■■■クラスの継承と自機キャラクタークラス ……class構文のextendsと、super
■■■自機キャラクタークラスを利用したメインプログラム
■■■クラスに特有の処理を一元管理する
■■■キャラクターの幅を考慮した描画
■■■キャラクターの移動をなめらかに行う
■■■■windowオブジェクトへのプロパティ追加
●Column キャラクターの中心 ……3Dでも活かせる座標を意識する感覚
■■■■オブジェクトのプロパティへのアクセス ……ドット記法とブラケット記法
■■■■テンプレートリテラル
■■■■ブラケット記法とテンプレートリテラルを組み合わせる
■■■画面の外に出ないように制限する ……画面の端の判定と座標の補正
●Column 速度をspeedというプロパティに置き換えた意味
■■6.2 ショットの実装 ……大量ショットのインスタンス、程良い速度、回転描画
■■■ショットはキャラクターの一種 ……Characterクラスを継承してShotクラス
■■■キャラクターからショットを放つ ……Characterクラス、Shotクラス、Viperクラス
■■■ショットのことを踏まえた初期化処理 ……大量のショットのインスタンスを扱う
■■■ロードの完了と描画処理
■■■■render関数の呼び出し
■■■ショットが高速に生成されることを防ぐ ……密生するショットの原因と対策
●Column setTimeoutとsetInterval
■■■ショットの進行方向を設定可能にする
■■■異なる種類のショットを同時に放てるようにする
■■■ショットを回転させて描画する
■■■■Canvas2Dコンテキストにおける回転表現
■■■■原点を意識して回転処理を行う
■■■■Canvas2Dコンテキストの状態保存と状態復元
■■■■その他の変更点
●Column Math.PI * 1.5の意味するもの
■■6.3 敵キャラクターの実装 ……敵キャラクターの配置、シーン管理&更新、敵キャラクターのタイプ
●Column サイン、コサインで作るベクトルは常に単位ベクトル
■■■敵キャラクターのためのクラスを実装する
■■■「シーン」という概念 ……SceneManagerクラス
■■■シーン管理クラスの利用とシーン更新用の関数
■■■■[まとめ]シーン関連の変更点
■■■連続して敵キャラクターが出現するシーン
■■■キャラクターに「タイプ」の概念を追加する
■■6.4 本章のまとめ
■第7章 状態に応じた判定や演出のプログラミング ……ゼロから作るシューティングゲーム?
■■7.1 衝突判定 ……オブジェクト同士の衝突、エフェクト、補間関数/イージング関数
■■■衝突を判定するロジック ……形状に応じた判定の基本
■■■■矩形との衝突判定の注意点
■■■ベクトルを利用した衝突判定 ……ベクトルの長さを測る方法の応用
■■■Positionクラスの拡張 ……2つの座標間の距離を計測
■■■自機キャラクターのショットと敵との衝突判定 ……攻撃力とライフ
●Column キャラクターのサイズ
■■■破壊を演出する ……爆発エフェクト
■■■■Explosionクラス
■■■爆発エフェクトの質感を向上する ……ランダム要素を取り入れる
■■■補間関数で減衰するような動きを表現 ……より自然な変化
■■7.2 自機キャラクターの状態に応じた処理 ……ライフの減算、ゲームオーバーの演出、再スタート
■■■自機キャラクターと敵ショットとの衝突判定 ……敵キャラクターの攻撃
■■■ゲームオーバーの演出とゲームの再スタート ……ゲームの終わり。しかし、実装と演出は続く...
■■7.3 ゲームの品質向上 ……スコア、敵キャラの攻撃力&耐久力、シーン管理、背景、音声、ボスキャラ
■■■スコアを集計して表示する
●Column String.padStartメソッド
■■■敵キャラクターのバリエーションを増やす
■■■■自機狙い弾を放つ敵キャラクター
■■■■耐久力の高い敵キャラクター
■■■■シーン管理の見直し ……よりゲームらしく
■■■背景を追加する ……ゲームの舞台を表現する演出
■■■効果音を再生する ……シーンの雰囲気を底上げする演出
■■■■ユーザーの操作を受けてから初期化処理を行う
■■■■音声データを扱う自作クラスを実装する ……Soundクラス
■■■■Promiseと非同期処理
■■■■AudioContextによる音声データの再生
●Column コールバック関数とPromise
●Column JavaScriptとガベージコレクタ
■■■[いよいよ最終仕上げへ]ボスキャラクターやホーミングショットの実装に挑戦!
■■■■ボスキャラクター本体の実装 ……キャラクター自身が「モード」を持つ
■■■■ホーミングショットの実装 ……内積&外積の知識をフル活用
●Column プログラミングと数学や物理
■■7.4 本章のまとめ
■第8章 ピクセルと色のプログラミング ピクセルを塗る操作と感覚
■■8.1 [再入門]グラフィックスを構成するピクセル ……ピクセルと画像処理
■■■そもそもピクセルとは何か? ……グラフィックスを構成する最小の単位
■■■ピクセルを操作する画像処理 ……ある意味ではグラフィックスプログラミングの本質
●Column ペイントソフトは画像処理の宝庫
■■8.2 Canvas APIでピクセルを直接操作する ……ピクセル操作の窓口「ImageData」
■■■[基礎知識]同一生成元ポリシー ……ローカル環境とWebブラウザのセキュリティ
■■■ローカルサーバーを起動してファイルをプレビューする
■■■Chromeの拡張機能を利用したローカルサーバーの起動 ……Web Server for Chrome
●Column (比較的簡単な)その他のローカルサーバー起動方法
■■■ImageDataオブジェクト ……Canvas要素のピクセルを操作する窓口
■■■TypedArray ……数値を効率良く扱える型付き配列
■■■■Uint8ClampedArray形式 ……値がクランプされる特殊な形式
●Column JavaScriptとバイナリデータ ……TypedArray
■■■ピクセルの並び順とデータ構造 ……ImageDataを利用したピクセル情報の抜き出し
■■8.3 画像処理プログラミングの基本テクニック ……ネガポジ反転、グレースケール、2値化、エッジ検出、ノイズ除去、モザイク
■■■ネガポジ反転
■■■グレースケール ……色の鮮やかさと引き換えに。白~灰色~黒の明暗を得る
■■■2値化 ……白か黒か。色が二択
●Column 意外にも奥が深い(!?)グレースケールの世界
■■■エッジ検出 ……色差分を可視化するラプラシアンフィルター
■■■ノイズ除去 ……メディアンフィルターで極端に色が異なるピクセルを除去する
●Column 上下左右だけでなく、斜め方向も加えたラプラシアンフィルター
●Column メディアンフィルターを繰り返し実行する
■■■モザイク ……ピクセルの大きさを変化させる
■■8.4 本章のまとめ
ISBN:9784297110857
出版社:技術評論社
判型:B5変
ページ数:368ページ
定価:2780円(本体)
発行年月日:2020年01月
発売日:2020年01月18日