(57)【要約】【課題】テクスチャフィルタリングを施した高品位なテクスチャマッピングを実現する。【解決手段】異なる条件で取得あるいは異なる条件で作成した１枚以上のテクスチャデータを利用して、ユーザが指定するサイズあるいはユーザが指定する条件のテクスチャデータを生成する第１の生成手段１０１と、生成されたテクスチャデータを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成する第２の生成手段１０２と、指定されているフィルタリング条件、および、フィルタリング用テクスチャデータを利用して、テクスチャデータのフィルタリング処理を行うフィルタリング手段１０３と、を具備する。【選択図】図１
2008077604.tif 000002
【特許請求の範囲】
【請求項１】
異なる条件で取得あるいは異なる条件で作成した１枚以上のテクスチャデータを利用して、ユーザが指定するサイズあるいはユーザが指定する条件のテクスチャデータを生成する第１の生成手段と、
前記生成されたテクスチャデータを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成する第２の生成手段と、
指定されているフィルタリング条件、および、前記フィルタリング用テクスチャデータを利用して、テクスチャデータのフィルタリング処理を行うフィルタリング手段と、を具備することを特徴とするテクスチャフィルタリング装置。
【請求項２】
前記第１の生成手段は、生成するテクスチャのサイズあるいは条件を入力し、パターンマッチングによる任意サイズのテクスチャ生成や線形補間による任意条件のテクスチャ生成を実現し、生成されたテクスチャデータが、インデックス画像およびコードブックによって表現され、データサイズが大きい場合には、ベクトル量子化処理によってコードブックを最適化し、インデックス画像の各ピクセルのインデックスを再度割り振ることを特徴とする請求項１記載のテクスチャフィルタリング装置。
【請求項３】
前記第２の生成手段は、インデックス画像およびコードブックによって表現されたテクスチャデータを利用して、フィルタリング処理に用いるためのサイズの異なるテクスチャである複数の変形テクスチャを生成し、該変形テクスチャを生成する場合に、前記インデックス画像内の各ピクセルに格納されたインデックスが示すコードブックのベクトルデータをブレンドすることによって、ピクセル間のブレンド処理を実現し、前記ピクセル間のブレンドによって生成されたそれぞれの前記変形テクスチャに対してインデックス画像およびコードブックを対応付けることを特徴とする請求項１に記載のテクスチャフィルタリング装置。
【請求項４】
前記第２の生成手段は、インデックス画像およびコードブックによって表現されたテクスチャデータを利用して、フィルタリング処理に用いるためのサイズの異なるテクスチャである複数の変形テクスチャを生成し、該変形テクスチャを生成する場合に、前記インデックス画像内の各ピクセルに格納されたインデックスが示すコードブックのベクトルデータをブレンドすることによって、ピクセル間のブレンド処理を実現し、前記ピクセル間のブレンドによって生成された全ての前記変形テクスチャに対して共通のコードブックを対応付け、それぞれの前記変形テクスチャに対してインデックス画像を対応付け、前記共通のコードブックを作成する場合に、ベクトル量子化処理によってコードブックを最適化し、それぞれの変形テクスチャのインデックス画像の各ピクセルのインデックスを再度割り振ることを特徴とする請求項１に記載のテクスチャフィルタリング装置。
【請求項５】
前記第２の生成手段は、サイズの異なる複数の変形テクスチャであるミップマップの生成だけではなく、該ミップマップのテクスチャサイズの変化に応じて、条件数も変化させる変形テクスチャの生成を行うことを特徴とする請求項１に記載のテクスチャフィルタリング装置。
【請求項６】
前記第２の生成手段は、サイズの異なるテクスチャである全ての変形テクスチャのインデックス画像を１つのインデックス画像としてまとめ、各ピクセルのインデックスを木構造で表現することを特徴とする請求項１に記載のテクスチャフィルタリング装置。
【請求項７】
前記フィルタリング手段は、前記フィルタリング条件をもとに、前記フィルタリング用テクスチャデータから、サイズの異なるテクスチャである変形テクスチャを抽出し、フィルタリングに利用するピクセルのインデックスが示すコードブック内のベクトルデータをブレンドしてテクスチャデータを生成することを特徴とする請求項１に記載のテクスチャフィルタリング装置。
【請求項８】
異なる条件で取得あるいは異なる条件で作成した１枚以上のテクスチャデータを利用して、ユーザが指定するサイズあるいはユーザが指定する条件のテクスチャデータを生成する第１の生成手段と、
前記生成されたテクスチャを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成する第２の生成手段と、
指定されているＣＧ（computer graphics）モデルデータをもとに、ＣＧモデル表面にマッピングする際のフィルタリング条件を算出する算出手段と、
前記算出されたフィルタリング条件、および、前記フィルタリング用テクスチャデータを利用して、テクスチャデータのフィルタリング処理を行うフィルタリング手段と、
前記フィルタリング処理が施されたテクスチャデータを前記ＣＧモデルデータにマッピングし、ＣＧデータを作成する作成手段と、を具備することを特徴とするテクスチャマッピング装置。
【請求項９】
前記第１の生成手段は、生成するテクスチャのサイズあるいは条件を入力し、パターンマッチングによる任意サイズのテクスチャ生成や線形補間による任意条件のテクスチャ生成を実現し、生成されたテクスチャデータが、インデックス画像およびコードブックによって表現され、データサイズが大きい場合には、ベクトル量子化処理によってコードブックを最適化し、インデックス画像の各ピクセルのインデックスを再度割り振ることを特徴とする請求項８に記載のテクスチャマッピング装置。
【請求項１０】
前記第２の生成手段は、インデックス画像およびコードブックによって表現されたテクスチャデータを利用して、フィルタリング処理に用いるためのサイズの異なるテクスチャである複数の変形テクスチャを生成し、該変形テクスチャを生成する場合に、前記インデックス画像内の各ピクセルに格納されたインデックスが示すコードブックのベクトルデータをブレンドすることによって、ピクセル間のブレンド処理を実現し、前記ピクセル間のブレンドによって生成されたそれぞれの前記変形テクスチャに対してインデックス画像およびコードブックを対応付けることを特徴とする請求項８に記載のテクスチャマッピング装置。
【請求項１１】
前記第２の生成手段は、インデックス画像およびコードブックによって表現されたテクスチャデータを利用して、フィルタリング処理に用いるためのサイズの異なるテクスチャである複数の変形テクスチャを生成し、該変形テクスチャを生成する場合に、前記インデックス画像内の各ピクセルに格納されたインデックスが示すコードブックのベクトルデータをブレンドすることによって、ピクセル間のブレンド処理を実現し、前記ピクセル間のブレンドによって生成された全ての前記変形テクスチャに対して共通のコードブックを対応付け、それぞれの前記変形テクスチャに対してインデックス画像を対応付け、前記共通のコードブックを作成する場合に、ベクトル量子化処理によってコードブックを最適化し、それぞれの変形テクスチャのインデックス画像の各ピクセルのインデックスを再度割り振ることを特徴とする請求項８に記載のテクスチャマッピング装置。
【請求項１２】
前記第２の生成手段は、サイズの異なる複数の変形テクスチャであるミップマップの生成だけではなく、該ミップマップのテクスチャサイズの変化に応じて、条件数も変化させる変形テクスチャの生成を行うことを特徴とする請求項８に記載のテクスチャマッピング装置。
【請求項１３】
前記第２の生成手段は、サイズの異なるテクスチャである全ての変形テクスチャのインデックス画像を１つのインデックス画像としてまとめ、各ピクセルのインデックスを木構造で表現することを特徴とする請求項８に記載のテクスチャマッピング装置。
【請求項１４】
前記フィルタリング手段は、前記フィルタリング条件をもとに、前記フィルタリング用テクスチャデータから、サイズの異なるテクスチャである変形テクスチャを抽出し、フィルタリングに利用するピクセルのインデックスが示すコードブック内のベクトルデータをブレンドしてテクスチャデータを生成することを特徴とする請求項８に記載のテクスチャマッピング装置。
【請求項１５】
異なる条件で取得あるいは異なる条件で作成した１枚以上のテクスチャデータを利用して、ユーザが指定するサイズあるいはユーザが指定する条件のテクスチャデータを生成し、
前記生成されたテクスチャデータを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成し、
指定されているフィルタリング条件、および、前記フィルタリング用テクスチャデータを利用して、テクスチャデータのフィルタリング処理を行うことを特徴とするテクスチャフィルタリング方法。
【請求項１６】
異なる条件で取得あるいは異なる条件で作成した１枚以上のテクスチャデータを利用して、ユーザが指定するサイズあるいはユーザが指定する条件のテクスチャデータを生成し、
前記生成されたテクスチャを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成し、
指定されているＣＧ（computer graphics）モデルデータをもとに、ＣＧモデル表面にマッピングする際のフィルタリング条件を算出し、
前記算出されたフィルタリング条件、および、前記フィルタリング用テクスチャデータを利用して、テクスチャデータのフィルタリング処理を行い、
前記フィルタリング処理が施されたテクスチャデータを前記ＣＧモデルデータにマッピングし、ＣＧデータを作成することを特徴とするテクスチャマッピング方法。
【請求項１７】
コンピュータを、
異なる条件で取得あるいは異なる条件で作成した１枚以上のテクスチャデータを利用して、ユーザが指定するサイズあるいはユーザが指定する条件のテクスチャデータを生成する第１の生成手段と、
前記生成されたテクスチャデータを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成する第２の生成手段と、
指定されているフィルタリング条件、および、前記フィルタリング用テクスチャデータを利用して、テクスチャデータのフィルタリング処理を行うフィルタリング手段として機能させるためのテクスチャフィルタリングプログラム。
【請求項１８】
コンピュータを、
異なる条件で取得あるいは異なる条件で作成した１枚以上のテクスチャデータを利用して、ユーザが指定するサイズあるいはユーザが指定する条件のテクスチャデータを生成する第１の生成手段と、
前記生成されたテクスチャを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成する第２の生成手段と、
指定されているＣＧ（computer graphics）モデルデータをもとに、ＣＧモデル表面にマッピングする際のフィルタリング条件を算出する算出手段と、
前記算出されたフィルタリング条件、および、前記フィルタリング用テクスチャデータを利用して、テクスチャデータのフィルタリング処理を行うフィルタリング手段と、
前記フィルタリング処理が施されたテクスチャデータを前記ＣＧモデルデータにマッピングし、ＣＧデータを作成する作成手段として機能させるためのテクスチャマッピングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元コンピュータグラフィックス（ＣＧ：Computer Graphics）分野における高品位なテクスチャマッピング技術に属するテクスチャフィルタリング装置、テクスチャマッピング装置、方法およびプログラム。
【背景技術】
【０００２】
近年、３次元コンピュータグラフィックス（ＣＧ）技術が急速に発展しており、実写の映像と見間違える程のリアルなグラフィックス表現が可能となってきている。しかしながら、映画やテレビ向けに制作される高品位なＣＧは、コンテンツ制作者の長時間にわたる地道な手作業によって生み出されるものが多く、膨大なコストを要してしまう。今後も、さらに多様なＣＧ表現が求められると考えられ、高品位なＣＧを、いかにコストをかけず簡単に作り出せるかが課題となっている。
【０００３】
ＣＧモデル表面の質感をリアルに表現するための技術として、テクスチャマッピング技術が存在する。これは、実写画像もしくは制作者が描いた画像を、ＣＧデータに割り当てられたテクスチャ座標に基づいてＣＧモデル表面に貼り付ける技術であり、ＣＧ制作において広く用いられている技術である。
【０００４】
しかしながら、３次元空間の様々な位置に配置され、しかも様々な形状を持っているＣＧモデルに対して、単純にテクスチャマッピング処理を施してしまうと、モザイク模様のような違和感のあるＣＧになってしまうことがある。これは、ＣＧモデルの奥行きや視点に対する傾きなどに応じて、ＣＧ描画フレームの１ピクセルとテクスチャの１ピクセル（テクセルとも呼ばれる）とが必ずしも１対１に対応しないことが原因である。そこで、ＣＧモデルの奥行きや視点に対する奥行きなどに応じて、テクスチャフィルタリング処理を施した上で、マッピングを行うといった技術が開発された。
【０００５】
代表的なテクスチャフィルタリング処理方法としては、バイリニアフィルタリング、トライリニアフィルタリング、異方性フィルタリングなどが存在する。バイリニアフィルタリングとは、小数で指定されたテクスチャ座標をもとに近傍の４ピクセルを取り出し、線形補間することによって、最終的なピクセル値（色）を決定するというものである。トライリニアフィルタリングとは、ミップマップテクスチャ（MIP-Map texture）と呼ばれるものを用いて、適当な８ピクセルを取り出し、線形補間することによって、最終的なピクセル値（色）を決定するというものである。ここで、ミップマップテクスチャとは、マッピングするテクスチャを段階的に１／４倍ずつしたテクスチャの集合であり、それぞれのテクスチャは順に「ミップマップレベル０，１，２，…のテクスチャ」と呼ばれている。トライリニアフィルタリングでは、ＣＧモデルの奥行きに応じて、マッピングに用いるテクスチャを変化させ、例えば、ミップマップレベル０と１のテクスチャを用いるということになれば、それぞれのテクスチャでバイリニアフィルタリングを施し、さらに２つのレベルのテクスチャ間で線形補間するといった処理を行う。異方性フィルタリングとは、ＣＧモデルの視点に対する傾きに応じて、そのピクセルにマッピングされるべきテクスチャ内の四辺形を算出し、その四辺形内の複数のサンプル点において、バイリニアフィルタリングやトライリニアフィルタリングを行い線形補間することによって、最終的なピクセル値（色）を決定するというものである。以上のようなテクスチャフィルタリング処理を用いることによって、ＣＧモデルを拡大／縮小したり、変形したりしても、ＣＧモデル表面を違和感なく表現できるようになった（例えば、非特許文献１参照）。
【０００６】
一方、小さなサイズのテクスチャから任意サイズのテクスチャを生成することによって、広範囲のＣＧモデル表面にマッピングすることを可能にする技術が存在する。これをテクスチャ生成技術と呼ぶ。テクスチャ生成アルゴリズムとしては、ピクセル単位もしくはブロック単位でパターンマッチングを行うことによって任意サイズのテクスチャを生成する方法や、境界の目立たない小さな画像を複数用意し、ランダムにタイル状に配置することによって大きなテクスチャを表現するといった方法が存在する（例えば、特許文献１参照）。このような方法で生成されたテクスチャは、単純にピクセルごとに色情報を持たせて表現されることもあるが、インデックス画像およびコードブック（カラーテーブル）によって表現されることもある。繰り返し用いられる色情報をコードブックに格納しておき、ピクセルごとに、用いる色情報が格納されているコードブックのアドレスをインデックスで表現することによって、テクスチャデータ量を削減できるというメリットがある。
【０００７】
さらに、高品位な質感表現方法として高次元テクスチャ技術というものが存在する（例えば、特許文献２参照）。これらの技術は、異なる複数の視点条件あるいは光源条件によって撮影したテクスチャ群を利用し、ＣＧモデルの視点条件あるいは光源条件に基づいて適応的にマッピングするといったものである。
【０００８】
以上示した内容が、ＣＧ表面をリアルに表現するためのテクスチャマッピングに関わる背景技術である。しかしながら、テクスチャの生成もしくは高次元テクスチャの生成を行ったものに対して、テクスチャフィルタリング処理を行うことは困難である。なぜなら、インデックス画像およびコードブックによって表現されたテクスチャデータでは、単純にミップマップを作成したり、複数のピクセルを高速に取り出したりできないからである。したがって、インデックス画像およびコードブックによって表現されたテクスチャの適したフィルタリング方法や、高次元テクスチャ技術ならではのフィルタリング方法を開発する必要がある。
【特許文献１】特開２００４−２７２５８０公報
【特許文献２】特開２００６−１４６３２６公報
【非特許文献１】Jon P. Ewins , Marcus D. Waller , Martin White , Paul F. Lister, “MIP-Map Level Selection for Texture Mapping”, IEEE Transactions on Visualization and Computer Graphics, v.4 n.4, p.317-329, October 1998.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
異なる視点条件もしくは光源条件などで取得した１枚以上のテクスチャから、任意サイズの１枚以上のテクスチャを生成することによって、小さなデータサイズで広範囲なテクスチャマッピングを実現することができるが、その際、単純にテクスチャフィルタリング処理を施すことができない。
【００１０】
単純にテクスチャフィルタリング処理を行うためには、インデックス画像およびコードブックによる表現ではなく、通常のテクスチャのデータ構造に展開する必要があり、展開してしまうと、テクスチャ生成によるデータ量削減のメリットがなくなってしまう。タイルごとにミップマップを作成し、タイルの境界部分だけ同じ色で塗りつぶすなどといった方法もあるが、精細度の面で課題が残っている。
【００１１】
この発明は、上述した事情を考慮してなされたものであり、異なる条件で取得あるいは作成した１枚以上のテクスチャデータから、任意サイズあるいは任意サンプル数のテクスチャデータを生成することができ、テクスチャフィルタリングを施した高品位なテクスチャマッピングを実現するテクスチャフィルタリング装置、テクスチャマッピング装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述の課題を解決するため、本発明のテクスチャフィルタリング装置は、異なる条件で取得あるいは異なる条件で作成した１枚以上のテクスチャデータを利用して、ユーザが指定するサイズあるいはユーザが指定する条件のテクスチャデータを生成する第１の生成手段と、前記生成されたテクスチャデータを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成する第２の生成手段と、指定されているフィルタリング条件、および、前記フィルタリング用テクスチャデータを利用して、テクスチャデータのフィルタリング処理を行うフィルタリング手段と、を具備することを特徴とする。
【００１３】
本発明のテクスチャマッピング装置は、異なる条件で取得あるいは異なる条件で作成した１枚以上のテクスチャデータを利用して、ユーザが指定するサイズあるいはユーザが指定する条件のテクスチャデータを生成する第１の生成手段と、前記生成されたテクスチャを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成する第２の生成手段と、指定されているＣＧ（computer graphics）モデルデータをもとに、ＣＧモデル表面にマッピングする際のフィルタリング条件を算出する算出手段と、前記算出されたフィルタリング条件、および、前記フィルタリング用テクスチャデータを利用して、テクスチャデータのフィルタリング処理を行うフィルタリング手段と、前記フィルタリング処理が施されたテクスチャデータを前記ＣＧモデルデータにマッピングし、ＣＧデータを作成する作成手段と、を具備することを特徴とする。
【発明の効果】
【００１４】
本発明のテクスチャフィルタリング装置、テクスチャマッピング装置、方法およびプログラムによれば、異なる条件で取得あるいは作成した１枚以上のテクスチャデータから、任意サイズあるいは任意サンプル数のテクスチャデータを生成することができ、テクスチャフィルタリングを施した高品位なテクスチャマッピングを実現することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照しながら本発明の実施形態に係るテクスチャフィルタリング装置、テクスチャマッピング装置、方法およびプログラムについて詳細に説明する。  
本実施形態のテクスチャフィルタリング装置は、ＣＧモデルの奥行きや視点に対する傾きなどに応じて、適応的なテクスチャフィルタリング処理を施すことにより、視覚的に違和感のないＣＧ表現を実現するためのものである。本実施形態のテクスチャフィルタリング装置は、異なる条件で取得あるいは作成された１枚以上のテクスチャに対して、テクスチャ生成処置を行った上で、効率的なテクスチャフィルタリング処理を行うことのできる装置である。また、本実施形態のテクスチャフィルタリング装置は、ＣＧモデルデータの入力手段や、テクスチャマッピング手段などと組み合わせることによって、フィルタリング機能を有したテクスチャマッピング装置として利用することができる。
【００１６】
また、本実施形態のテクスチャフィルタリング装置は、次世代グラフィックス処理エンジンへの搭載を見込むことができ、コンピュータ支援設計（ＣＡＤ）や、各種シミュレーションエンジン等のアプリケーションへの応用が期待できる。
【００１７】
本実施形態のテクスチャフィルタリング装置は、視点条件や光源条件などのような様々な条件のもとで取得した１枚以上のテクスチャデータを入力する。そして、そのテクスチャデータから任意サイズあるいは任意サンプル数のテクスチャデータを生成し、これらをインデックス画像とコードブックによって表現する。フィルタリング用のテクスチャデータを生成するために、新規のインデックス画像やコードブックを生成するが、その際に、インデックス画像やコードブックのデータ構造を最適化することによって、テクスチャフィルタリング処理の効率を向上させることができる。
【００１８】
第１の実施形態では、テクスチャフィルタリング装置およびフィルタリング機能を有したテクスチャマッピング装置の一連の処理例を示す。本実施形態においては、フィルタリング用テクスチャ生成の一例として、ミップマップの作成方法を示す。テクスチャサイズの異なるそれぞれの変形テクスチャに対して、独自のインデックス画像とコードブックとを持たせる方法について具体的に示す。また、ここでは、入力したテクスチャデータが１枚であった場合と、撮影条件の異なる複数枚のテクスチャであった場合の２通りについて別々に説明する。
【００１９】
第２の実施形態では、コードブックの共有化に対する処理例を示す。ミップマップのようにサイズの異なる複数の変形テクスチャを用意する場合に、全ての変形テクスチャに対して共通のコードブックを作成し、効率的にミップマップを表現する方法について示す。ここでも、入力したテクスチャデータが１枚であった場合と、撮影条件の異なる複数枚のテクスチャであった場合の２通りについて別々に説明する。
【００２０】
第３の実施形態では、ミップマップレベルに合わせて条件数も変化させるような変形テクスチャの生成に対する処理例を示す。具体的なフィルタリング用テクスチャデータの生成方法とその効果について説明する。
【００２１】
第４の実施形態では、インデックス画像のデータ構造を工夫する方法について説明する。各ミップマップレベルのインデックス画像を１つのインデックス画像としてまとめ、各ピクセルのインデックスを木構造で表現する方法や、インデックスの種類をいくつか設け、それぞれのインデックスの種類に応じて処理方法を変化させるような処理について示す。
【００２２】
（第１の実施形態）  
本実施形態のテクスチャフィルタリング装置について図１を参照して説明する。この装置は、異なる条件で取得あるいは作成した１枚以上のテクスチャデータを入力し、フィルタリング条件に応じて適したテクスチャフィルタリング処理を施したテクスチャデータを出力するものである。本実施形態では、インデックス画像およびコードブックによって表現されたテクスチャに対し、効率的にフィルタリング処理を施した上で、ＣＧモデル表面にマッピングできるような装置を提案する。
【００２３】
図１に示したテクスチャフィルタリング装置は、テクスチャ生成部１０１、フィルタリング用テクスチャ生成部１０２、テクスチャフィルタリング部１０３を備えている。
【００２４】
テクスチャ生成部１０１は、異なる条件で取得あるいは作成した１枚以上のテクスチャデータを入力し、このテクスチャデータを利用して、ユーザが指定するサイズあるいは条件のテクスチャデータを生成する。  
フィルタリング用テクスチャ生成部１０２は、テクスチャ生成部１０１で生成されたテクスチャデータを利用して、フィルタリング処理に用いるためのフィルタリング用テクスチャデータを生成する。
【００２５】
テクスチャフィルタリング部１０３は、フィルタリング条件を入力して、このフィルタリング条件、および、フィルタリング用テクスチャ生成部１０２で生成されたフィルタリング用テクスチャデータを利用して、テクスチャのフィルタリング処理を行う。また、テクスチャフィルタリング部１０３は、テクスチャフィルタリング処理が施されたテクスチャデータを出力する。
【００２６】
次に、図１のテクスチャフィルタリング装置の動作の一例について図２を参照して説明する。  
テクスチャ生成部１０１が、テクスチャデータを入力し（ステップＳ２０１）、ユーザが指定するサイズあるいは条件のテクスチャデータを生成する（ステップＳ２０２）。  
フィルタリング用テクスチャ生成部１０２が、サイズあるいは条件のテクスチャデータを利用して、フィルタリング処理に使用するためのフィルタリング用テクスチャデータを生成する（ステップＳ２０３）。  
テクスチャフィルタリング部１０３は、フィルタリング条件を入力し（ステップＳ２０４）、このフィルタリング条件、および、フィルタリング用テクスチャデータを利用して、テクスチャのフィルタリング処理を行う（ステップＳ２０５）。また、テクスチャフィルタリング部１０３は、テクスチャフィルタリング処理が施されたテクスチャデータを出力する（ステップＳ２０６）。より詳細な動作は後に図７、図８、図９、図１０、図１１、図１２、図１３、図１４、図１５を参照して説明する。
【００２７】
次に、フィルタリング機能を有するテクスチャマッピング装置について図３を参照して説明する。  
図３に示したテクスチャマッピング装置は、テクスチャ生成部１０１、フィルタリング用テクスチャ生成部１０２、テクスチャフィルタリング部１０３、フィルタリング条件算出部３０１、テクスチャマッピング部３０２を備えている。以下、既に説明した装置部分と同様なものは同一の番号を付してその説明を省略する。  
フィルタリング条件算出部３０１は、ＣＧモデルデータを入力し、この入力されたＣＧモデルデータをもとに、ＣＧモデル表面にマッピングする際のフィルタリング条件を算出してテクスチャフィルタリング部１０３に出力する。  
テクスチャマッピング部３０２は、テクスチャフィルタリング部１０３によってテクスチャフィルタリング処理が施されたテクスチャデータを、入力されたＣＧモデルデータにマッピングし、ＣＧデータを作成し、作成されたＣＧデータを出力する。
【００２８】
次に、図３のテクスチャマッピング装置の動作の一例について図４を参照して説明する。以下、既に説明したステップと同様なものは同一の番号を付してその説明を省略する。  
フィルタリング条件算出部３０１が、ＣＧモデルデータを入力し（ステップＳ４０１）、フィルタリング条件を算出する（ステップＳ４０２）。  
テクスチャマッピング部３０２が、テクスチャフィルタリング部１０３によってテクスチャフィルタリング処理が施されたテクスチャデータを、入力されたＣＧモデルデータにマッピングし（ステップＳ４０３）、ＣＧデータを作成し、作成されたＣＧデータを出力する（ステップＳ４０４）。より詳細な動作は後に図７、図８、図９、図１０、図１１、図１２、図１３、図１４、図１５を参照して説明する。
【００２９】
図１に示したテクスチャフィルタリング装置および図３に示したフィルタリング機能を有するテクスチャマッピング装置の大きな特徴は、インデックス画像とコードブックによって表現されたテクスチャデータに対して、効率的なテクスチャフィルタリング処理を施すことができるという点である。
【００３０】
次に、従来のテクスチャフィルタリング処理の例として、ミップマップ処理（トライリニアフィルタリング処理）について図５、図６を参照して説明する。  
ミップマップとは、図５に示すようなテクスチャサイズの異なる複数のテクスチャデータである。レベル０，１，２，３，４，…と示しているのがミップマップレベルと呼ばれるものである。ミップマップレベル０のテクスチャデータがもとのテクスチャデータである。このテクスチャを段階的に１／４倍ずつすることによって、サイズの異なる複数のテクスチャデータを生成している。ここで注目しておくべき点は、これらテクスチャデータの各ピクセルのデータにはＲＧＢなどの色情報が含まれているということである。そのため、テクスチャデータを縮小する際には、例えば２×２ピクセルの平均値を求めて縮小したテクスチャデータのピクセル値を決定するといった方法が採られている。
【００３１】
図６は、生成されたミップマップを利用してテクスチャフィルタリング処理を行う方法を示している。ミップマップを利用してテクスチャフィルタリングを行う際には、マッピングしたいＣＧモデルの３次元空間における奥行きがフィルタリング条件となる。図６の例では、道の手前にマッピングされるのは、ミップマップレベル０のテクスチャであり、道路が奥になればなるほどミップマップレベル１，２，３，４，…といったテクスチャがマッピングされる。具体的には、８つのピクセルデータが抽出され、これら複数のピクセルデータを線形補間することによって最終的なピクセル値が決定される。  
例えば、図６の点Ａに対してテクスチャをマッピングしようとした場合、ＣＧモデルの奥行き情報をもとに、ミップマップレベル０とミップマップレベル１のテクスチャを利用することが決定される。そして、点Ａで指定されているテクスチャ座標に近い近傍の４つのピクセルデータをミップマップレベル０およびミップマップレベル１のテクスチャからそれぞれ抽出する。そして合計８つのピクセルデータを、テクスチャ座標やＣＧモデルの奥行きに応じて線形補間し、最終的なピクセル値を決定する。従来の技術では、このようなテクスチャフィルタリング処理を行うことによって、ＣＧモデルへの違和感のないテクスチャマッピングを実現している。
【００３２】
本実施形態では、テクスチャフィルタリング装置もしくはフィルタリング機能を有するテクスチャマッピング装置を用いることによって、テクスチャ生成後のテクスチャデータに対しても効率的にフィルタリング処理を行うことができることを示す。以下では、図２および図４に示した処理フローに沿って各処理の方法について図７、図８、図９、図１０、図１１、図１２、図１３、図１４、図１５を参照して説明する。
【００３３】
図１および図３に示したテクスチャフィルタリング装置およびテクスチャマッピング装置におけるテクスチャデータの入力（ステップＳ２０１）においては、異なる条件で取得あるいは作成した１枚以上のテクスチャデータを入力する。  
異なる条件とは、例えば、そのテクスチャを撮影する際の視点（カメラ）の位置条件や光源（ライト）の位置条件などが挙げられる。図７に撮影条件の例を示す。素材に対して視点や光源を傾けたり、回転させたりすることによって、素材の見え方が変化する。図７に示したような空間の中で、視点および光源の位置θｃ，φｃ，θｌ，φｌをそれぞれ一定間隔ずつ変化させながら撮影することによって、異なる条件で撮影された複数のテクスチャデータを得ることができる。このような視点（カメラ）位置や光源（ライト）位置の変化の他にも、素材表面の歪みや伸び縮みの変化、毛などのような表面素材の状態変化、素材の経年変化、速度・加速度・圧力・温度・湿度など自然界での様々な条件の変化などに応じて複数のテクスチャを取得することによって、本発明における処理を適用することができる。
【００３４】
次に、撮影された１枚以上のテクスチャデータから、任意サイズあるいは任意サンプル数のテクスチャを生成する（ステップＳ２０２）。テクスチャ生成の概念を図８、図９に示す。図８は、入力したテクスチャデータから任意サイズのテクスチャを生成する様子を表している。入力したテクスチャデータが単一のテクスチャであっても複数のテクスチャであっても、ピクセル単位もしくはブロック単位でパターンマッチングすることによって、入力したテクスチャデータの柄や模様、視点／光源条件に依存する色変化などを失わないような任意サイズのテクスチャを生成することができる。
【００３５】
また、図９は、入力したテクスチャデータから任意サンプル数のテクスチャを生成する様子を表している。入力したテクスチャデータが単一のテクスチャであれば、一定の基準で輝度変化させたり、色変化させたりすることによって、擬似的に他の条件で撮影したようなテクスチャを生成することができる。また、入力したテクスチャが複数のテクスチャであれば、２枚のテクスチャサンプルを補間することによって、擬似的に他の条件で撮影したようなテクスチャを生成することができる。このようなテクスチャ生成を行った場合、効率的なテクスチャデータの表現方法として、インデックス画像とコードブックを用いたデータ構造を考えることができる。  
インデックス画像とコードブックを用いたデータ構造の例を図１０、図１１に示す。図１０は、単一のテクスチャから任意サイズのテクスチャを生成した場合の、生成後のテクスチャのデータ構造を示している。各ピクセルの情報には従来のような色情報ではなく、コードブックのアドレスを指し示すインデックス情報が含まれている。これをインデックス画像と呼んでいる。また、コードブックには、テクスチャを表現するのに必要な色情報がテーブル化されている。図１０では、各ピクセルがコードブックのいずれかの色を参照することによって、テクスチャデータが表現されていることが分かる。  
また、図１１では、複数のテクスチャが生成された場合の、生成後のテクスチャのデータ構造を示している。基本的には、図１０のデータ構造と同様であるが、コードブックの１要素が１つの色情報ではなく、条件を変化させた場合の全ての色情報が含まれている。したがって、最終的な色情報を決定するためには、テクスチャ座標（ピクセル位置）を指定することは当然のことながら、条件も指定する必要がある。
【００３６】
次に、生成後のテクスチャデータを入力して、フィルタリング用のテクスチャデータを生成する（ステップＳ２０３）。フィルタリング用のテクスチャデータとは、前にも詳しく説明したミップマップなどが挙げられる。単一のテクスチャであれば、図５に示すようなものとなるが、複数のテクスチャであれば、図１２に示すようなものとなる。このような場合についても、ミップマップレベル０のテクスチャ群が元々のサイズのものであり、ミップマップレベル１，２，３，４，…となるにしたがって、全てのテクスチャをそれぞれ段階的に１／４倍に縮小している。前述のとおり、ここではテクスチャがインデックス画像とコードブックによって表現されているため、単純にはミップマップを作成することができない。  
そこで、インデックス画像とコードブックによって表現されたテクスチャのミップマップの生成方法について説明する。インデックス画像とコードブックによって表現されたミップマップは、図１３、図１４に示すようなデータ構造として生成することができる。図１３は単一テクスチャであった場合、図１４は複数のテクスチャであった場合の例を示している。どちらの例に関しても、ここでのミップマップは、ミップマップレベルごとにそれぞれインデックス画像とコードブックを持たせるといったデータ構造となる。  
このようなミップマップを生成するアルゴリズムを図１５に示す。これは、ミップマップレベルｔからミップマップレベルｔ＋１を生成するための処理フローである。
【００３７】
まず、ミップマップレベルｔのテクスチャデータを入力し（ステップＳ１５０１）、入力したテクスチャを２×２ピクセルサイズのブロックに分割する（ステップＳ１５０２）。そして、分割したブロックの中から１つのブロックに注目し、そのブロックに含まれる４ピクセルのインデックス情報をインデックス画像から抽出する（ステップＳ１５０３）。次に、そのインデック情報をもとに、コードブックから４ピクセルそれぞれの色情報を抽出し（ステップＳ１５０４）、抽出した４つの色情報の平均値を算出する（ステップＳ１５０５）。そして、算出した色をミップマップレベルｔ＋１のコードブックに登録し（ステップＳ１５０６）、登録したコードブックのアドレスを指し示すインデックス情報を、ミップマップレベルｔ＋１のインデックス画像の対応する位置に登録する（ステップＳ１５０７）。ステップＳ１５０３〜ステップＳ１５０７の処理を全てのブロックに対して行う（ステップＳ１５０８）ことによって、ミップマップレベルｔ＋１のテクスチャデータを生成することができる。このような処理を各ミップマップレベルに対して行えば、多くのレベルによって構成されたミップマップを生成できる。
【００３８】
次に、フィルタリング条件を導出する。図１に示すテクスチャフィルタリング装置では、外部から直接フィルタリング条件を入力する（ステップＳ２０４）。どのようなフィルタリング条件を入力するかについては、次に示すテクスチャマッピング装置のそれと同様であるので説明を割愛する。  
図３に示すフィルタリング機能を有するテクスチャマッピング装置では、まずＣＧモデルデータを入力する（ステップＳ４０１）。ＣＧモデルデータには、ポリゴンを構成するための頂点データが宣言されており、各頂点データには、３次元空間内の位置座標、テクスチャ座標、法線ベクトルに加え、ＵベクトルやＶベクトルなるものも含まれているものとする。ここで、Ｕベクトル、Ｖベクトルとは、その頂点に対して、テクスチャがどのような方向でマッピングされているかを示すベクトルであり、テクスチャの横軸（Ｕ軸）方向を示すベクトルがＵベクトル、テクスチャの縦軸（Ｖ軸）方向を示すベクトルがＶベクトルとする。単一テクスチャのマッピングの際には、必ずしもこれらのベクトルは必要ない。そして次に、入力したＣＧモデルデータを用いてフィルタリング条件の算出を行う（ステップＳ４０２）。ここでは、どのミップマップレベルを利用し、どのテクスチャの、どの位置のピクセルデータを使って最終的な色情報を算出するかを決めるための条件を求める。ミップマップレベルの選択方法は、頂点データの位置座標をもとに、ＣＧモデルがどれくらいの奥行きの所に存在するかどうかによって決定する。
【００３９】
ミップマップレベルが決まれば次はどのテクスチャを選択するかである。単一のテクスチャであればそのテクスチャで決まりであるが、複数のテクスチャであればどの条件のテクスチャを選択したらよいかを示す必要がある。そこで、異なる視点／光源条件によって撮影されたテクスチャデータであれば、視点（カメラ）もしくは光源（ライト）と頂点を結ぶベクトル（視点ベクトルもしくは光源ベクトル）が法線ベクトルに対してどれだけ傾いているか、視点ベクトルもしくは光源ベクトルを法線に直交する平面に正射影した時、ＵベクトルやＶベクトルに対してどれだけ回転しているか、といったことを手掛かりとして、適した撮影条件を決定する。このようにしてテクスチャを決定する。最後に、選択したテクスチャのどの位置のピクセルデータを使うかについては、頂点データに含まれているテクスチャ座標をもとに決定する。これらが、フィルタリング条件となる。
【００４０】
次に、フィルタリング用テクスチャデータとフィルタリング条件を入力し、テクスチャフィルタリング処理を行う（ステップＳ２０５）。前述したとおり、フィルタリング条件に基づき、ミップマップレベルを選択し、テクスチャを選択し、そしてテクスチャ位置を選択することによって、最終的な色情報を導出することができる。ここでは、このような最終的な色情報を導出する処理が行われる。具体例として、まず単一テクスチャの場合について説明する。フィルタリング条件として、ミップマップレベルが１．４、テクスチャ座標が（０．２５，０．７５）であったとする。すると、ミップマップレベルとしては、レベル１およびレベル２の２つが選択され、それぞれのテクスチャで導出したピクセルデータを６：４で線形補間すれば良いということが分かる。
【００４１】
また、各レベルのテクスチャでは、レベル１のテクスチャサイズが２５６×２５６ピクセル、レベル２のテクスチャサイズが１２８×１２８ピクセルであったとすると、レベル１では、横座標（Ｕ座標）が６３．７５（＝０．２５×２５５）、縦座標（Ｖ座標）が１９１．２５（＝０．７５×２５５）の部分を取り出せばよいので、（ｕ，ｖ）＝（６３，１９１），（６３，１９２），（６４，１９１），（６４．１９２）の４つのテクスチャ位置の色情報を取り出し、線形補間することによって、レベル１での最終的な色情報を求めることができる。レベル２での色情報の求め方も同様である。
【００４２】
ここで、テクスチャデータは、インデックス画像およびコードブックによって表現されているため、各テクスチャ位置の色情報を取り出す際には、インデックスを抽出して、そのインデックスが指し示すコードブックの要素を取り出すといった２段階の処理となる。以上のような処理をまとめてみると、合計８つのピクセルデータのブレンド処理となり、インデックス画像からのインデックスの取り出しとコードブックからの色情報の取り出しを同じテクスチャロード処理と考えると、合計１６回のテクスチャロードが行われるということになる。
【００４３】
次に複数テクスチャの場合について説明する。フィルタリング条件、テクスチャ座標に関しては、前例と同じものであったとする。また、テクスチャを選択するための条件として、例えば視点／光源条件が、図７に示すような空間において、（θｃ，φｃ，θｌ，φｌ）＝（３２，１７，５４，９）［ｄｅｇ］であったとする。全て１０度間隔のサンプリングだとすると、θｃ＝３０，４０、φｃ＝１０，２０、θｌ＝５０，６０、φｌ＝０，１０の各条件で撮影したテクスチャサンプルを選択し、全ての組み合わせを考えると、全部で１６枚のテクスチャサンプルを選択するということになる。前例と同様に、レベル１とレベル２を選択し、各レベルで１６枚のテクスチャを選択し、それぞれのテクスチャで４つのテクスチャ位置の色情報を取り出すことから、合計１２８個のピクセルデータを取り出してブレンド処理を行うということになる。さらに、インデックス画像からのインデックスの取り出しとコードブックからの色情報の取り出しを行うことから、合計２５６回のテクスチャロードが行われるということになる。以上のようにして、入力したフィルタリング条件をもとに色情報を算出することができる。
【００４４】
最後に、算出された色情報をテクスチャとしてまとめて出力する（ステップＳ２０６）。もしくは、ＣＧモデルにマッピングして（ステップＳ４０３）、ＣＧデータとして外部に出力する（ステップＳ４０４）。
【００４５】
以上に示したように、本実施形態では、テクスチャ生成処理によって、インデックス画像およびコードブックによるデータ表現となったテクスチャに対して、適切にミップマップを作成し、適切にテクスチャフィルタリングを行うことができる。本実施形態においては、ＣＧモデルへのマッピング処理も行うことができ、ＣＧモデルの奥行き、傾きの変化、視点／光源条件の変化に対して違和感のない高品位なテクスチャマッピングを実現することができる。
【００４６】
（第２の実施形態）  
本実施形態では、図１に示すテクスチャフィルタリング装置および図３に示すフィルタリング機能を有したテクスチャマッピング装置において、フィルタリング用テクスチャを生成する際に、コードブックを共有化する方法について説明する。これらの装置における全体的な処理フロー（図２、図４）については第１の実施形態で説明したので、本実施形態においては特徴的な違いのある部分の処理方法についてのみを示す。
【００４７】
本実施形態では、インデックス画像およびコードブックによって表現されたテクスチャデータを入力してフィルタリング用のテクスチャを生成する処理（ステップＳ２０３）においてコードブックの共有化を行うことによって、テクスチャサイズの削減を行う方法について説明する。
【００４８】
第１の実施形態ではミップマップを生成する際に、それぞれのミップマップレベルに対して独自のインデックス画像とコードブックを持たせていたが、本実施形態では、全てのミップマップレベルに対して共通のコードブックを作成する。コードブックを共有化したミップマップの生成例を図１６、図１７に示す。図１６は、単一テクスチャであった場合、図１７は複数テクスチャであった場合の例を示している。どちらの例に関しても、ここでのミップマップは、ミップマップレベルごとにそれぞれインデックス画像を持たせ、コードブックは全てのレベルに対して共通のものとなっている。このようなミップマップを生成するアルゴリズムを説明する。
【００４９】
まず、第１の実施形態で示したような方法で、各ミップマップレベルのインデックス画像とコードブックを生成する。次に、全てのミップマップレベルのコードブックを連結させ、１つのコードブックにする。また、コードブックの連結と同時に、インデックスを割り当てなおし、インデックス画像を更新する。  
ここまでの処理では、コードブックが１つにはなったものの、全体的なデータ量は変化していない。そこで、ベクトル量子化によってコードブックサイズの削減を行う。前段の処理であるテクスチャ生成（ステップＳ２０２）の際にもベクトル量子化によってデータ量を削減することができるが、それはあくまでも単一のミップマップレベル（ステップＳ２０２では、ミップマップレベル０）の最適化でしかない。ここでは、異なるミップマップレベルの全てのテクスチャデータを参照してベクトル量子化を行っていることに相当するので、今までになかったより効率的な最適化を行うことができる。
【００５０】
また、ベクトル量子化を行う際には、それぞれのベクトル（ここでは色情報）がどのミップマップレベルに属していたかによって、重みを変化させることもできる。例えば、ミップマップレベルの小さい（すなわちテクスチャサイズの大きい）テクスチャデータに含まれていたベクトルに対しては誤差を厳しく判定し、ミップマップレベルの大きい（すなわちテクスチャサイズの小さい）テクスチャデータに含まれていたベクトルに対してはある程度の誤差を許容する、といった処理を行うことによって、ＣＧモデルデータが手前（カメラに近い所）に存在した場合の品質を向上させることができる。
【００５１】
以上に示したように、本実施形態では、コードブックの共有化およびコードブックの最適化によって、より少ないデータ量で品質を落とすことなくリアルなＣＧ表現を実現することができる。  
（第３の実施形態）  
本実施形態では、図１に示すテクスチャフィルタリング装置および図３に示すフィルタリング機能を有したテクスチャマッピング装置において、フィルタリング用テクスチャを生成する際に、ミップマップレベルに合わせてテクスチャサンプル数（条件数）も変化させるような新たなミップマップを提案し、その生成方法について説明する。これらの装置における全体的な処理フロー（図２、図４）については第１の実施形態で説明したので、本実施形態においては特徴的な違いのある部分の処理方法についてのみを示す。
【００５２】
本実施形態では、インデックス画像およびコードブックによって表現された複数のテクスチャデータを入力してフィルタリング用のテクスチャを生成する処理（ステップＳ２０３）において、今までになかったミップマップの生成方法を提案する。それは、ミップマップレベルに応じて、テクスチャサンプル数も変化させるということである。このような新しいミップマップの例を図１８に示す。
【００５３】
前にも例に挙げたような異なる視点／光源条件によるテクスチャサンプルで考えてみると、例えば、ミップマップレベル０では１０度間隔でサンプリングしたテクスチャ、ミップマップレベル１では２０度間隔でサンプリングしたテクスチャ、ミップマップレベル２では３０度間隔でサンプリングしたテクスチャ、などといった具合にミップマップレベルに応じて、テクスチャのサンプル数を変化させることができる。
【００５４】
このようにして作成したミップマップを用いて、テクスチャフィルタリング処理（ステップＳ２０５）を行うには、選択するミップマップレベルに応じて、テクスチャサンプル数が異なるため、テクスチャの選択には若干注意が必要である。具体的には、視点／光源条件などによってテクスチャの選択方法が定められるが、その際に、選択するテクスチャが存在するメモリアドレスの計算を予め、本実施形態におけるミップマップ向けにカスタマイズしておく必要がある。
【００５５】
以上に示したように、本実施形態では、ミップマップレベルに応じてテクスチャサンプル数を変化させる新たなミップマップの生成方法と、それを用いたテクスチャフィルタリング方法について述べた。このような処理によって、ＣＧモデルデータが手前（カメラに近い所）に存在した場合には、視点や光源による変化がきめ細かく観察でき、逆に、ＣＧモデルデータが奥（カメラから遠い所）に存在した場合には、視点や光源による変化が大まかにしか観察できないといった効果を出すことができる。
【００５６】
（第４の実施形態）  
本実施形態では、図１に示すテクスチャフィルタリング装置および図３に示すフィルタリング機能を有したテクスチャマッピング装置において、フィルタリング用テクスチャを生成する際に、各ミップマップレベルのインデックス画像を１つのインデックス画像としてまとめて表現する方法について説明する。これらの装置における全体的な処理フロー（図２、図４）については第１の実施形態で説明したので、本実施形態においては特徴的な違いのある部分の処理方法についてのみを示す。
【００５７】
本実施形態では、インデックス画像およびコードブックによって表現されたテクスチャデータを入力してフィルタリング用のテクスチャを生成する処理（ステップＳ２０３）において、各ミップマップレベルのインデックス画像を１つのインデックス画像としてまとめることによって、効率的なテクスチャフィルタリング処理（ステップＳ２０５）が行えることを説明する。
【００５８】
各ミップマップレベルのインデックス画像を１つのインデックス画像としてまとめた例を図１９に示す。これは、各ピクセルのインデックスを木構造で表現したものである。木構造の各ノードには、それぞれのミップマップレベルにおけるそれぞれのテクスチャ位置のインデックスが含まれている。このような表現を採用することによって、異なるミップマップレベルにおけるピクセルデータのアクセス性が向上する。また、全てのミップマップレベルにおけるインデックス画像の一覧性が向上することによって、インデックスの種類を何通りか用意することができ、同時にコードブックの表現方法も若干変化させることができる。例えば、インデックスの種類として、以下のような３つが考えられる。
【００５９】
（１）ミップマップレベル独自のコードブックを参照するためのインデックス
（２）全レベル共通のコードブックを参照するためのインデックス
（３）下位のレベルから生成しなければならないことを示すインデックス
（１）のインデックスは第１の実施形態において用いた種類のインデックスであり、（２）のインデックスは第２の実施形態において用いた種類のインデックスである。これらのインデックスを共存させるということは、自ずとコードブックに関しても、各ミップマップレベルのコードブックと、全レベル共通のコードブックを共存させることができるということを意味する。（１）、（２）のインデックスを共存させることによって、全レベルにわたって似たようなベクトルに関しては共通のコードブックに含め、各レベルで特有なベクトルに関しては、各レベルのコードブックに含める、といったことができる。また、メモリの制約上あまり大きなコードブックを持てない場合には、（３）のようなインデックスを用いることができる。このインデックスは、ミップマップのように予め全ての縮小したテクスチャを生成しておくのではなく、部分的には、実際のフィルタリング処理の際に下位のレベルからピクセルデータを生成させる、ということを意味する。
【００６０】
以上に示したように、本実施形態では、各ミップマップレベルのインデックス画像を１つのインデックス画像として木構造にまとめた上で、インデックスの種類も多様化させることによって、メモリの制約と処理性能とのトレードオフをうまく調整できる。
【００６１】
以上説明した実施形態によれば、異なる条件で取得あるいは作成した１枚以上のテクスチャデータから、任意サイズあるいは任意サンプル数のテクスチャデータを生成することができ、適切なフィルタリング用のテクスチャデータを生成することによって、テクスチャフィルタリングを施した高品位なテクスチャマッピングを実現することができる。
【００６２】
また、図１で示したテクスチャフィルタリング装置および図３で示したフィルタリング機能を有するテクスチャマッピング装置を利用することによって、テクスチャ生成処理を行った上で、効率的なテクスチャフィルタリング処理を行うことができる。テクスチャ生成後に効率的なデータ表現をしようとした場合、インデックス画像およびコードブックを利用したデータ構造が欠かせない。そこで、インデックス画像およびコードブックによって表現されたテクスチャデータに対して、ミップマップを生成する方法や、インデックス画像とコードブックによる表現を有効に活用した様々な工夫を示した。また、単一のテクスチャだけではなく、異なる視点／光源条件などで撮影した複数のテクスチャに対しても同様の処理を行うことができることを示し、さらに、第３の実施形態で示したような複数のテクスチャに対する今までにないミップマップ表現も提案した。
【００６３】
また、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態のテクスチャフィルタリング装置およびテクスチャマッピング装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷなど）、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態のテクスチャフィルタリング装置およびテクスチャマッピング装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。  
また、記憶媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーションシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本願発明における記憶媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。  
また、記憶媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記憶媒体に含まれ、媒体の構成は何れの構成であってもよい。
【００６４】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
【００６５】
また、本発明における処理は、RGB で表現された色情報のみならず、他の表色系（YUV, YCbCr, Lab 表色系等）で表現された色情報や、法線ベクトル成分、深度成分、照明効果成分などのようなベクトルデータに対しても適用することができる。
【００６６】
また、本願発明の実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の実施形態における機能を実現することが可能な機器、装置を総称している。
【００６７】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施形態に係るテクスチャフィルタリング装置のブロック図。
【図２】図１のテクスチャフィルタリング装置の動作の一例を示すフローチャート。
【図３】本発明の実施形態に係るテクスチャマッピング装置のブロック図。
【図４】図３のテクスチャマッピング装置の動作の一例を示すフローチャート。
【図５】単一のテクスチャに対するミップマップを示す図。
【図６】図５のミップマップを利用したテクスチャフィルタリング処理を説明するための図。
【図７】異なる視点の位置条件および光源の位置条件での撮影によるテクスチャデータの取得を示す図。
【図８】図２のステップＳ２０２での任意サイズのテクスチャの生成を説明するための図。
【図９】図２のステップＳ２０２での任意サンプル数のテクスチャの生成を説明するための図。
【図１０】単一のテクスチャから任意サイズのテクスチャを生成した場合の生成後のテクスチャのデータ構造を示す図。
【図１１】複数のテクスチャから任意サイズのテクスチャを生成した場合の生成後のテクスチャのデータ構造を示す図。
【図１２】複数のテクスチャに対するミップマップを示す図。
【図１３】インデックス画像とコードブックによって表現された単一のテクスチャのデータ構造を示す図。
【図１４】インデックス画像とコードブックによって表現された複数のテクスチャのデータ構造を示す図。
【図１５】ミップマップを生成する動作の一例を示すフローチャート。
【図１６】第２の実施形態でのコードブックを共有化した単一テクスチャのデータ構造を示す図。
【図１７】第２の実施形態でのコードブックを共有化した複数テクスチャのデータ構造を示す図。
【図１８】第３の実施形態でのミップレベルに応じてテクスチャサンプル数を変化させたミップマップを示す図。
【図１９】第４の実施形態での各ピクセルのインデックスを示す木構造表現を示す図。
【符号の説明】
【００６９】
１０１…テクスチャ生成部、１０２…フィルタリング用テクスチャ生成部、１０３…テクスチャフィルタリング部、３０１…フィルタリング条件算出部、３０２…テクスチャマッピング部。
【図１】
2008077604.tif 000003
【図２】
2008077604.tif 000004
【図３】
2008077604.tif 000005
【図４】
2008077604.tif 000006
【図５】
2008077604.tif 000007
【図６】
2008077604.tif 000008
【図７】
2008077604.tif 000009
【図８】
2008077604.tif 000010
【図９】
2008077604.tif 000011
【図１０】
2008077604.tif 000012
【図１１】
2008077604.tif 000013
【図１２】
2008077604.tif 000014
【図１３】
2008077604.tif 000015
【図１４】
2008077604.tif 000016
【図１５】
2008077604.tif 000017
【図１６】
2008077604.tif 000018
【図１７】
2008077604.tif 000019
【図１８】
2008077604.tif 000020
【図１９】
2008077604.tif 000021