3D-CG プログラマーのための クォータニオン入門[四訂版](スリーディーシージープログラマーノタメノクォータニオンニュモン ヨンテイバン)
デザイン・グラフィックス- 著者:
- 金谷 一朗(カナヤ イチロウ)
- 出版社:
- 工学社
- 出版日:
- 2022年11月22日
- ISBN:
- 9784777522224
- シリーズ:
- I/OBOOKS
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
従来から、航空宇宙やロボット工学で使われてた「クォータニオン」 (四元数) は、「 DirectX 」や「 OpenGL 」など、パソコン用ソフトでもサポートされたため、ゲームなどへの応用が盛んになってきました。
ただ、「ベクトル」や「行列」とは違い、「クォータニオン」には、適当な参考書がなく、プログラマーは手探りでプログラミングしていました。
本書は、 3D-CG プログラマーを対象に、数学、プログラミング (C++) の両面からクォータニオンを解説し、好評を博しました。
今回の「四訂版」では、「関数型プログラミング」など、「数学」と「プログラミング」言語が、最近ますます近づいたことについて解説します。
■実数・複素数・クォータニオンー数
実数の性質
複素数の性質
クォータニオンの性質
■行列ーもうひとつの数
連立線形方程式と行列
行列の性質
直交行列とユニタリ行列
■行列による 2 次元の回転と内積
2 次元ベクトル
内積
2 次元ベクトルの回転
■複素数による 2 次元の回転
位置を表わす複素数
複素数による回転
複素数=対角行列+反対称行列
■行列による 3 次元の回転と外積
3 次元ベクトル
外積
3 次元ベクトルの回転
■クォータニオンによる 3 次元の回転
位置を表わすクォータニオン
クォータニオンによる回転
クォータニオン=対角行列+反エルミート行列
■テンソルとスピノール
テンソル
スピノール
テンソル=スピノール×スピノール
■付録・補講
クォータニオンを利用した視点移動
サンプルプログラムの実行方法
本書のダイジェスト
「群・環・体」と「クォータニオン」
リー代数
束
技書の森解説
3 次元空間で物体を回転させるとき、行列よりも補間が素直でジンバルロックも避けられる道具としてゲームエンジンや CG ライブラリの内部で使われているのがクォータニオン (四元数) です。もともと航空宇宙やロボット工学の世界で使われてきた数で、 DirectX や OpenGL がサポートしたことで 3DCG プログラミングにも浸透しましたが、ベクトルや行列と違い腰を据えて学べる本が乏しい分野でした。本書はその空白を埋めるべく書かれた金谷一朗氏による解説書で、工学社の I/O BOOKS から 2022 年に四訂版が刊行されています。
構成は実数・複素数からクォータニオンへと数の体系を広げ、行列による 2 次元・ 3 次元の回転、複素数による 2 次元回転を経て、クォータニオンによる 3 次元回転へ到達する段階式です。同じ「回転」を複数の道具で表現し直しながら進むため、公式の丸暗記でなく対応関係で理解できます。終盤ではテンソルとスピノール、さらに群・環・体やリー代数といった代数の背景にも踏み込み、付録には C++ のサンプルプログラムと視点移動への応用が付きます。四訂版では数学とプログラミング言語の距離が縮まった流れを受けて関数型プログラミングに関する解説が加わりました。
前提は高校数学に大学初年級の線形代数を少し足した程度で、 3DCG やゲームの開発経験があれば動機づけも十分です。ライブラリの回転 API を「使えるが説明できない」状態から抜け出したいプログラマーにとって、数式とコードの両輪で足場を作れる貴重な 1 冊と言えます。
関連記事
技術書の読書ノート術 - 付箋 / マーカー / デジタルの使い分け
技術書を読むときのノートの取り方を比較します。付箋派、マーカー派、デジタルノート派、それぞれの長所と短所を実体験をもとに紹介します。
foo, bar, Alice, Bob はどこから来たのか - 技術書のサンプル名の由来
技術書やコード例でおなじみの foo, bar, Alice, Bob。これらの名前にはそれぞれ歴史的な由来があります。知っていると少し楽しくなる雑学を紹介します。
ソフトウェア開発の歴史を変えた 5 冊の技術書
アルゴリズムの学問化からコードの可読性革命まで、ソフトウェア開発の方向性を決定づけた 5 冊の技術書を、時代背景とエピソードとともに紹介します。