Happy My Life

日常とか技術とか

書籍「ゲームアプリの数学」を読んでみて

先日発売になったばかりのゲームアプリの数学 Unityで学ぶ基礎からシェーダーまでを読んでいるところ。

で、その感想をつらつらと書いてみる。

ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで
久富木 隆一
SBクリエイティブ
売り上げランキング: 3,719

数式と図の解説がメイン、Unityはオマケ

この本のタイトルには、Unityで学ぶ~、と書かれているけど、Unity的な要素はオマケ的なものであり、本質的な解説は図と数式で行われているので、数式が理解できれば、Unity(C#)を知らなくても理解はできる。もちろん、それがUnreal Engine 4であっても。

ただ、数式の意味がいまいち理解できないので、ソースコードも詳しく載せて欲しかった、というニーズもあるだろうなぁ、ととは思う。

3Dグラフィックスに必要な知識はまかなえる

ベクトル、座標系、行列など3Dグラフィックスに必要な幾何学の解説が重点的に書かれている。幾何学といっても、ゲーム開発に必要な幾何学的な要素のみを抽出して書かれているので、一般的な幾何学の教科書よりは書かれている内容はずっと少ない。そういった意味では読みやすくなっている。

グラフィックス以外は…

3D、3Dグラフィックス演算に必要な幾何学以外のゲームに必要な数学的な要素はほとんど解説されていない、という特徴もある。

以前出版されたゲーム数学本では、コリジョン関連の数式、空間での点や球との距離等の解説が行われていることが多かった。その時点で、Unityなどのゲームエンジンを使う事を前提で書かれたゲーム数学本だな、という感想を持った。ま、コリジョン関連については、他の本で数式が書かれているので、そちらを参考にしてもらってもよいのではないかと。

実例で学ぶゲーム3D数学
Fletcher Dunn Ian Parberry
オライリージャパン
売り上げランキング: 30,839
ゲーム開発のための数学・物理学入門 改訂版 (Professional game programming)
ウェンディ・スターラー
ソフトバンククリエイティブ
売り上げランキング: 53,142

あとは応用が利くかどうか

これらの数学の知識は必要なのだけど、この本では具体例は多く書かれていないので、解説されている知識がどこまで応用できるかは、その人次第となる。

例えば、外積は法線を求めるといった応用例が書かれているが、逆行列は書かれていなかったりする(カメラの回転制御などで使う)。ゲームエンジンを使う事で逆行列を使う事例は少なくなったと思うが、このような数学の知識をゲームのどこで活用できるかを知っているかどうかが、この本で学習した後の鍵になるのではないかと。