Posts Tagged 3DCG

ベクトル その8 -クロス積-

外積
ドット積のほかにベクトルではもうひとつの掛け算の方法がある。
「クロス積」または「外積」として知られている。
クロス積はa \times bと表記することからこう呼ばれる。
3Dベクトルのみに適用できる。
また、ドット積とは違い、可換ではない。

公式:\left[  \begin{array}{c}  x_1\\  y_1\\  z_1  \end{array}  \right]  \times  \left[  \begin{array}{c}  x_1\\  y_1\\  z_1  \end{array}  \right]  =  \left[  \begin{array}{c}  y_1 z_2 - z_1 y_2\\  z_1 x_2 - x_x z_2\\  x_1 y_2 - y_1 x_2  \end{array}  \right]

例:
\left[  \begin{array}{c}  4\\  1\\  9  \end{array}  \right]  \times  \left[  \begin{array}{c}  -3\\  7\\  2  \end{array}  \right]  =  \left[  \begin{array}{c}  (1)(2) - (9)(7)\\  (9)(-3) - (4)(2)\\  (4)(7) - (1)(-3)  \end{array}  \right]  =  \left[  \begin{array}{c}  2 - 63\\  -27 - 8\\  28 - (-3)  \end{array}  \right]  =  \left[  \begin{array}{c}  -61\\  -35\\  31  \end{array}  \right]
クロス積の計算は足し算や引き算の優先順位は変わらないが、ドット積とクロス積を組み合わせた場合はクロス積が優先的に計算される。
a \cdot b \times c = a \cdot (b \times c)

クロス積は各々のベクトルに垂直なベクトルとなる。

上記の図ではベクトルa、bは同じ平面上にあり、その平面に垂直なベクトルとなる。
また、a \times bの長さははベクトルa、bの大きさにベクトルa、bなす角のsinを掛けたものと等しくなる。
公式:\|a \times b\| = \|a\|\|b\|sin\theta

aとbが平行、またはどちらかがゼロベクトルならばa \times b = 0となる。
クロス積はゼロベクトルを全てのベクトルに平行と見なす。
また、a \times bはaとbに平行であるもののこちらへ向かってくるベクトルなのか、遠ざかって行くベクトルなのかで2つの可能性がある。

上記は右手系座標系である。
図のようにベクトルaとbを連結したときに反時計回りをする場合、a \times bはこちらへ向かっていることになる。
逆に、時計回りになった場合、遠ざかっている。
また、左手座標系では時計回りの時近づき、反時計回りの時に遠ざかることになる。

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

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その7 -ベクトルの投影-

2つのベクトルvとnが与えられている場合、nに平行な線分v_{\|}と、nに垂直な線分v_\perpに分解することが出来る。

よって、v = v_\perp + v_\|(式1)となる。
v_\|はnの要素中の\displaystyle\frac{\|v_\|\|}{\|n\|}であるから、
\displaystyle{v_\| = n\frac{\|v_\|\|}{\|n\|}}(式2)であると言える。
また、
\displaystyle{cos\theta = \frac{\|v_\|\|}{\|v\|}}(式3)
であるため、
\displaystyle{cos\theta\|v\| = \|v_\|\|}(式4)
と言える。

式2と式4より
\displaystyle{v_\| = n\frac{cos\theta\|v\|}{\|n\|}}(式5)
ドット積の回で使った公式a \cdot b = \|a\|\|b\|cos\thetaを適用すると
  \begin{array}{ll}  v_\| &= \displaystyle{n\frac{\|v\|cos\theta}{\|n\|}}\\[2ex]  &= \displaystyle{n\frac{\|v\|\|n\|cos\theta}{\|n\|^2}}\\[2ex]  &= \displaystyle{n\frac{v \cdot n}{\|n\|^2}}\\[2ex]  \end{array}(式6)
となり、vの底辺の要素を求めることが出来る。

また、式1から
\begin{array}{ll}  v_\perp + v_\| &= v\\[2ex]  v_\perp &= v - v_\|\\[2ex]  &= v - \displaystyle{n\frac{v \cdot n}{\|n\|^2}}  \end{array}
となり、vの高さ要素を求めることが出来る。

例:v = [5, 3], n = [3, 0]の時
\begin{array}{lll}  v_\| &= \displaystyle{n\frac{v \cdot n}{\|n\|^2}} &= \displaystyle{[3, 0]\frac{[5, 3]\cdot[3, 0]}{\|[3, 0]\|^2}}\\[2ex]  &= \displaystyle{[3, 0]\frac{(5)(3) + (3)(0)}{\sqrt{3^2}^2}} &= \displaystyle{[3, 0]\frac{15}{9}}\\[2ex]  &= \displaystyle{[3, 0]\frac{5}{3}} &= \displaystyle{[\frac{3 \times 5}{3}, 0]}\\[2ex]  &= \displaystyle{[5, 0]}  \end{array}
\begin{array}{lll}  v_\perp &= v - \displaystyle{n\frac{v \cdot n}{\|n\|^2}} &= [5, 3] - \displaystyle{[3, 0]\frac{[5, 3]\cdot[3, 0]}{\|[3, 0]\|^2}}\\[2ex]  &= [5, 3] - [5, 0] &= [0, 3]  \end{array}

例:v = [5, 3], n = [4, 2]の時
\begin{array}{lll}  v_\| &= \displaystyle{n\frac{v \cdot n}{\|n\|^2}} &= \displaystyle{[4, 2]\frac{[5, 3]\cdot[4, 2]}{\|[4, 2]\|^2}}\\[2ex]  &= \displaystyle{[4, 2]\frac{(5)(4) + (3)(2)}{\sqrt{4^2 + 2^2}^2}} &= \displaystyle{[4, 2]\frac{20 + 6}{16 + 4}}\\[2ex]  &= \displaystyle{[4, 2]\frac{26}{20}} &= \displaystyle{[4, 2]\frac{13}{10}}\\[2ex]  &= \displaystyle{[\frac{4 \times 13}{10}, \frac{2 \times 13}{10}]} &= \displaystyle{[5.2, 2.6]}  \end{array}
\begin{array}{lll}  v_\perp &= v - \displaystyle{n\frac{v \cdot n}{\|n\|^2}} &= [5, 3] - \displaystyle{[4, 2]\frac{[5, 3]\cdot[4, 2]}{\|[4, 2]\|^2}}\\[2ex]  &= [5, 3] - [5.2, 2.6] &= [-0.2, 0.4]  \end{array}

Post to Twitter

, ,

No Comments

ベクトル その6 -ドット積-

ドット積
ベクトルには2つの掛け算方法がある。
そのひとつが「ドット積」または「内積」と呼ばれる。
ドット積とはベクトルの内積を表現するときにa \cdot bとなるためにこう呼ばれる。
ベクトルのドット積は足し算引き算より優先順位が高い。
ベクトルとスカラー値を掛け算する場合、ドットを省略する場合が多いが、ベクトルの内積を計算するときは省略をしない。
公式:\left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]  \cdot  \left[  \begin{array}{c}  b_1\\  b_2\\  \vdots\\  b_{n-1}\\  b_n  \end{array}  \right]  =  a_1 b_1 + a_2 b_2 + \cdots + a_{n-1} b_{n-1} + a_n b_n
または
\displaystyle  a \cdot b =  \sum^{n}_{i=1}a_i b_i

例:
2D
[\begin{array}{cc}-5 & 8\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (-5)(4) + (8)(7) = -20 + 56 = 36
3D
\left[  \begin{array}{c}  1\\  -4\\  3  \end{array}  \right]  \cdot  \left[  \begin{array}{c}  -7\\  6\\  2  \end{array}  \right]  =  (1)(-7) + (-4)(6) + (3)(2) = -7 + (-24) + 6 = -25

ベクトルのドット積は2つのベクトルがどれくらい似ているかを示す。
ドット積が大きければ大きいほど2つのベクトルは似ている。

下記は「例:2D」を図示したもの。

参考:[\begin{array}{cc}-5 & 8\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (-5)(4) + (8)(7) = -20 + 56 = 36

下記はX、Y共に同じ方向を向いている場合。

[\begin{array}{cc}2 & 8\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (2)(4) + (8)(7) = 8 + 56 = 64
最初の例より値が大きくなった。

同一ベクトルの場合。

[\begin{array}{cc}4 & 7\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (4)(4) + (7)(7) = 16 + 49 = 65
同じベクトルになると、さらに値が大きくなった。

Y成分だけ真逆の場合。

[\begin{array}{cc}4 & 7\end{array}]\cdot[\begin{array}{cc}4 & -7\end{array}] = (4)(4) + (7)(-7) = 16 + (-49) = -33
X成分が同じものの、Y成分の差が大きいため、かなり値が小さくなった。

真逆のベクトルの場合。

[\begin{array}{cc}-4 & -7\end{array}]\cdot[\begin{array}{cc}-4 & -7\end{array}] = (-4)(4) + (-7)(7) = -16 + (-49) = -65
全てが真逆のため、2番目の真逆の値を示した。

X成分だけ真逆の場合。

[\begin{array}{cc}-4 & 7\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (-4)(4) + (7)(7) = -16 + 49 = 33
Y成分だけ真逆の時の値を反転させた値となった。
X成分が違うものの、Y成分が同じため、比較的大きい値になった。

AOBが直角の場合。

[\begin{array}{cc}-7 & 4\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (-7)(4) + (4)(7) = -28 + 28 = 0
a \cdot bのドット積が直角の場合、0になる。

ベクトルの内積の幾何学的解釈
公式:a \cdot b = \|a\|\|b\|cos\theta
ドット積はベクトルの大きさとベクトルのなす角ののcosを掛けたものと等しくなる。

ベクトルのなす角を2つのベクトルから求める
公式:\theta = arccos\displaystyle\left(\frac{a \cdot b}{\|a\|\|b\|}\right)
aとbの単位ベクトルを掛けたものにarc cosinで求めているだけなので、aとbが既に単位ベクトルの場合は分母を省略可。
その場合は
公式:\theta = arccos(a \cdot b)
となる。
※arccos(x)はarc cosin(アークコサイン)の意。
また、この場合\thetaは度数法ではなく、弧度法なので単位はラジアンとなる。
公式:360^\circ = 2\pi

再び2Dの時に使ったベクトルを元に計算すると、
  \begin{array}{ll}  \theta &= \displaystyle{arccos\left(\frac{a \cdot b}{\|a\|\|b\|}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{[\begin{array}{cc}-5 & 8\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}]}{\|[\begin{array}{cc}-5 & 8\end{array}]\|\|[\begin{array}{cc}4 & 7\end{array}]\|}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{(-5)(4) + (8)(7)}{\sqrt{(-5)^2+8^2}\sqrt{4^2+7^2}}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{-20 + 56}{\sqrt{25+64}\sqrt{16+49}}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{36}{\sqrt{89}\sqrt{65}}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{36}{\sqrt{5785}}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{36}{76.059}\right)}\\[1em]  &= arccos(0.4733)  \end{array}
三角関数表により
arccos(0.4733)\fallingdotseq62^\circ

角度による関係

a \cdot b \theta 角度 aとbの関係
> 0 0^\circ \leq \theta < 90^\circ 鋭角 同じ向き、あるいは同じような方向に向いている。
= 0 \theta = 90^\circ 直角 直交している。
< 0 90^\circ < \theta \leq 180^\circ 鈍角 真逆、あるいは反対側の方向に向いている。

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

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その5 -距離-

aとbがあったとして、その間のベクトルVはb – aあるいはa – bとなる。
公式:V = b - a =  \left[  \begin{array}{c}  b_x - a_x\\  b_y - a_y\\  b_z - a_z  \end{array}  \right]

距離は
{\rm Distance}(a, b) = \|b - a\| = \sqrt{(b_x - a_x)^2 + (b_y - a_y)^2 + (b_z - a_z)^2}
となる。

例:
a = [5, 9, -8], b = [-11, 1, 7], \overrightarrow{ab}の時
\begin{array}{ll}  {\rm Distance}(a, b) &= {\rm Distance}([5,9, -8], [-11, 1, 7])\\[0.5em]  &= \|[5,9,-8], [-11, 1,7]\|\\[0.5em]  &= \sqrt{(-11 - 5)^2 + (1 - 9)^2 + (7 - (-8))^2}\\[0.5em]  &= \sqrt{(-16)^2 + (-8)^2 + 15^2}\\[0.5em]  &= \sqrt{256 + 64 + 225}\\[0.5em]  &= \sqrt{545}\\[0.5em]  &\fallingdotseq 23.3452  \end{array}

\overrightarrow{ba}も同様に
\begin{array}{ll}  {\rm Distance}(b, a) &= {\rm Distance}([-11, 1, 7], [5,9, -8])\\[0.5em]  &= \|[-11, 1,7], [5,9,-8]\|\\[0.5em]  &= \sqrt{(5 - (-11))^2 + (9 - 1)^2 + (-8 - 7)^2}\\[0.5em]  &= \sqrt{16^2 + 8^2 + (-15)^2}\\[0.5em]  &= \sqrt{256 + 64 + 225}\\[0.5em]  &= \sqrt{545}\\[0.5em]  &\fallingdotseq 23.3452  \end{array}
となる。

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

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その4 -足し算と引き算-

ベクトル同士の足し算引き算が出来る。

ベクトルの足し算
公式:\left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]  +  \left[  \begin{array}{c}  b_1\\  b_2\\  \vdots\\  b_{n-1}\\  b_n  \end{array}  \right]  =  \left[  \begin{array}{c}  a_1 + b_1\\  a_2 + b_2\\  \vdots\\  a_{n-1} + b_{n-1}\\  a_n + b_n  \end{array}  \right]
ベクトルの各要素を足すのみ。
例:\begin{array}{ll}  \left[  \begin{array}{c}  12\\  -30\\  5  \end{array}  \right]  +  \left[  \begin{array}{c}  -3\\  7\\  19  \end{array}  \right]  &=  \left[  \begin{array}{c}  12 + (-3)\\  -30 + 7\\  5 + 19  \end{array}  \right]\\  &=  \left[  \begin{array}{c}  9\\  -23\\  24  \end{array}  \right]  \end{array}

ベクトルの引き算
公式:\left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]  -  \left[  \begin{array}{c}  b_1\\  b_2\\  \vdots\\  b_{n-1}\\  b_n  \end{array}  \right]  =  \left[  \begin{array}{c}  a_1 - b_1\\  a_2 - b_2\\  \vdots\\  a_{n-1} - b_{n-1}\\  a_n - b_n  \end{array}  \right]
ベクトルの足し算と同様、ベクトルの各要素を引くのみ。
例:\begin{array}{ll}  \left[  \begin{array}{c}  1\\  22\\  -5  \end{array}  \right]  -  \left[  \begin{array}{c}  -14\\  10\\  0  \end{array}  \right]  &=  \left[  \begin{array}{c}  1 - (-14)\\  22 - 10\\  -5 - 0  \end{array}  \right]\\  &=  \left[  \begin{array}{c}  13\\  12\\  -5  \end{array}  \right]  \end{array}

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

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その3 -ベクトルの正規化-

ベクトルの正規化
公式:\displaystyle {\bf v}_{\rm norm}=\frac{\bf v}{\|{\bf v}\|},{\bf v}\neq {\bf 0}
ベクトルの正規化とは、ベクトルの各要素をベクトルの大きさで割ったものとなる。
ベクトルの各要素のベクトルの大きさから占める割合が求まる。
後々計算が楽になるらしい。

例:\displaystyle  \begin{array}{ll}  \displaystyle \frac{[\begin{array}{cc}12 & -5\end{array}]}{\|[\begin{array}{cc}12 & -5\end{array}]\|} &= \displaystyle \frac{[\begin{array}{cc}12 & -5\end{array}]}{\sqrt{12^2+(-5)^2}}\\  &= \displaystyle \frac{[\begin{array}{cc}12 & -5\end{array}]}{\sqrt{169}}\\[1ex]  &= \displaystyle \frac{[\begin{array}{cc}12 & -5\end{array}]}{13}\\[1ex]  &= \displaystyle \left[\frac{12}{13} \frac{-5}{13}\right]\\[1ex]  &\fallingdotseq \displaystyle [0.923 -0.385]  \end{array}

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

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その2 -ベクトルとスカラーの掛け算・割り算-

ベクトルとスカラーの掛け算
公式:  k \left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]=  \left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]k=  \left[  \begin{array}{c}  ka_1\\  ka_2\\  \vdots\\  ka_{n-1}\\  ka_n  \end{array}  \right]
ベクトルとスカラーの掛け算はベクトルの各要素にスカラー値を掛けるのみ。

ベクトルをゼロ以外のスカラーで割る
公式:\displaystyle  \frac{\bf v}{k}=  \left(  \frac{1}{k}  \right){\bf v}=  \left[  \begin{array}{c}  {\bf v}_x/k\\  {\bf v}_y/k\\  {\bf v}_z/k  \end{array}  \right]
ベクトルのそれぞれの要素をスカラー値で割る。

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

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その1 -ゼロベクトル・ベクトルの反転・ベクトルの大きさ-

ゼロベクトル
公式:\bf{0}=\left[  \begin{array}{c}  0\\  0\\  \vdots\\  0  \end{array}  \right]
通常のベクトルはあらゆる方向へ無限大なのに対して、ゼロベクトルはどの方向に対しても0をさす。

ベクトルの反転
公式:-\left[  \begin{array}{c}  a_{1}\\  a_{2}\\  \vdots\\  a_{n-1}\\  a_{n}  \end{array}  \right]=\left[  \begin{array}{c}  -a_{1}\\  -a_{2}\\  \vdots\\  -a_{n-1}\\  -a_{n}  \end{array}  \right]
ベクトルを反転するには全要素を反転させれば求められる。

ベクトルの大きさ
公式:\|v\|=\sqrt{{v_{1}}^{2}+{v_{2}}^{2}+\cdots+{v_{n-1}}^{2}+{v_{n}}^{2}}
\displaystyle\|v\|=\sqrt{\sum^{n}_{i=1}{v_i}^2}
ベクトルの大きさは全要素の二乗を足した数の平方根したものになる。
ベクトルの大きさは\|v\|で表現されるが、|v|と表現されることもある。

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

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

3Dのお話

 アメリカで今年もGDC(Game Developers Conference)が開かれています。このカンファレンスは世界でも最大規模であるため、ゲームの未来の一端が垣間見えたりする、個人的に興味深いイベントだったりします。
 さて、自分は文系大学生であるため、3D演算に使われる数式がわかるはずもないわけですが、イメージだけなら何となく知ったかをしてしまうのです。だから、最新のリアルタイム3DCG技術に興味津々なわけですな。
 で、Microsoftが担当するセッションでは次世代ゲーム開発環境XNAの紹介なんですが、そこから制作されるであろうターゲットマシン、つまり、Xboxの次世代機やら、PCの次世代グラフィックスが何となくわかってしまうのです。
 まず、現状のゲーム専用機のターゲット解像度は640 x 480なんですけど、これが1,920 x 1,080や1,280 x 720という、ハイビジョンを狙った解像度がターゲットになるとのこと。それに伴い、ゲーム内で使われるテクスチャと呼ばれる、まっさらな3Dに貼り付ける写真や、細かく描かれた絵の解像度も上昇し、4,096 x 4,096という解像度まで使えるようになるらしいのですよ。ただ、高価なメモリをPC並みに潤沢に積めないゲーム機では、ケチるしかないと言う現状に変わりないらしいです。
 C言語プログラミングという本にはこういう内容の事が書いてありました。メモリ(データ格納庫)が少ない場合は少ない分だけ演算すればいい。メモリが多い場合は、メモリをたくさん使って演算を減らすと処理が早くなる、と。つまり、GPU(グラフィックス・プロセッサ)の性能がこれだけ向上していて、さらにメモリは高価なままである現状をふまえると、テクスチャを潤沢に用意するのではなく、その都度テクスチャを”生成してしまえばいい”と言うことになります。
 3D技術の一つに、バンプ・マッピングと呼ばれるモノがあります。これは、反射度をポリゴン(主に三角形で構成されるオブジェクト)上に指定することにより、あたかも凹凸がポリゴンで生成されているかのような画像になる技術です。
 さて、映画などで見る3D画像はかつて上映されたアメリカ版「Godzilla」に使用されたゴジラは一体500万~600万ポリゴンで出来ていると言われています。それに対して、現在のゲーム機の平均的なポリゴン演算性のは、様々な処理を考慮すると、1000万ポリゴン/秒と言われています。今のゲームは60FPS(Frame Per Second:秒間~コマ)が一般的で、つまり少なく見積もって1コマ辺り1万6千ポリゴンで、キャラクターが1200ポリゴンくらいで、残りが他のキャラクターやら、そのステージそのものを構成する分で分け合うそうです。ここから考えても、未だにゴジラ1体出すためには、1秒間に1コマ強で、しかもゴジラだけしか出せないと言うことになります。
 映画は数時間かけて1枚を計算するので、あのレベルのオブジェクトを動かすことが出来るのですが、リアルタイムで表現しなくてはならない、ゲームでは、かなりのチョンボをしないといけないわけです。そこで、バンプマップをリアルタイムで計算するというごり押しが登場するのです。高密度なポリゴンモデルからとったバンプデータやら、色データを逐次計算することにより、少ないポリゴンでとてつもなくリアルな画像を生み出すことが出来るのです。それを、プロシージャルテクスチャと言うそうです。
 これを利用すれば、高解像度なテクスチャを必要とせず、逐次高解像度なテクスチャの計算を挟んで最終出力画像をメモリに落とすことが出来ます。このテクスチャはかなり強力なモノで、例えば泥が付いたりといった変化を与えることさえ出来るそうです。
 補足しておきますが、ゲームによってフレーム・レート(1秒間のコマ数)はまちまちですが、格闘ゲームでは瞬時の判断が要求されるため、初代鉄拳の時代から60FPSだったり、レースゲームはフィールドが大きいため、アーケードでこそバーチャレーシングの時点で30FPSであったりするんですが、アーケード版が60FPSであったデイトナUSAはセガ・サターンに移植される際は、噂だと15FPSとか20FPSほどなどと聞きます。PCゲームのFPSは一般的な数値が無く、これは日米の開発スタイルの違いにあり、日本はFPSを固定することを重視し、アメリカはその時点での最大FPSにすることを重視している事から来るのでしょう。
 もっと書けば、アメリカはPCゲームがビデオゲームの主軸であり、PCは日進月歩で進化していくのに対して、日本は数年に一度のペースで安価なゲーム専用マシンで高画質を実現しなければならない状況が続いています。それがアメリカの3DCGを使ったゲームの躍進を支えていることは言うまでもありません。PCゲームはクリエイター達の実験としても、技術蓄積としても、売り上げベースでもうま味があるのです。自分が思うに、日本のゲーム市場の発展を本気で考えているのならば、国内での売り上げが低くても、PCゲームを世界戦略の一貫として逐次投入すべきだと思うのです。
 こうしている間にも、アメリカの大学では明日の3DCG技術が論文という形で発表され続けるのです。日本は学術的な面でのCG技術さえも後れを取っているのです。
参考文献:
Microsoft開発者向けカンファレンス開催
~見えてきた次世代ゲームの形とXbox2の方向性~

 ではでは…。

Post to Twitter

2 Comments