んで上の公開講座のあとの懇親会の時にオライリージャパンの方から「実例で学ぶゲーム3D数学」を献本していただいた。ありがたいことです。
- 実例で学ぶゲーム3D数学 (http://www.oreilly.co.jp/books/9784873113777/index.html)
線、面、球、バウンディングボックスなどのコリジョンを取るときに必要になる距離計算や、ふだんなんとなく使っているベクトル、行列、四元数(クォータニオン)の操作の詳細などについて詳しくかかれている内容。
個人的には幾何に関する各種数式が、ゲームに関連する部分に特にフォーカスして書いてあるのがありがたい。距離計算とかはたまに必要になるのだが、その際にもはや公式が思い出せなくて四苦八苦することがある。私はそのために大学受験用の参考書である大学への数学シリーズをいまだに持っているのだが、本書があればだいたいこと足りる感がある。
ベクトル、行列、クォータニオンの代表的な操作についても詳細が書かれている。いわゆる、
- Vector3 (http://msdn.microsoft.com/ja-jp/library/microsoft.xna.framework.vector3_members.aspx)
- Matrix (http://msdn.microsoft.com/ja-jp/library/microsoft.xna.framework.matrix_members.aspx)
- Quaternion (http://msdn.microsoft.com/ja-jp/library/microsoft.xna.framework.quaternion_members.aspx)
など、いつもAPIごしになんとなく操作しているメソッドが、実際にはどのように動作しているかについて理解することが可能だ。
14章以降のライティングやカリングに関するところは若干駆け足ぎみなのでテクニックの紹介という感じ。13章までの内容は数式、図、C++コードを交えた詳細な記述になっている。
オブジェクトの方向を表す際の行列、オイラー角、クォータニオンそれぞれの利点欠点など、ゲーム開発時になんとなく気にはなるんだがなんとなくスルーしているところを、数学的にちゃんと理解する用途などにお薦め。読み物としてだけでなく、参考書としても役に立つだろう。