|目次 または フレームありの目次|



5.7 面の材質感表現
 自然界は無数の物体で構成されており、個々の物体はそれぞれ個有の模様(texture)による質感をもっています。このような複雑な情景を写実的に描こうとすると、無限大に近い記憶容量と計算時間が必要である。これを避けるための主な手法として種々のマッピング手法が開発されています。

(1) 図柄多角形

 面上のドア、窓、文字等のような単純な幾何学図形(多角形で表現できるもの)は、面上の図柄として処理できる。すなわち、多角形上に図柄を表す他の多角形を重ねることによって表現できます。図5.26に窓を図柄として扱った建築物の例(福山大学の図書館)の表示例を示す(天空光で照射されているから影は半影をもつ)。

図5.26
図5.26: 図柄を含む建築物の表示例

(2) テクスチャーマッピング
 たとえば、織物は染色された無数の繊維で構成される。これをモデル化するのは困難です。したがって、これらを写真に撮り、2次元画像とし、陰影処理の際に画素単位にマッピングする方法が提案されました。この方法をテクスチャマッピングといいます。マッピングする画像はテクスチャマップ(texture map)、テクスチャパターン、または配列パターンとよばれます。また、この個々の要素はテクセル(texcel)と呼ばれることがあります。このテクスチャマップは、(s, t)座標系をもつものとします。また、曲面はパラメータ(u, v)で定義されたとします。写像は次のように行います。

図5.27
図5.27: テクスチャーマッピング

 図5.27に示すように、スクリーン上(スクリーン座標系)の ある画素(x, y)に相当する3次元曲面上のパラメータ座標(u, v)を求め、次に曲面上の座標からテクスチャマップでの座標系(s, t)への変換を行います。そして、その(s, t)に相当する配列要素に格納されている色を曲面にマッピングします。テクスチャマップは配列で定義されています。すなわち、離散的な座標に対して与えられています。したがって、これを参照するには整数である必要があるから、(s, t)に最も近いものを選択することになります。しかし、この方法だと十分でないから、その点を囲む4点の値から補間(スムーズシェーディングと同じ方法)する方法もあります。さらに、より画質を良くするために次の方法もあります。
 スクリーン上の1つの画素はしばしばいくつかの配列(texcel)をカバーします。したがって、エリアシングを防ぐための方法が必要となります。
図5.28
図5.28: エリアシングを考慮したテクスチャーマッピング

まず、図5.28のように、スクリーン上の画素の4隅に写像するテクスチャーマップの4点を求めます。これらの4点で囲まれた4辺形内部(図中の斜線部)に存在する各要素の色を総計して、画素の色を決定します。
図5.29にテクスチヤーマッピングの例を示します。

図5.29

図5.29: テクスチャーマッピングの例


 図5.26の建物の表面、雲はフーリエ級数で発生したテクスチャーです。

(3) ソリッドテクスチャー
 大理石や木目などの表示には3次元関数を用いて、カット断面のテクスチャーを表現する手法が開発されています。前述のテクスチャーマッピングが2次元から2次元(投影面)への変換であるのに対して、ソリッドテクスチャー(solid texture)は3次元から2次元への変換操作を行う技法です。テクスチャーマッピングでは曲面上のパラメータ(u, v)から陰影関数が決まるのに対し、この方法では、マップするパターンを、任意の3次元座標(X, Y, Z)に対して色データが決まる関数で表現します。すなわち、陰影関数fとして、次の形式の関数を準備します。

  (5.17)

 なお、全空間をカバーできるように、一般に、この関数は周期関数として定義されます。これらのデータは、乱数、フーリエ級数等によって求められることもあります。この方法は、形とテクスチャーが独立である関数で表現されるので、データ量が少なくていいです。毛のようなものを表現する方法としてテクセルマッピングという方法も開発されています。

(4)リフレクションマッピング
 金属のような表面の滑らかなもの、すなわち鏡面反射成分の強い面には他の物体(周囲環境の様々な物体)が映り込みます。これを正確に表現するには、レイトレーシングアルゴリズムを使わなくてはなりません。しかし、この方法は時間がかかるので、映り込みを簡単に行う方法が リフレクションマッピング(reflection mapping)または環境マッピング(enviroment apping)と言われます。この方法では、対象となる物体を囲む1つの大きな仮想球(または仮想立方体)を考えます。レイトレーシングと同様に、まず視線と交差する物体の交点を求め、その点からの反射ベクトルを延ばし、仮想球との交点を求めます。そして、その交点での仮想球の色を物体の色としてマッピングします。仮想球には、周囲の風景を予め求め、テクスチャとしてマッピングされているものとします。風景画像はペイントシステムによって描かれることもあります。

図5.30
図5.30: 仮想立方体を用いたリフレクションマッピング

簡単のため、図5.30に示すように、仮想立方体の作成を考えます。映り込みを計算したい物体の中心(図中の点O)を視点と考えて、前、後、左、右、上、下の平面をスクリーンと考えて、隠面消去法によりレンダリングします。こうして得られた画像を仮想立方体の各面のテクスチャとして記憶しておきます。物体中心以外の点から見た場合、当然異なった画像となるが(図5.30のRとR'との差)、こうした近似により計算量を減少さすことができます。また、透明物体を通して屈折して見えるのを疑似的に表現するための方法はリフラクションマッピングといわれています。



前のページへ

次のページへ