「ゲームプログラミング/3Dグラフィック」の版間の差分

削除された内容 追加された内容
編集の要約なし
338 行
大学レベルで回転行列を使って考えれば、これは「回転行列は、2個のベクトルのつくる内積の値を不変に保つ」という定理へと一般化されます。
 
さらには、『直行列』といわれる種類の行列は、2個のベクトルのつくる内積を不変に保つという定理が、すでに解明されています。
 
 
344 行
3D-CG製作で大切なことは、日常的な感覚と、上述の数学的な計算や定理との食い違いを、認識することでしょう。
 
もし、ある若者が、数学を勉強していて直行列の内積不変の定理だけを知っていても、それをプログラミングの場で本書のような予備知識なしで初見で「カメラの位置をそのままで視点の向きを変えても、被写体の見える大きさは変わらない」という事実に気づける人は、そう多くないでしょう。
 
 
3D-CG そのもののビューワーなどのアプリケーション製作に必要な数学力とは、こういう「気づき」のできる能力のことです。けっして単に、直行列の公式だけを知っていても、それだけでは役立たずになってしまいます。
 
==== 円柱投影の場合の視界の特徴 ====
1,144 行
 
 
(数学の理論としては、大学1年くらいで習う行列の理論に対応する。行列の積(かけ算のこと)の計算順序の交換は一般に、交換すると計算結果が変わってしまう。行列AとBで、積ABと積BAは異なる行列である。普遍的な場合の、幾何学的な操作に対応する行列の順序交換の証明のレベルは、大学1~2年のレベルになるので、このwikiの当ページでは証明を省略する。直行列などの交換の問題になる。)
 
 
2,556 行
 
 
なお、法線ベクトルとカメラ向きベクトルとの内積を計算してもいい、・・・というか、普通は法線の情報はベクトルによって与えられるので、向きの計算も内積で計算することになる。
「法線」なんとか法などとも言われる。
 
直角に交わるベクトルどうし2個の内積は0なので、つまりベクトル内積の絶対値が(0ちかくの)一定値未満になれば、輪郭があると検出することになる。
 
 
ともかく、このような法線による輪郭検出の方式のことを、「法線」なんとか法と言う。
 
 
長所としては、法線を計算しておけば、ほかの計算にも流用できる。
2,578 ⟶ 2,584行目:
 
エッジ検出方式の欠点として、ややメモリなどへの計算の負担が重いことである。ゲームとして使う場合、携帯モバイル機器ではエッジ法は利用が難しいだろう。
 
 
GPUをつめる筐体(プレステやデスクトップパソコン)などでは、エッジ法も便利だろう。
 
また、(非ゲームの)テレビ番組や映画などのアニメ作品などでは、メモリ負担は製作側が負担するので、エッジ法も有効だろう。
 
 
法線の計算はベクトル計算なので、エッジ法の場合は、ベクトル内積が一定未満の場合にだけ輪郭があると認定して検出方式である。(同じ向きの単位ベクトルの内積は、1である。向きの差が大きくなるほど、内積は1から下がっていく。直交するベクトルは内積0である。さらに、反対どうしの内積はマイマス1である。)