(57)【特許請求の範囲】
【請求項１】
モデルを形成する複数の単位図形の各画素についての縮小率を決定し、決定した前記縮小率に応じたテクスチャデータを前記単位図形に対応付ける画像処理装置において、
所定の縮小率に対応した複数のテクスチャデータを記憶する記憶手段と、
前記単位図形の画素の縮小率を、除算を含まない所定の式の演算結果に基づいて決定する決定手段と、
前記決定手段により決定された前記縮小率に対応する前記テクスチャデータを、前記記憶手段から取得する取得手段と、
前記取得手段により取得された前記テクスチャデータを前記単位図形に対応付ける対応付け手段と
を備え、
前記決定手段は、前記式に含まれる２を底とする、任意の値Ｗの対数の演算を、２を底とする、前記値Ｗの浮動小数点の数値である２e×ｍの対数を演算することで行う
ことを特徴とする画像処理装置。
【請求項２】
前記決定手段は、１＜ｍ＜２において、２を底とする２e×ｍの前記対数を、ｅ、（ｍ−1）、およびlog2ｍとｍ−1の差分値に基づいて算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記決定手段は、ｍと、ｍに対応する前記差分値からなるテーブルを記憶しており、２を底とする２e×ｍの前記対数を、前記ｅ、前記（ｍ−1）、および前記テーブルにおいて前記ｍに対応する前記差分値に基づいて算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
モデルを形成する複数の単位図形の各画素についての縮小率を決定し、決定した前記縮小率に応じたテクスチャデータを前記単位図形に対応付ける画像処理装置の画像処理方法において、
所定の縮小率に対応した複数のテクスチャデータを記憶する記憶ステップと、
前記単位図形の画素の縮小率を、除算を含まない所定の式の演算結果に基づいて決定する決定ステップと、
前記決定ステップの処理で決定された前記縮小率に対応する前記テクスチャデータを、前記記憶制御ステップの処理で記憶された前記複数のテクスチャデータから取得する取得ステップと、
前記取得ステップの処理で取得された前記テクスチャデータを前記単位図形に対応付ける対応付けステップと
を含み、
前記決定ステップは、前記式に含まれる２を底とする、任意の値Ｗの対数の演算を、２を底とする、前記値Ｗの浮動小数点の数値である２e×ｍの対数を演算することで行う
ことを特徴とする画像処理方法。
【請求項５】
モデルを形成する複数の単位図形の各画素についての縮小率を決定し、決定した前記縮小率に応じたテクスチャデータを前記単位図形に対応付ける画像処理装置のプログラムであって、
所定の縮小率に対応した複数のテクスチャデータの記憶を制御する記憶制御ステップと、
前記単位図形の画素の縮小率の、除算を含まない所定の式の演算結果に基づく決定を制御する決定制御ステップと、
前記決定制御ステップの処理で決定された前記縮小率に対応する前記テクスチャデータの、前記記憶制御ステップの処理で記憶された前記複数のテクスチャデータからの取得を制御する取得制御ステップと、
前記取得制御ステップの処理で取得された前記テクスチャデータの、前記単位図形に対する対応付けを制御する対応付け制御ステップと
を含み、
前記決定制御ステップは、前記式に含まれる２を底とする、任意の値Ｗの対数の演算を、２を底とする、前記値Ｗの浮動小数点の数値である２e×ｍの対数を演算することで行う
ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項６】
モデルを形成する複数の単位図形の各画素についての縮小率を決定し、決定した前記縮小率に応じたテクスチャデータを前記単位図形に対応付ける画像処理装置のプログラムであって、
所定の縮小率に対応した複数のテクスチャデータの記憶を制御する記憶制御ステップと、
前記単位図形の画素の縮小率の、除算を含まない所定の式の演算結果に基づく決定を制御する決定制御ステップと、
前記決定制御ステップの処理で決定された前記縮小率に対応する前記テクスチャデータの、前記記憶制御ステップの処理で記憶された前記複数のテクスチャデータからの取得を制御する取得制御ステップと、
前記取得制御ステップの処理で取得された前記テクスチャデータの前記単位図形に対する対応付けを制御する対応付け制御ステップと
を含み、
前記決定制御ステップは、前記式に含まれる２を底とする、任意の値Ｗの対数の演算を、２を底とする、前記値Ｗの浮動小数点の数値である２e×ｍの対数を演算することで行う
を処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、簡単な構成の装置で、lodを算出することができるようにした画像処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
コンピュータグラフィックスにおいて、３次元の図形（モデル）を描画する際に、そのモデルの表面に、あらかじめ用意しておいた２次元画像（以下、テクスチャと称する）を貼り付け、質感の高い画像を生成することができるテクスチャマッピングという手法がある。
【０００３】
ここで、テクスチャマッピングの基本的な原理を図１および図２を参照してその概略を説明する。
【０００４】
図１ＡのＸＹ座標は、テクスチャが貼り付けられるモデルが写像される座標である。
【０００５】
描画されるモデルは、図１Ａに示すような三角形のポリゴンの集合により形成される。モデルを形成する各ポリゴンの頂点Ａ，Ｂ，Ｃには、３次元座標の座標値（Ｓｎ，Ｔｎ，Ｑｎ，但しｎ＝１，２，３）が与えられる。なお、以下において、その図示は省略するが、この３次元の座標をテクスチャ座標と称する。
【０００６】
ポリゴンの内部のＤ点の座標値（ｓ，ｔ，ｑ）は、点Ａ，Ｂ，Ｃのテクスチャ座標値を線形補間して得られる。座標（ｓ，ｔ）は、張り合わせのイメージパターンを示すテクスチャの同次座標（ｓ，ｔ）で、同次項ｑは、簡単にいうと、拡大縮小率のようなものである。
【０００７】
なお、上述した（ｓ，ｔ，ｑ），（Ｓｎ，Ｔｎ，Ｑｎ）などのテクスチャ座標値は、描画するモデルを構成する個々のポリゴンに対して与えられるものであり、変数である。また、テクスチャ座標のポリゴンの頂点座標値（Ｓｎ，Ｔｎ，Ｑｎ，但しｎ＝１，２，３）は、ＸＹ座標値（Ｘ、Ｙ）に対応し、ポリゴンの内部の画素のテクスチャ座標値（ｓ，ｔ，ｑ）は、ＸＹ座標値（ｘ、ｙ）に対応する。
【０００８】
図１ＢのＵＶ座標は、描画するモデルのポリゴンに貼り付けられるテクスチャの２次元座標である。図１Ｂのテクスチャの点Ａ'，Ｂ'，Ｃ'，Ｄ'のＵＶ座標値（ｕ，ｖ）は、ポリゴンの同次座標（Ｓn，Ｔn）を同次項Ｑで乗算した（Ｓn／Ｑn，Ｔn／Ｑn）となる。また図１Ｂのテクスチャは、点Ａ'，Ｂ'，Ｃ'，Ｄ'が、ＸＹ座標に写像されたポリゴンの点Ａ，Ｂ，Ｃ，Ｄと対応するようにポリゴンに貼り付けられる。
【０００９】
図２Ｂは、ＸＹ座標を構成する単位画素のＸ軸方向の辺素ｄｘ（図２Ａ）がＵＶ座標上では如何なる変位に対応するかを示したもので、ＸＹ座標の辺素ｄｘは、ＵＶ座標のＵ軸方向にｄｕ／ｄｘ、Ｖ軸方向にｄｖ／ｄｘの変位量に対応していることを表している。すなわち、ｄｕ／ｄｘとｄｖ／ｄｘは、ＸＹ座標で（ｄｘ）変化したときのＵＶ座標でのｕの変位量とｖの変化量である。Ｙ軸方向の辺素ｄｙ（図示せず）に対応するＵＶ座標上の変位についても同様である。
【００１０】
ところで、このテクスチャマッピングを行う際の、高画質を得る手法としてＭＩＰＭＡＰフィルタリング（Multum in parvo mapping )が知られている。ＭＩＰＭＡＰフィルタリングについては、Advanced Animation and Rendering Techniques (page.140) 出版社 : ADDISON WESLEYなどに詳しく述べられている。
【００１１】
ＭＩＰＭＡＰフィルタリングは、図３に示すように、複数の異なる縮小率（図３の例では、１／１、１／２、１／４、１／８）のそれぞれに対応した、複数のフィルタ処理がなされたテクスチャデータ（元画像、１／２画像、１／４画像、１／８画像）を予め用意し、各画素の縮小率に応じた最適なテクスチャデータを選択し使用するものである。すなわち、これにより、イメージの縮小に伴う情報欠落に起因するエイリアシングの影響を抑制でき、高画質を得ることができる。
【００１２】
図４は、ＭＩＰＭＡＰフィルタリングを行うテクスチャマッピング装置１の利用例を示している。
【００１３】
テクスチャバッファ３には、図３に示したような、複数の異なる縮小率のそれぞれに対応した、複数のフィルタ処理がなされたテクスチャデータが記憶されている。
【００１４】
テクスチャマッピング装置１は、ポリゴンの画素の縮小率を表すlod(Level Of Detail)を算出する。テクスチャマッピング装置１は、算出したlodに対応する画像をテクスチャバッファ３から読み出し、ディスプレイバッファ４に出力して記憶させる。ディスプレイバッファ４の記録内容に基づく画像が、図示せぬ表示部に表示される。
【００１５】
テクスチャマッピング装置１の動作を、図５のフローチャートを参照して説明する。
【００１６】
ステップＳ１において、テクスチャマッピング装置１は、ポリゴン（図１Ａ）の各頂点ついての同次座標および同次項を示す（ｓ1 ，ｔ1 ，ｑ1 ）、（ｓ2 ，ｔ2 ，ｑ2）、および（ｓ3 ，ｔ3 ，ｑ3 ）を入力する。
【００１７】
次に、ステップＳ２において、テクスチャマッピング装置１は、入力した各頂点の（ｓ1 ，ｔ1 ．ｑ1 ）、（ｓ2 ，ｔ2 ，ｑ2 ）、および（ｓ3 ，ｔ3 ，ｑ3 ）を線形補間して、ポリゴンの内部の各画素の同次座標および同次項を示す（ｓ，ｔ，ｑ）を求める。
【００１８】
ステップＳ３において、テクスチャマッピング装置１は、内蔵したlod算出装置２において、ポリゴンの内部の各画素の（ｓ，ｔ，ｑ）から、各画素のlodを算出する。
【００１９】
ここでは、式（１）に示すように、２を底とする、各画素の（ｓ，ｔ，ｑ）の縮小率を１／ｎとした場合のｎの対数で表すことができる。従って、縮小率が１／１，１／２，１／４，１／８・・・のとき、０，１，２，３，・・・となる。
【数１】
0003775580.tif 000002
【００２０】
縮小率（１／ｎ）のｎは、式（２）で求めることができる。
【数２】
0003775580.tif 000003
【００２１】
なお、式（２）中の、ｄｕ／ｄｘとｄｖ／ｄｘは、ＸＹ座標で（ｄｘ）変化したときのＵＶ座標でのｕの変位量とｖの変化量であり（図２Ｂ）、ｄｕ／ｄｙとｄｖ／ｄｙは、ＸＹ座標で（ｄｙ）変化したときのＵＶ座標でのｕの変位量とｖの変化量であり、それらは、式（３）に従って算出される。したがって、ｎは、式（４）で求めることができる。
【数３】
0003775580.tif 000004
【数４】
0003775580.tif 000005
【００２２】
式（３），（４）中、dS／dx、dT／dx、およびdQ／dxは、Ｘ方向の１画素当たりの（Ｓ，Ｔ，Ｑ）の差分を、dS／dy、dT／dy、およびdQ／dyは、Ｙ方向の１画素当たりの（Ｓ，Ｔ，Ｑ）の差分を表している。USIZEは、テクスチャの幅（Ｕ方向の長さ）を表し、VSIZEは、テクスチャの高さ（Ｖ方向の長さ）を表す。
【００２３】
従って、lodは、結局、式（１）に式（４）が代入された式（５）が演算されることにより算出される。
【数５】
0003775580.tif 000006
【００２４】
図６は、式（５）を演算して、lodを算出するlod算出装置２の構成例を表している。
【００２５】
除算器１１は、入力されたＱで、１を除算し（１／Ｑを演算し）、その除算結果を、乗算器１２、乗算器１３、回路２１（乗算器３２，３４）、回路２２（乗算器４２，４４）、回路２４（乗算器５２，５４）、および回路２５（乗算器６２，６４）に出力する。
【００２６】
乗算器１２は、Ｓと１／Ｑを乗算し、その乗算結果を、回路２１（乗算器３５）、および回路２２（乗算器４５）に出力する。乗算器１３は、Ｔと１／Ｑを乗算し、その乗算結果を、回路２４（乗算器５５）、および回路２５（乗算器６５）に出力する。
【００２７】
乗算器３１乃至絶対値検出器３７からなる回路２１は、式（５）の符号Ａに対応する部分（以下、部分Ａと称する。他の部分についても同様とする）を演算し、乗算器４１乃至絶対値検出器４７からなる回路２２は、式（５）の部分Ｃを演算し、演算結果を、それぞれ最大値検出器２３に出力する。最大値検出器２３は、回路２１からの値（部分Ａの値）と回路２２からの値（部分Ｃの値）のうちの大きい方を検出し、その検出結果を最大値検出器２７に出力する。
【００２８】
乗算器５１乃至絶対値検出器５７からなる回路２４は、式（５）の部分Ｂを演算し、乗算器６１乃至絶対値検出器６７からなる回路２５は、部分Ｄを演算し、演算結果を、それぞれ最大値検出器２６に出力する。最大値検出器２６は、回路２４からの値（部分Ｂの値）と回路２５からの値（部分Ｄの値）のうちの大きい方を検出し、その検出結果を最大値検出器２７に出力する。
【００２９】
最大値検出器２７は、最大値検出器２３からの値と最大値検出器２６からの値のうちの大きい方を検出し、その検出結果を対数演算器２８に出力する。対数演算器２８は、２を底とする最大値検出器２７からの値の対数を演算し、その演算結果（式（５）全体の演算結果）を、lodとしてディスプレイバッファ４（図４）に出力する。
【００３０】
次に、ステップＳ４において、テクスチャマッピング装置１は、各画素の（ｓ，ｔ，ｑ）について、ｓデータをｑデータで除算したｕデータと、ｔデータをｑデータで除算したｖデータとを算出し、テクスチャ座標データ（ｕ，ｖ）を算出する。
【００３１】
ステップＳ５において、テクスチャマッピング装置１は、lod算出装置２で算出したlodと、テクスチャ座標データ（ｕ，ｖ）とから、テクスチャバッファ３における物理アドレスであるテクスチャアドレス（Ｕ，Ｖ）を求め、テクスチャバッファ３に出力し、テクスチャデータ（Ｒ，Ｇ，Ｂ）を読み出す。
【００３２】
次に、ステップＳ６において、テクスチャマッピング装置１は、ステップＳ５で読み出しテクスチャデータに所定の処理を施した画素データをディスプレイバッファ４に書き込む。
【００３３】
その後、処理は終了する。
【００３４】
以上のようにして、テクスチャバッファ３に記憶されている、複数の異なる縮小率のそれぞれに対応した複数のテクスチャデータのうち、ｌｏｄに対応したテクスチャデータについてのアクセスが実現される。
【００３５】
【発明が解決しようとする課題】
ところで、式（５）の部分Ａ乃至部分Ｄには、Ｑ2の除算が行われる。その結果、lod算出装置２の構成は、図６で示したように、除算器（図６の例の場合、１個の除算器１１）の他、多くの乗算器が必要となり（図６の例の場合、２２個の乗算器が必要となり）、lod算出装置２の規模が大きくなるの課題があった。
【００３６】
本発明はこのような状況に鑑みてなされたものであり、簡単な構成の装置で、lodを算出することができるようにするものである。
【００３７】
【課題を解決するための手段】
本発明の画像処理装置は、所定の縮小率に対応した複数のテクスチャデータを記憶する記憶手段と、単位図形の画素の縮小率を、除算を含まない所定の式の演算結果に基づいて決定する決定手段と、決定手段により決定された縮小率に対応するテクスチャデータを、記憶手段から取得する取得手段と、取得手段により取得されたテクスチャデータを単位図形に対応付ける対応付け手段とを備え、決定手段は、式に含まれる２を底とする、任意の値Ｗの対数の演算を、２を底とする、値Ｗの浮動小数点の数値である２e×ｍの対数を演算することで行うことを特徴とする。
【００３９】
決定手段は、１＜ｍ＜２において、２を底とする２e×ｍの対数を、ｅ、（ｍ−1）、およびlog2ｍとｍ−1の差分値に基づいて算出することができる。
【００４０】
決定手段は、ｍと、ｍに対応する差分値からなるテーブルを記憶しており、２を底とする２e×ｍの対数を、ｅ、（ｍ−1）、およびテーブルにおいてｍに対応する差分値に基づいて算出することができる。
【００４１】
本発明の画像処理方法は、所定の縮小率に対応した複数のテクスチャデータを記憶する記憶ステップと、単位図形の画素の縮小率を、除算を含まない所定の式の演算結果に基づいて決定する決定ステップと、決定ステップの処理で決定された縮小率に対応するテクスチャデータを、記憶制御ステップの処理で記憶された複数のテクスチャデータから取得する取得ステップと、取得ステップの処理で取得されたテクスチャデータを単位図形に対応付ける対応付けステップとを含み、決定ステップは、式に含まれる２を底とする、任意の値Ｗの対数の演算を、２を底とする、値Ｗの浮動小数点の数値である２e×ｍの対数を演算することで行うことを特徴とする。
【００４２】
本発明の記録媒体のプログラムは、所定の縮小率に対応した複数のテクスチャデータの記憶を制御する記憶制御ステップと、単位図形の画素の縮小率の、除算を含まない所定の式の演算結果に基づく決定を制御する決定制御ステップと、決定制御ステップの処理で決定された縮小率に対応するテクスチャデータの、記憶制御ステップの処理で記憶された複数のテクスチャデータからの取得を制御する取得制御ステップと、取得制御ステップの処理で取得されたテクスチャデータの、単位図形に対する対応付けを制御する対応付け制御ステップとを含み、決定制御ステップは、式に含まれる２を底とする、任意の値Ｗの対数の演算を、２を底とする、値Ｗの浮動小数点の数値である２e×ｍの対数を演算することで行うことを特徴とする。
【００４３】
本発明のプログラムは、所定の縮小率に対応した複数のテクスチャデータの記憶を制御する記憶制御ステップと、単位図形の画素の縮小率の、除算を含まない所定の式の演算結果に基づく決定を制御する決定制御ステップと、決定制御ステップの処理で決定された縮小率に対応するテクスチャデータの、記憶制御ステップの処理で記憶された複数のテクスチャデータからの取得を制御する取得制御ステップと、取得制御ステップの処理で取得されたテクスチャデータの単位図形に対する対応付けを制御する対応付け制御ステップとを含み、決定制御ステップは、式に含まれる２を底とする、任意の値Ｗの対数の演算を、２を底とする、値Ｗの浮動小数点の数値である２e×ｍの対数を演算することで行うを処理をコンピュータに実行させることを特徴とする。
【００４４】
本発明の画像処理装置および方法、並びにプログラムにおいては、所定の縮小率に対応した複数のテクスチャデータが記憶され、単位図形の画素の縮小率が、除算を含まない所定の式の演算結果に基づいて決定され、決定された縮小率に対応するテクスチャデータが、記憶された複数のテクスチャデータから取得され、取得されたテクスチャデータが単位図形に対応付けられ、単位図形の画素の縮小率の決定は、式に含まれる２を底とする、任意の値Ｗの対数の演算が、２を底とする、値Ｗの浮動小数点の数値である２e×ｍの対数を演算することで行われる。
【００４５】
【発明の実施の形態】
図７は、本発明を適用したテクスチャマッピング装置１の利用例を示している。このテクスチャマッピング装置１には、図４のlod算出装置２に代えて、lod算出装置１０１が設けられている。
【００４６】
次に、このテクスチャマッピング装置１の動作を、図８のフローチャートを参照して説明する。
【００４７】
ステップＳ１１，Ｓ１２、およびステップＳ１４乃至ステップＳ１６においては、図５のステップＳ１，Ｓ２、およびステップＳ４乃至ステップＳ６における場合と同様の処理が実行されるので、その説明は省略する。
【００４８】
ステップＳ１３において、lod算出装置１０１は、ポリゴンの内部の各画素の（ｓ，ｔ，ｑ）から、式（６）を演算して、lodを算出する。
【数６】
0003775580.tif 000007
【００４９】
式（６）は、図４のlod算出装置２において、lodを算出するために演算された式（５）が、除算を含まないように展開されたもので、正確には、式（５）を式（７）のように展開した後、さらに式（６）のように展開したものである。
【数７】
0003775580.tif 000008
【００５０】
図９は、lod算出装置１０１の構成例を表している。このlod算出装置１０１には、乗算器が、図４のlod算出装置２には、２２個設けられていたのに対して、９個しか存在せず、装置の小型化が図られている。
【００５１】
図９の回路１１１Ａ乃至１１１Ｃのそれぞれは、２個の乗算器、１個の減算器、および１個の絶対値検出器から構成されている。
【００５２】
乗算器１２１−１乃至絶対値検出器１２１−４からなる回路１１１Ａは、式（６）の部分Ａを演算し、その演算結果を、最大値検出器１１１Ｃに出力する。すなわち、乗算器１２１−１は、ｄS／dxとＱを乗算し、乗算器１２１−２は、dQ／dxとＳを乗算し、その乗算結果を、それぞれ減算器１２１−３に出力する。減算器１２１−３は、乗算器１２１−１からの乗算結果から、乗算器１２１−２からの乗算結果を減算して、その減算結果を、絶対値検出器１２１−４に出力する。絶対値検出器１２１−４は、減算器１２１−３からの減算結果の絶対値を検出し、その検出結果を、最大値検出器１１１Ｃに出力する。
【００５３】
乗算器１２２−１乃至絶対値検出器１２２−４からなる回路１１１Ｂは、式（６）の部分Ｂを演算し、その演算結果を最大値検出器１１１Ｃに出力する。
【００５４】
最大値検出器１１１Ｃは、回路１１１Ａからの演算結果（式（６）の部分Ａの値）と、回路１１１Ｂからの演算結果（式（６）の部分Ｂの値）のうちの大きい方を検出し、対数演算器１１１Ｄに出力する。すなわち、最大値検出器１１１Ｃは、式（６）の部分Ｃを演算する。
【００５５】
対数演算器１１１Ｄは、２を底とする最大値検出器１１１Ｃからの値の対数を演算し（式（６）の部分Ｄを演算し）、その演算結果を、加算器１３１に出力する。
【００５６】
対数演算器１１１Ｅは、２を底とするUSIZEの対数を演算し（式（６）の部分Ｅを演算し）、その演算結果を、減算器１３２に出力する。
【００５７】
乗算器１１１Ｆは、Ｑの二乗を演算し（式（６）の部分Ｆを演算し）、その演算結果を、対数演算器１１１Ｇに出力する。対数演算器１１１Ｇは、２を底とするＱの二乗の対数を演算し（部分Ｇを演算し）、その演算結果を、減算器１３２および減算器１３３に出力する。
【００５８】
対数演算器１１１Ｈは、２を底とするVSIZEの対数を演算し（式（６）の部分Ｈを演算し）、その演算結果を、減算器１３３に出力する。
【００５９】
乗算器１２３−１乃至絶対値検出器１２３−４からなる回路１１１Ｉは、式（６）の部分Ｉを演算し、乗算器１２４−１乃至絶対値検出器１２４−４からなる回路１１１Ｊは、部分Ｊを演算し、その演算結果を、それぞれ最大値検出器１１１Ｋに出力する。
【００６０】
最大値検出器１１１Ｋは、回路１１１Ｉからの演算結果（式（６）の部分Ｉの値）と、回路１１１Ｊからの演算結果（式（６）の部分Ｊの値）のうちの大きい方を検出し（部分Ｋを演算し）、対数演算器１１１Ｌに出力する。対数演算器１１１Ｌは、２を底とする最大値検出器１１１Ｋからの値の対数を演算し（部分Ｌを演算し）、その演算結果を、加算器１３４に出力する。
【００６１】
減算器１３２は、対数演算器１１１Ｅからの値から、対数演算器１１１Ｇからの値を減算して、その減算結果を、加算器１３１に出力する。加算器１３１は、対数演算器１１１Ｄからの値と減算器１３２からの値を加算して、その加算結果を、最大値検出器１３５に出力する。
【００６２】
減算器１３３は、対数演算器１１１Ｈからの値から対数演算器１１１Ｇからの値を減算し、その減算結果を、加算器１３４に出力する。
【００６３】
加算器１３４は、対数演算器１１１Ｌからの値と、減算器１３３からの値とを加算し、その加算結果を、最大値検出器１３５に出力する。
【００６４】
最大値検出器１３５は、加算器１３１からの値と、加算器１３４からの値のうちの大きい方を検出し、その検出結果（式（６）全体の演算結果）を、lodとして、ディスプレイバッファ４に出力する。
【００６５】
ところで、対数演算器１１１Ｄ，Ｅ，Ｇ，Ｈ，Ｌは、図１０Ａの式に示すように、２を底とする、入力された値（以下、値Ｗと称する）の対数を演算するが、lod算出装置１０１への入力値は、浮動小数の数値であるので、ここでは浮動小数点の数値の対数演算が行われる。
【００６６】
以下に、この浮動小数点の数値の対数演算について説明する。
【００６７】
値Ｗの浮動小数点の数値は、図１０Ｂに示すように表現され、それの、図１０Ｃの左辺のように、２を底とする対数をとると、図１０Ｃの右辺が得られる。
【００６８】
ところで、図１０Ｃの右辺の第２項（log2ｍ）の軌跡は、図１１に示すようになる。すなわち、図１０Ｃの右辺の第２項は、１＜ｍ＜２の範囲において、図１１中、点Ａと点Ｂを通る直線に近似することができるので、図１０Ｄの式が成り立つ。
【００６９】
図１０Ｄの式中のerror（ｍ）は、図１０Ｃの右辺の第２項と、図１１の点Ａと点Ｂを通る直線との差分である（log2ｍと（ｍ−1.0）の差分である）。
【００７０】
すなわち、対数演算器は、１＜ｍ＜２においては、値Ｗの浮動小数点の数値を構成するｅとｍ、並びにｍに対応するerror（ｍ）を得て、図１０Ｄを図１０Ｃの右辺に代入することで（結局、図１０Ｅの右辺を演算することで）、図１０Ａの対数の値を得ることができる。
【００７１】
なお、error（ｍ）（図１０Ｄ，Ｅの式、図１１）は、ｍに１対１に対応するので、この例の場合、対数演算器は、ｍとerror（ｍ）とが１体１に対応付けられた対応テーブル（詳細は後述するが、正確には、m-1とerror（ｍ）とが１体１に対応付けられた対応テーブル）を記憶しているものとし、値Ｗのｍに対応するerror（ｍ）をその対応テーブルから取得するものとする。
【００７２】
また、ここでの、ｅ、（ｍ−1.0）、およびerror（ｍ）の加算（図１０Ｅの右辺の演算）は、ｅは、整数であり、（ｍ−1.0）＋error（ｍ）は、１＜ｍ＜２の下では、少数点以下の値となるので、この例の場合、図１２に示すように、ｅを４ビットで表して整数部に設定し、（ｍ−1.0＋error（ｍ））を４ビットで表して小数部に設定することで行われる。すなわち、lodは、４ビットの整数部と４ビットの小数部からなる。
【００７３】
また、（ｍ−1.0）とerror（ｍ）の加算は、ｍ−1.0を表す４ビットと、error（ｍ）を表す４ビットを加算することで行われる。すなわち、この例の場合、対応テーブルには、図１３に示すように、小数点以下の数値としての（ｍ−1.0）を表す４ビットと、それに対応する小数点以下の数値としてのerror（ｍ）を表す４ビットが対応して設定されている。ｍ−1.0が０または１、すなわち、ｍが１または２に近い値であればあるほど、図１１に示すように、error（ｍ）は小さいものとなっている。
【００７４】
例えば、ｍ−1.0が、値０．５であるとき（ｍ＝１．５であるとき）、ｍ−1.0を表す４ビットは”１０００”であるので、その”１０００”と、対応テーブルにおいてｍ−1.0の欄の”１０００”に対応して設定されているerror（ｍ）の欄の”０００１”とが加算され、その加算結果である”１００１”が小数部となる。
【００７５】
なお、値１を、図１４Ａに示すように、整数を表す１ビットと、小数点以下の数値を表す４ビットで表した場合、値０．５は、図１４Ｂのように、図１４Ａの整数を表す１ビットに設定された１を、図中右方向に１ビット分シフトしたものとなるので（１を１／２したものであるので）、値０．５は、”１０００”となる。
【００７６】
上述した一連の処理は、ハードウエアにより実現させることもできるが、ソフトウエアにより実現させることもできる。一連の処理をソフトウエアにより実現する場合には、そのソフトウエアを構成するプログラムがコンピュータにインストールされ、そのプログラムがコンピュータで実行されることより、上述したlod算出装置１０１が機能的に実現される。
【００７７】
図１５は、上述のようなlod算出装置１０１として機能するコンピュータ５０１の一実施の形態の構成を示すブロック図である。CPU（Central Processing Unit）５１１にはバス５１５を介して入出力インタフェース５１６が接続されており、CPU５１１は、入出力インタフェース５１６を介して、ユーザから、キーボード、マウスなどよりなる入力部５１８から指令が入力されると、例えば、ROM（Read Only Memory）５１２、ハードディスク５１４、またはドライブ５２０に装着される磁気ディスク５３１、光ディスク５３２、光磁気ディスク５３３、若しくは半導体メモリ５３４などの記録媒体に格納されているプログラムを、RAM（Random Access Memory）５１３にロードして実行する。これにより、上述した各種の処理が行われる。さらに、CPU５１１は、その処理結果を、例えば、入出力インタフェース５１６を介して、LCD（Liquid Crystal Display）などよりなる出力部５１７に必要に応じて出力する。なお、プログラムは、ハードディスク５１４やROM５１２に予め記憶しておき、コンピュータ５０１と一体的にユーザに提供したり、磁気ディスク５３１、光ディスク５３２、光磁気ディスク５３３，半導体メモリ５３４等のパッケージメディアとして提供したり、衛星、ネットワーク等から通信部５１９を介してハードディスク５１４に提供することができる。
【００７８】
なお、本明細書において、記録媒体により提供されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００７９】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【００８０】
【発明の効果】
本発明によれば、装置を簡単な構成にすることができる。
【図面の簡単な説明】
【図１】テクスチャマッピングの原理を説明する図である。
【図２】テクスチャマッピングの原理を説明する他の図である。
【図３】  MIPMAPフィルタリングの原理を説明する図である。
【図４】従来のテクスチャマッピング装置の構成例を示すブロック図である。
【図５】図４のテクスチャマッピング装置の動作を説明するフローチャートである。
【図６】図４のlod算出装置２の構成例を示すブロック図である。
【図７】本発明を適用したテクスチャマッピング装置の構成例を示すブロック図である。
【図８】図７のテクスチャマッピング装置の動作を説明するフローチャートである。
【図９】図７のlod算出装置の構成例を示すブロック図である。
【図１０】図７のlod算出装置におけるlod算出方法について説明する図である。
【図１１】  log2ｍとｍの関係を示す図である。
【図１２】  lodのデータ構成を説明する図である。
【図１３】対応テーブルを説明する図である。
【図１４】小数部を説明する図である。
【図１５】パーソナルコンピュータ５０１の構成例を示すブロック図である。
【符号の説明】
１  テクスチャマッピング装置，  ３  テクスチャバッファ，  ４  ディスプレイバッファ，  １０１  lod算出装置，  １１１Ａ  回路，  １１１Ｂ  回路，  １１１Ｃ  最大値検出器，  １１１Ｄ  対数演算器，  １１１Ｅ  対数演算器，  １１１Ｆ  乗算器，  １１１Ｇ  対数演算器，  １１１Ｈ  対数演算器，１１１Ｉ  回路，  １１１Ｊ  回路，  １１１Ｋ  最大値検出器，  １１１Ｌ対数演算器，  １３１  加算器，  １３２  減算器，  １３３  減算器，  １３４  加算器，  １３５  最大値検出器
【図１】
0003775580.tif 000009
【図２】
0003775580.tif 000010
【図３】
0003775580.tif 000011
【図４】
0003775580.tif 000012
【図５】
0003775580.tif 000013
【図６】
0003775580.tif 000014
【図７】
0003775580.tif 000015
【図８】
0003775580.tif 000016
【図９】
0003775580.tif 000017
【図１０】
0003775580.tif 000018
【図１１】
0003775580.tif 000019
【図１２】
0003775580.tif 000020
【図１３】
0003775580.tif 000021
【図１４】
0003775580.tif 000022
【図１５】
0003775580.tif 000023