リアルタイムグラフィックスの数学 - GLSL ではじめるシェーダプログラミング(リアルタイムグラフィックスノスウガク ジーエルエスエルデハジメルシェーダプログラミング)
- 著者:
- 巴山 竜来(ハヤマ タツキ)
- 出版社:
- 技術評論社
- 出版日:
- 2022年08月31日頃
- ISBN:
- 9784297130343
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
本書はリアルタイムグラフィックスの基本を理解するための解説書です。
リアルタイムグラフィックス、つまり「即時に生成される」グラフィックスは
いまやゲームからビデオチャットまで広く利用されており、多くの方が目にするものになっています。
この技術の根本には数学があり、数学的知識を身につけることで、多様なグラフィックスを生み出すコードの中身、グラフィックス生成のしくみを、きちんと理解できるようになります。
ゼロからしっかり理解したいと考える方に、本書は断然おすすめです。
第 0 章 Hello World
0.1 OpenGL,WebGL,GLSL について知っておくべき最小限のこと
0.2 フラグメントカラー
0.3 ビューポート解像度とフラグメント座標
■第 1 部 アート・オブ・ノイズ
第 1 章 補間
1.1 線形補間とグラデーション
1.2 階段関数によるポスタリゼーション
1.3 極座標を使ったマッピング
第 2 章 疑似乱数
2.1 レガシー
2.2 進数表示とビット演算
2.3 ビット演算を使ったハッシュ関数
第 3 章 値ノイズ
3.1 値ノイズの構成法
3.2 グラデーションの滑らかさと微分
3.3 偏微分と勾配
第 4 章 勾配ノイズ
4.1 勾配ノイズの構成法
4.2 パーリンノイズ
第 5 章 ノイズの調理法
5.1 再帰
5.2 画像処理
■第 2 部 距離がつくりし世界
第 6 章 胞体ノイズ
6.1 第 1 近傍距離とボロノイ分割
6.2 胞体ノイズの構成
第 7 章 距離と SDF
7.1 2 次元 SDF
7.2 物差しを変える
第 8 章 3D レンダリング
8.1 天地創造
8.2 SDF 形状のレンダリング
第 9 章 SDF の調理法
9.1 モデリング
9.2 空間の操作
技書の森解説
シェーダを書いてみたいが線形代数や三角関数に自信がない、という人にとって最初のハードルは「どの数学がどの映像表現に対応するのか」が見えないことです。本書はその対応関係を GLSL のコードで直接示しながら、ベクトル演算・行列変換・ノイズ関数といったリアルタイムグラフィックスに不可欠な数学をひとつずつ積み上げていきます。著者の巴山竜来氏は数学とジェネラティブアートの接点を長く研究してきた人物で、数式を視覚的な結果に結びつける説明に一貫した安定感があります。
特徴的なのは、数学の理論を先に体系立てるのではなく、「画面上のこの表現を作るにはこの演算が必要」という逆引きの構成を取っている点です。フラグメントシェーダ上で SDF (符号付き距離関数) を描いたり、レイマーチングで立体を生成したりする実例を通じて、抽象的だった数式が動く映像として手応えを持ち始めます。高校数学の範囲を超える部分も扱いますが、都度コードで検証できるため置いていかれにくい設計です。
ゲーム開発やクリエイティブコーディングで「見た目の原理を理解して制御したい」段階に進むとき、フレームワークのパラメータ調整だけでは限界が来ます。本書はその限界を数学の力で突破するための入口として、 GPU プログラミングと数学を同時に学べる稀有な一冊です。
言及 Qiita 記事 (2 件)
言及 Zenn 記事 (1 件)
この本に興味がある方におすすめ
この本に関連
関連記事
ゲームが好きならプログラミングの本も読める
ゲームの攻略本を読んだことがあるなら、プログラミングの本も読めます。攻略本とプログラミング本の共通点から、読書のハードルを下げます。
機械学習・AI 本ガイド - エンジニアが読むべき技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルートと ML 本の賞味期限の見極め方を解説します。
年収を上げた 1 冊 - エンジニア 50 人に聞いたキャリアを変えた本
エンジニアのキャリアに転機をもたらした本にはどんな共通点があるのか。50 人の回答から見えてきた、キャリアを変える本の 3 つの特徴を分析します。
関連用語
依存グラフとは - モジュール間の依存関係を可視化する方法
依存グラフはパッケージやモジュール間の依存関係を有向グラフで表現する手法。循環依存の検出・ビルド順序の決定・影響範囲分析での活用法を解説
グラフアルゴリズム
ノードとエッジで構成されるグラフ構造に対する探索・最短経路・接続性の分析アルゴリズム
グラフデータベース
ノード (エンティティ) とエッジ (関係) でデータを表現し、複雑な関係性のクエリに特化したデータベース
カナリアリリース
新バージョンを少数のユーザーに先行公開し、問題がないことを確認してから全体に展開するデプロイ手法
SSE (Server-Sent Events) とは - サーバーからのリアルタイム配信の仕組み
SSE はサーバーからクライアントへ HTTP 上で一方向のリアルタイムストリームを送る仕組み。WebSocket との違い・EventSource API の使い方・再接続処理を解説
Blue/Green デプロイ
2 つの同一環境を用意し、トラフィックを切り替えることでゼロダウンタイムデプロイを実現する手法