実例で学ぶゲーム3D数学

[cover photo]
オライリー・ジャパンで書籍を購入:
定価3,672円


近年のゲーム開発では3DCGや物理シミュレーションなどの技術が多用されているため、その基盤である数学についての理解なしに商業ベースのゲーム開発はありえません。本書では、ゲーム開発や3DCGで用いらる数学的な要素――デカルト座標系、ベクトル、行列、線型代数、オイラー角、四元数、座標変換(平行移動、回転、拡大縮小)、幾何形状プリミティブの種類と構造体、プリミティブの可視性と衝突判定といった3D数学、さらにはグラフィックス用の3D数学――についてサンプルを多用しながらわかりやすく解説します。

原書(英語版)のWebページ
原書:3D Math Primer for Graphics and Games Development
原著者によるサポートサイト

和書(日本語翻訳版)のサンプルPDF
訳者まえがき、まえがき (1MB)
7章 (10MB)
9章 --抜粋-- (5.5MB)
14章 --抜粋-- (2MB)

関連書籍

C++ ライブラリ クイックリファレンス
あなたの知らないところでソフトウェアは何をしているのか?
「おもしろい」のゲームデザイン
ゲーム開発者のためのAI入門
集合知プログラミング
実例で学ぶゲームAIプログラミング
初めてのActionScript 3.0

訳者まえがき
まえがき
1章 デカルト座標系
	1.1 1D数学
	1.2 2Dデカルト数学
		1.2.1 例:架空の町デカルト
		1.2.2 任意の2D座標空間
		1.2.3 デカルト座標を用いて2Dで場所を指定する
	1.3 2Dから3Dへ
		1.3.1 もう1つの次元、もう1つの軸
		1.3.2 3Dで位置を指定する
		1.3.3 左手座標系と右手座標系
		1.3.4 本書で使われる重要な慣習
	1.4 練習問題
2章 複数の座標空間
	2.1 なぜ複数の座標空間を使うのか?
	2.2 便利な座標空間
		2.2.1 ワールド空間
		2.2.2 オブジェクト空間
		2.2.3 カメラ空間
		2.2.4 慣性空間
	2.3 入れ子になった座標空間
	2.4 座標空間を指定する
	2.5 座標空間の変換
	2.6 練習問題
3章 ベクトル
	3.1 ベクトル ─ 数学的な定義
		3.1.1 ベクトルとスカラー
		3.1.2 ベクトルの次元
		3.1.3 記法
	3.2 ベクトル ─ 幾何学的な定義
		3.2.1 ベクトルはどのように見えるか?
		3.2.2 位置と移動
		3.2.3 ベクトルを指定する
		3.2.4 一連の移動としてのベクトル
	3.3 ベクトルと点
		3.3.1 相対位置
		3.3.2 点とベクトルの関係
	3.4 練習問題
4章 ベクトルの演算
	4.1 線型代数 vs. 私たちが必要とするもの
	4.2 フォントの約束事
	4.3 ゼロベクトル
	4.4 ベクトルの反転
		4.4.1 線型代数の公式
		4.4.2 幾何学的解釈
	4.5 ベクトルの大きさ(長さ)
		4.5.1 線型代数の公式
		4.5.2 幾何学的解釈
	4.6 ベクトルにスカラーを掛ける
		4.6.1 線型代数の公式
		4.6.2 幾何学的解釈
	4.7 ベクトルの正規化
		4.7.1 線型代数の公式
		4.7.2 幾何学的解釈
	4.8 ベクトルの足し算と引き算
		4.8.1 線型代数の公式
		4.8.2 幾何学的解釈
		4.8.3 ある点から別の点へのベクトル
	4.9 距離の公式
	4.10 ベクトルの内積
		4.10.1 線型代数の公式
		4.10.2 幾何学的解釈
		4.10.3 あるベクトルを別のベクトルへ投影する
	4.11 ベクトルの外積
		4.11.1 線型代数の公式
		4.11.2 幾何学的解釈
	4.12 線型代数の恒等式
	4.13 練習問題
5章  簡単な3Dベクトルクラス
	5.1 クラスのインタフェース
	5.2 Vector3クラスの定義
	5.3 設計上の決定
		5.3.1 単精度浮動小数点と倍精度浮動小数点
		5.3.2 演算子オーバーロード
		5.3.3 最も重要な演算だけを提供する
		5.3.4 よけいな演算子をオーバーロードしない
		5.3.5 定数型メンバ関数を用いる
		5.3.6 const&引数を用いる
		5.3.7 メンバ関数と非メンバ関数
		5.3.8 デフォルトの初期化処理なし
		5.3.9 仮想関数を使用しない
		5.3.10 情報隠蔽を使わない
		5.3.11 グローバルなゼロベクトル定数
		5.3.12 Point3クラスはない
		5.3.13 最適化に関して
6章 行列入門
	6.1 行列 ─ 数学的な定義
		6.1.1 行列の次元と表記法
		6.1.2 正方行列
		6.1.3 行列としてのベクトル
		6.1.4 転置
		6.1.5 行列にスカラーを掛ける
		6.1.6 2つの行列の掛け算
		6.1.7 ベクトルと行列を掛ける
		6.1.8 行ベクトルと列ベクトル
	6.2 行列 ─ 幾何学的解釈
		6.2.1 どうやって行列はベクトルを座標変換するのでしょうか?
		6.2.2 行列はどのように見えるでしょう?
		6.2.3 まとめ
	6.3 練習問題
7章 行列と線型変換
	7.1 オブジェクトの変換と座標空間の変換
	7.2 回転
		7.2.1 2Dにおける回転
		7.2.2 基本軸の周りの3D回転
		7.2.3 任意の軸の周りの3D回転
	7.3 スケーリング
		7.3.1 基本軸に沿ったスケーリング
		7.3.2 任意の向きでのスケーリング
	7.4 正投影
		7.4.1 基本軸または基本平面への投影
		7.4.2 任意の直線や平面上への投影
	7.5 リフレクション
	7.6 せん断
	7.7 座標変換の合成
	7.8 座標変換の分類
		7.8.1 線型変換(一次変換)
		7.8.2 アフィン変換
		7.8.3 可逆変換
		7.8.4 角度保存変換
		7.8.5 直交変換
		7.8.6 剛体変換
		7.8.7 座標変換のタイプのまとめ
	7.9 練習問題
8章 より詳しい行列の説明
	8.1 行列式
		8.1.1 線型代数の公式
		8.1.2 幾何学的解釈
	8.2 逆行列
		8.2.1 線型代数の公式
		8.2.2 幾何学的解釈
	8.3 直交行列
		8.3.1 線型代数の公式
		8.3.2 幾何学的解釈
		8.3.3 行列の直交化
	8.4 4×4の同次座標行列
		8.4.1 4D同次空間
		8.4.2 4×4の平行移動行列
		8.4.3 一般的なアフィン変換
		8.4.4 透視投影
		8.4.5 ピンホールカメラ
		8.4.6 4×4の行列を使った透視投影
	8.5 練習問題
9章 3Dにおける方向と角変位
	9.1 方向とは何か?
	9.2 行列形式
		9.2.1 どの行列?
		9.2.2 行列形式の長所
		9.2.3 行列形式の短所
		9.2.4 まとめ
	9.3 オイラー角
		9.3.1 オイラー角とは何か?
		9.3.2 その他のオイラー角の約束事
		9.3.3 オイラー角の長所
		9.3.4 オイラー角の短所
		9.3.5 まとめ
	9.4 四元数
		9.4.1 四元数の表記法
		9.4.2 複素数としての四元数
		9.4.3 軸と角度の対としての四元数
		9.4.4 四元数の符号反転
		9.4.5 恒等四元数
		9.4.6 四元数の大きさ
		9.4.7 四元数の共役と逆数
		9.4.8 四元数の乗算(外積)
		9.4.9 四元数の差分
		9.4.10 四元数の内積
		9.4.11 四元数の対数(log)、指数(exp)、スカラーによる乗算
		9.4.12 四元数の累乗
		9.4.13 四元数の補間 ─ 別名“slerp”
		9.4.14 四元数のスプライン ─ 別名“squad”
		9.4.15 四元数の長所と短所
	9.5 手法の比較
	9.6 表現間の変換
		9.6.1 オイラー角から行列への変換
		9.6.2 行列からオイラー角への変換
		9.6.3 四元数から行列への変換
		9.6.4 行列から四元数への変換
		9.6.5 オイラー角から四元数への変換
		9.6.6 四元数からオイラー角への変換
	9.7 練習問題
10章 C++による座標変換
	10.1 概説
	10.2 EulerAnglesクラス
	10.3 Quaternionクラス
	10.4 RotationMatrixクラス
	10.5 Matrix4x3クラス
11章 幾何形状プリミティブ
	11.1 表現手法
		11.1.1 陰関数形式
		11.1.2 パラメトリック形式
		11.1.3 直接形式
		11.1.4 自由度
	11.2 直線と光線
		11.2.1 2点による表現
		11.2.2 パラメトリックな光線の表現
		11.2.3 直線の特別な2D表現
		11.2.4 表現間の変換
	11.3 球と円
	11.4 バウンディングボックス
		11.4.1 AABBの表現
		11.4.2 AABBの計算
		11.4.3 AABB vs. バウンディングスフィア
		11.4.4 AABBの座標変換
	11.5 平面
		11.5.1 陰関数形式 ─ 平面の方程式
		11.5.2 3点を使った定義
		11.5.3 4つ以上の点に対する最適合平面
		11.5.4 点から平面への距離
	11.6 三角形
		11.6.1 三角形の基本的性質
		11.6.2 三角形の面積
		11.6.3 重心空間
		11.6.4 特別な点
	11.7 ポリゴン
		11.7.1 単純ポリゴンvs.複合ポリゴン
		11.7.2 自己交差ポリゴン
		11.7.3 凸ポリゴン vs. 凹ポリゴン
		11.7.4 三角形分割と扇状の分割
	11.8 練習問題
12章 幾何テスト
	12.1 2Dの陰関数形式の直線上の最も近い点
	12.2 パラメトリックな光線上の最も近い点
	12.3 平面上の最も近い点
	12.4 円/球上の最も近い点
	12.5 AABBで最も近い点
	12.6 交差テスト
	12.7 2Dの陰関数形式の2本の直線の交差
	12.8 3Dにおける2本の光線の交差
	12.9 光線と平面の交差
	12.10 AABBと平面の交差
	12.11 3つの平面の交差
	12.12 光線と円/球との交差
	12.13 2つの円/球の交差
	12.14 球とAABBの交差
	12.15 球と平面の交差
	12.16 光線と三角形の交差
	12.17 光線とAABBの交差
	12.18 2つのAABBの交差
	12.19 他のテスト
	12.20 AABB3クラス
	12.21 練習問題
13章 三角形メッシュ
	13.1 メッシュを表現する
		13.1.1 インデックス付き三角形メッシュ
		13.1.2 高度なテクニック
		13.1.3 レンダリングに特化した表現
		13.1.4 頂点キャッシュ
		13.1.5 三角形ストリップ
		13.1.6 三角形ファン
	13.2 付加的なメッシュ情報
		13.2.1 テクスチャマップ座標
		13.2.2 面の法線
		13.2.3 ライティングの値
	13.3 トポロジーと一貫性
	13.4 三角形メッシュの操作
		13.4.1 区分操作
		13.4.2 頂点を1つに貼り合わせる
		13.4.3 面を分離する
		13.4.4 辺の破壊
		13.4.5 メッシュの破壊
	13.5 C++の三角形メッシュクラス
14章 グラフィックス用の3D数学
	14.1 グラフィックスパイプラインの概要
	14.2 視野のパラメータを設定する
		14.2.1 出力ウィンドウを指定する
		14.2.2 ピクセルの縦横比
		14.2.3 視錐台
		14.2.4 視野とズーム
	14.3 座標空間
		14.3.1 モデリング空間とワールド空間
		14.3.2 カメラ空間
		14.3.3 クリップ空間
		14.3.4 スクリーン空間
	14.4 ライティングとフォグ
		14.4.1 色に関する数学
		14.4.2 光源
		14.4.3 標準のライティングの方程式 ─ 概要
		14.4.4 鏡面成分
		14.4.5 拡散成分
		14.4.6 環境成分
		14.4.7 光の減衰
		14.4.8 ライティングの方程式 ─ すべてを一緒にする
		14.4.9 フォグ
		14.4.10 フラットシェーディングとグーローシェーディング
	14.5 バッファ
	14.6 テクスチャマップ処理
	14.7 幾何形状の生成と送出
		14.7.1 LODの選択とプロシージャルモデリング
		14.7.2 APIへの幾何形状の送出
	14.8 座標変換とライティング
		14.8.1 クリップ空間への座標変換
		14.8.2 頂点のライティング
	14.9 裏面カリングとクリッピング
		14.9.1 裏面カリング
		14.9.2 クリッピング
	14.10 ラスタライズ処理
15章 可視性の決定
	15.1 バウンディグボリュームテスト
		15.1.1 視錐台に対するテスト
		15.1.2 オクルージョンをテストする
	15.2 空間分割テクニック
	15.3 グリッド方式
	15.4 四分木と八分木
	15.5 BSPツリー
		15.5.1 古典的なBSP
		15.5.2 任意の分割面
	15.6 オクルージョンカリングテクニック
		15.6.1 潜在的な可視集合
		15.6.2 ポータルテクニック

付録A 数学の復習
	A.1 総和の記号
	A.2 角度、度、ラジアン
	A.3 三角関数
	A.4 三角恒等式
付録B ゲーム開発者のための確率・統計入門
	B.1 確率
		B.1.1 確率の基礎
		B.1.2 集合
		B.1.3 確率と集合
		B.1.4 統計的確率
		B.1.5 条件付き確率
	B.2 統計
		B.2.1 度数分布
		B.2.2 資料の代表値
		B.2.3 資料のちらばり
		B.2.4 確率変数と確率分布
		B.2.5 さまざまな分布
	B.3 乱数
		B.3.1 疑似乱数
		B.3.2 疑似乱数の性能評価
		B.3.3 メルセンツイスタ
	B.4 さいごに
付録C 参考文献
あとがき
索引

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

■P.vii 下から4行目
  • 【誤】本書は入門書であり、普通は数ページでさっとごまかされたり、他の本では付録に追いやられていたりする話題である、基本的な3Dの概念をカバーすることに力を注いでいます(結局のところ、みなさんはこの手の内容はすでにすべて知っているためです)。
  • 【正】本書は入門書であり、普通は数ページでさっとごまかされたり、他の本では付録に追いやられていたりする話題(結局のところ、みなさんはこの手の内容はすでにすべて知っているためです)である、基本的な3Dの概念をカバーすることに力を注いでいます。
■P.xii 下から1行目
  • 【誤】閉め切り
  • 【正】締め切り
■P.1 下から3行目
  • 【誤】問に
  • 【正】問いに
■P.2 下から3行目
  • 【誤】「1」、「2」などの数
  • 【正】「1」、「2」などの数字
■P.3 下から4行目
  • 【誤】礼儀正しい
  • 【正】洗練された
■P.3 下から2行目
  • 【誤】今問題になっているように、
  • 【正】今のところそうだとされているように、
■P.3 下から1行目
  • 【誤】それ以来私たちは、数えるべきものがなくなってしまったのです
  • 【正】それ以来私たちは、数えるべきものがなくなってしまうのです
■P.4 上から1行目
  • 【誤】電話、殺菌剤
  • 【正】電話機の除菌剤
■P.4 上から1行目
  • 【誤】数え尽くしてしまったのです
  • 【正】数え尽くしてしまうのです
■P.4 上から2行目
  • 【誤】その結果、自然数の有限な(確かに大きいですが、有限な)部分集合だけを用いる必要がありますが、私たちは宇宙を離散数学だけで記述できるということになります。
  • 【正】その結果、私たちは宇宙を離散数学だけで記述できるということになります。自然数の有限な(確かに大きいですが、有限な)部分集合を用いるだけでいいのです。
■P.4 上から12行目
  • 【誤】みなさんが実世界で
  • 【正】みなさんは実世界で
■P.4 上から15行目
  • 【誤】記述されます。
  • 【正】説明できます。
■P.4 上から18行目
  • 【誤】人間が探検するのに数分かかるような
  • 【正】人間が探検するのに数分以上かかるような
■P.4 上から18行目
  • 【誤】適度の広さの仮想現実
  • 【正】適当な種類の仮想現実
■P.4 下から7行目
  • 【誤】なのでしょか?
  • 【正】なのでしょうか?
■P.12 下から4行目
  • 【誤】+zがページの内側を指して
  • 【正】+zがページの奥を指して
■P.12 下から3行目
  • 【誤】+zがページの外側を向いて
  • 【正】+zがページの手前を向いて
■P.14 下から5行目
  • 【誤】勉強しましょう。
  • 【正】よく見てください。
■P.27 上から1行目
  • 【誤】仮想世界が存続
  • 【正】仮想世界が存在
■P.27 上から13行目
  • 【誤】ローカルな子空間ではなく
  • 【正】ローカルな子座標空間ではなく
■P.28 上から1行目
  • 【誤】回転によって慣性空間とワールド空間
  • 【正】回転によってオブジェクト空間と慣性空間
■P.36 下から9行目
  • 【誤】基準座標系の文脈で
  • 【正】基準座標系の中で
■P.37 下から9行目
  • 【誤】点とベクトルの間の関数は
  • 【正】点とベクトルの間の混乱は
■P.37 下から4行目
  • 【誤】任意の点に対して相対的でない量を扱う場合が多いのです。
  • 【正】任意の点に対して[_Fb_]相対的でない量[_/Fb_]を扱う場合が多いのです。
■P.40 上から2行目
  • 【誤】線型代数の教科書で一般化されてしまっていると
  • 【正】線型代数の教科書が行っているくらいに一般化されたレベルでは、
■P.41 下から6行目
  • 【誤】集合について
  • 【正】任意の集合について
■P.54 式4-17のキャプション
  • 【誤】式4-17 内積を使って2つのベクトルのなす角を計算する
  • 【正】式4-17 内積を使って2つのベクトルのなす角を計算する†
■P.54 式4-18のキャプション
  • 【誤】式4-18 2つの単位ベクトルのなす角を計算する†
  • 【正】式4-18 2つの単位ベクトルのなす角を計算する
■P.56 上から9行目
  • 【誤】2Dベクトルにだけ適用されます。
  • 【正】3Dベクトルにだけ適用されます。
■P.56 式4-20のキャプション
  • 【誤】内積
  • 【正】外積
■P.56 下から5行目
  • 【誤】a・(b×c)は定義されません。
  • 【正】(a・b)×cは定義されません。
■P.59 表4-2の第8項目ベクトルの足し算に適用したピタゴラスの定理
  • 【誤】||a||^2 + ||b||^2 = ||a + b||^2  ベクトルの足し算に適用したピタゴラスの定理。
  • 【正】||a||^2 + ||b||^2 = ||a + b||^2  ベクトルの足し算に適用したピタゴラスの定理。ただしaとbは原点からのベクトルで直交している。
■P.63 下から13行目
  • 【誤】よいクラスの設定は
  • 【正】よいクラスの設計は
■P.67 下から8行目
  • 【誤】これらは、インターネット上のコードをみたり、自分で試してみてあまりよい考えでないことがわかったりします
  • 【正】これらは、インターネット上に置かれているコードで見かけたりしますが、自分で試してみるとあまりよい考えでないことがわかります。
■P.69 下から16行目
  • 【誤】オーバーロードされた演算子は、外積用の関数呼び出しよりもエレガントなものにはならないのです。しかしながら、このオーバーロードされた演算子は、関数呼び出しよりも、明らかにわかりやすくはないのです。%と×の類似がわからないプログラマは特にそうです。
  • 【正】しかしながら、このオーバーロードされた演算子は、関数呼び出しよりも、明らかにわかりやすくはないのです。%と×の類似がわからないプログラマは特にそうですが、オーバーロードされた演算子は、外積用の関数呼び出しよりもエレガントなものにはならないのです。
■P.70 上から16行目
  • 【誤】ベクトル表現
  • 【正】ベクトル式
■P.70 下から8行目
  • 【誤】ベクトル表現
  • 【正】ベクトル式
■P.71 上から11行目(リスト5-2の「m = (a + b).mag();」の上のコメント)
  • 【誤】// しかし、ベクトル表現を持つ場合は、非メンバ関数スタイルは不格好に見える
  • 【正】// しかし、ベクトル式を持つ場合は、メンバ関数スタイルは不格好に見える
■P.71 下から8行目
  • 【誤】ベクトル表現
  • 【正】ベクトル式
■P.72 下から14行目
  • 【誤】また、アクセス関数の使用も
  • 【正】また、アクセス関数の使用は
■P.73 上から11行目
  • 【誤】(点と線の間には明確な線引きが存)在することが多いのです
  • 【正】(点と線の間には明確な線引きが存)在しないことが多いのです
■P.76 下から14行目
  • 【誤】ベクトル表現
  • 【正】ベクトル式
■P.76 下から3行目
  • 【誤】ベクトル表現
  • 【正】ベクトル式
■P.88 下から16行目
  • 【誤】どんな線型変換でも
  • 【正】どのような線型変換でも
■P.89 上から1行目
  • 【誤】解釈されることが説明しています。
  • 【正】解釈されることを説明しました。
■P.95 上から1行目
  • 【誤】また箱や補助物体を使うとまた想像し
  • 【正】また箱や補助物体を使うと想像し
■P.99 下から4行目
  • 【誤】この図全体(座標空間および車)を、座標空間をページの標準方向に戻すように回転させてみます
  • 【正】この座標空間がこのページの「標準」方向に戻るように、この図全体(座標空間と車)を回転させてみます
■P.107 下から18行目
  • 【誤】均等スケーリングの実行になります
  • 【正】均等スケーリングになります
■P.114 上から2行目
  • 【誤】面積と体積は
  • 【正】面積や体積は
■P.116 上から9行目
  • 【誤】代数による見方からは
  • 【正】代数的な観点からは
■P.118 上から8行目
  • 【誤】の形をした任意の変換はアフィン変換です
  • 【正】の形をした変換はすべてアフィン変換です
■P.123 式8-3の直前の行
  • 【誤】余因子は
  • 【正】余因子(cofactor)は
■P.124 下から7行目
  • 【誤】影響を与えないが、
  • 【正】影響を与えずに、
■P.125 下から8行目
  • 【誤】符号付き面積です
  • 【正】符号付き体積です
■P.125 下から2行目
  • 【誤】行列が負なら、
  • 【正】行列式が負なら、
■P.129 上から3行目
  • 【誤】もしくはその両方
  • 【正】もしくはその片方
■P.129 上から4行目
  • 【誤】そういった場合です
  • 【正】このケースです
■P.130 上から2行目
  • 【誤】ベクトルの自身との
  • 【正】あるベクトルと自分自身との
■P.130 上から9行目
  • 【誤】それぞれ直交
  • 【正】お互いに直交
■P.131 式8-9の下、2行目
  • 【誤】ために直交基底が必要
  • 【正】ために正規直交基底が必要
■P.131 式8-9の下、7行目
  • 【誤】1つのパスで
  • 【正】1回の処理で
■P.132 上から8行目
  • 【誤】すべての点について
  • 【正】すべての点については
■P.132 下から9行目
  • 【誤】これと同じ基本的考え方を
  • 【正】これと基本的に同じ考え方を
■P.136 上から4行目
  • 【誤】7章では、3×3の行列を多くの基本的な座標変換のために紹介しました。
  • 【正】7章では、多くの基本的な座標変換用の3×3行列を示しました。
■P.139 図8-6の中の図ネーム
  • 【誤】投影の中心
  • 【正】投影の中心(ピンホール)
■P.148 上から2行目
  • 【誤】反対向き
  • 【正】逆向き
■P.148 上から6行目
  • 【誤】行列の座標変換の実際の向き
  • 【正】実際の行列の座標変換の向き
■P.149 下から13行目
  • 【誤】6つの制限が満たされる必要があります。
  • 【正】満たされるべき6つの制約があります。
■P.149 下から9行目
  • 【誤】6つの制限
  • 【正】6つの制約
■P.157 下から8行目
  • 【誤】最小のデータ量
  • 【正】最少のデータ量
■P.164 上から1行目
  • 【誤】ωを否定する
  • 【正】ωの符号を反転する
■P.178 上から5行目
  • 【誤】私たちにとって
  • 【正】四元数は私たちにとって
■P.196 上から2行目
  • 【誤】設定されています
  • 【正】設計されています
■P.203 上から8行目(リスト10-3)
  • 【誤】// 完全なasin関数を用いる必要はない
  • 【正】// 安全なasin関数を用いる必要はない
■P.228 下から11行目
  • 【誤】剛体の座標変換
  • 【正】剛体変換
■P.230 上から14行目(リスト10-9の「Matrix4x3::identity()」の最後の式)
  • 【誤】tz = 1.0f;
  • 【正】tz = 0.0f;
■P.244 上から9行目(リスト10-9)
  • 【誤】剛体の座標変換
  • 【正】剛体変換
■P.244 上から14行目(リスト10-9)
  • 【誤】剛体でない座標変換
  • 【正】非剛体変換
■P.299 下から10行目
  • 【正】バウンディグボックス
  • 【誤】バウンディングボックス
■P.308 下から5行目
  • 【誤】バンディング
  • 【正】バウンディング
■P.333 下から13行目(リスト13-2)
  • 【誤】テキストマップ
  • 【正】テクスチャマップ
■P.334 上から12行目
  • 【誤】「おまけ」な
  • 【正】「おまけ」の
■P.378 下から2行目
  • 【誤】数が数えらるとすると、
  • 【正】数が数えられるとすると、
■P.411 上から10行目(リスト15-2)
  • 【誤】void raytrace(Vector3 rayOrg, Vector3 rayDelta, float &minT);
  • 【正】void rayTrace(Vector3 rayOrg, Vector3 rayDelta, float &minT);
■P.412 上から2行目(リスト15-2)
  • 【誤】void Node::raytrace(Vector3 rayOrg, Vector3 rayDelta, float &minT) {
  • 【正】void Node::rayTrace(Vector3 rayOrg, Vector3 rayDelta, float &minT) {
■P.412 上から13行目(リスト15-2)
  • 【誤】objPtr->rayTrace(rayOrg, rayDelta);
  • 【正】objPtr->rayTrace(rayOrg, rayDelta, minT);
■P.433 上から7行目
  • 【誤】=φである
  • 【正】=φである。

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

■P.164 式9-9
  • 【誤】誤った図
  • 【正】正しい図
■P.167 式9-13
  • 【誤】誤った図
  • 【正】正しい図
■P.235 下から10行目
  • 【誤】m13 = xx*q.z - ww*q.x
  • 【正】m13 = xx*q.z - ww*q.y

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]