1.1.テクスチャの基本




『安上がりに豪華に見せる』
単純なフェースには単色ではありますが色をつける事が出来ます。この単色のフェースも複数色のフェースを切り絵のように細かく組み合わせる事で画像を実現する事ができます。頑張れば写真と見間違うほどのクオリティを持った画像を作り出すことが出来るでしょう。
しかし、それは非常に多くの労力と作業時間を費やす必要があり、現実的ではありません。例えば1個のサイコロを立体的に表現するには、側面となる6枚の白いフェースに、幾つかの円を配置する事になりますが、1つの円は複数のフェースを組み合わせなければ滑らかな円(拡大しないのならば16枚もあれば円に見えるが、拡大するとなると、その何倍も必要)を描く事はできません。
たった1個のサイコロで数百毎ものフェースを費やすようでは、リアルタイムで動作するゲームなどは作る事はできないであろう。写真のようなクオリティを望む事は非現実的であろう。
まあ、ONIX(オニキス:シリコングラフィック社製のグラフィック専用の大型コンピュータである。高いものは1台数億円もするが、映画で使われるCGは全て同社製のマシンで作られていると言っても過言ではない。)のようなバケモンハードウェアを持っていれば別だが・・・・

そこで考えられたのが、テクスチャという技術である。これは、あらかじめ描いておいた画像(以後「テクスチャ」)をフェースに貼り込んであげると言うものである。フェースにテクスチャを貼り付ける作業は、フェースを描くよりも多くの作業時間を費やしますが、数百枚ものフェースを組み合わせるよりは遥かに高速に処理を行います。
これならば前述のトランプも6枚のテクスチャを貼り込んだフェースを組み合わせるだけでよいだろう。
貼り付けるテクスチャに単純な画像を選ぼうと複雑な(写真のような精密な)画像を選ぼうと処理時間に大きな違いがないので、写真を貼り付けたフェースをリアルタイムに動かす事も容易にできる。

少しの労力で豪華な画像が簡単に作る手法として絶対に覚えてほしいものの一つです。

『貼り方の詳細』
テクスチャを貼る操作(テクスチャを貼る事を以後「ラップ」といいます。ラップとは料理に使うあのラップと同じ単語でメッシュ包む事を示します。)とは「フェースに画像の指定した範囲を割り当てる」事を言います。もう少し詳しく書くと、フェースの各頂点にテクスチャの使用する画像の任意の座標を指定すると、指定した範囲の画像がフェースに貼り付けられるのです。
実際のプログラムでは、メッシュを単位とし、テクスチャ用の1つ画像をメッシュに割り当て、フェース毎にフェースの各頂点に画像の座標を指定する事になります。
このように、フェースを最小単位として地道に指定するラッピングを「手動ラッピング」と言いますが、「面倒!!」と考える人の為に自動でラッピングを行ってくれる「自動ラッピング」という指定方法を用意しています。
自動ラッピングとは、指定の画像をメッシュに均等にラッピングされるよう、メッシュ内のフェースの各頂点に画像の座標を自動で割り振ってくれるとても便利な機能を言います。
となれば、「手動ラッピングなんか必要無いのでは?」と思われるかもしれませんが、自動ラッピングは均等なラッピングを行うものである為、不均等なラッピングを行う為に手動ラッピングが必要になってくるので実装しています。

『自動ラッピングの種類』
自動ラッピングでは、以下に示すような4種類のラップを選択できます。


平行ラップ
メッシュの前面から平行にテクスチャを投影する。


円筒ラップ
メッシュの周りを円筒に囲むようにのテクスチャを投影する。


球形ラップ
メッシュの周りを球形に囲むようにのテクスチャを投影する。



金属ラップ
球形ラップの拡張版で、金属に周辺の画像が映り込んでいるかのように(擬似的に)見えるように、テクスチャを投影する。