(57)【要約】【課題】計算コストを低減しつつ画像の描画精度を向上出来る描画方法及び描画装置を提供すること。【解決手段】図形情報に従ってピクセルを生成するステップＳ１０と、テクセルの集合がｕｖ座標に配置されたテクスチャに前記ピクセルを投影して得られるフットプリントの方向を判断するステップＳ２１と、前記異方性の方向に従ってミップマップのサンプリングを行って、前記ピクセルに対してテクスチャマッピングを行うステップＳ２３とを具備し、前記異方性を判断するステップＳ２１は、前記フットプリントの、前記テクスチャ上において互いに異なる少なくとも３つの方向の長さを比較することにより前記異方性の方向を判断する。【選択図】      図１０
2006293627.tif 000002
【特許請求の範囲】
【請求項１】
図形情報に従ってピクセルを生成するステップと、
テクセルの集合がｕｖ座標に配置されたテクスチャに前記ピクセルを投影して得られるフットプリントの異方性の方向を判断するステップと、
前記異方性の方向に従ってミップマップのサンプリングを行って、前記ピクセルに対してテクスチャマッピングを行うステップと
を具備し、前記異方性を判断するステップは、前記フットプリントの、前記テクスチャ上において互いに異なる少なくとも３つの方向の長さを比較することにより前記異方性の方向を判断する
ことを特徴とする描画方法。
【請求項２】
前記異方性を判断するステップは、前記ピクセルの集合がｘｙ座標に配置されたフレームバッファのｘ軸方向及びｙ軸方向、並びに前記ｘ軸方向に対して４５度の角度を有するｌ軸方向及び１３５度の角度を有するｒ軸方向の４つの方向の長さを比較する
ことを特徴とする請求項１記載の描画方法。
【請求項３】
図形情報に従ってピクセルを生成するステップと、
テクセルの集合がｕｖ座標に配置されたテクスチャに前記ピクセルを投影して得られるフットプリントの異方性の方向を判断するステップと、
前記異方性の方向に従ってミップマップのサンプリングを行って、前記ピクセルに対してテクスチャマッピングを行うステップと
を具備し、前記異方性を判断するステップは、前記ピクセルの集合が二次元座標に配置されたフレームバッファ上における少なくとも３方向に対応する前記フットプリントの長さの、前記フレームバッファ上における長さに対する変化分を比較することにより前記異方性の方向を判断する
ことを特徴とする描画方法。
【請求項４】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行って、前記ピクセルの集合がｘｙ座標に配置されたフレームバッファを作成する複数のピクセル処理部と、
前記ピクセルに、テクセルの集合がｕｖ座標に配置されたテクスチャを貼り付ける処理を行うテクスチャユニットと、
前記ピクセル処理部及び前記テクスチャユニットによって描画された前記ピクセルのデータを保持する複数のメモリと
を具備し、前記テクスチャユニットは、前記フレームバッファ上の少なくとも３方向に関する前記テクスチャ座標の微分値を計算する微分回路と、
前記微分回路における計算結果に基づいて、前記テクスチャ座標の前記少なくとも３方向の差分ベクトルを算出する差分ベクトル計算回路と、
前記差分ベクトル計算回路の結果、前記少なくとも３方向のうちで前記差分ベクトルが最も大きい方向を前記テクスチャ座標上における前記ピクセル形状の異方性の軸として選択する選択回路と
を備えることを特徴とする描画装置。
【請求項５】
前記微分回路は、前記微分値の２乗を計算し、
前記差分ベクトル計算回路は、前記微分値の２乗の値を用いて前記差分ベクトルの２乗を計算し、
前記選択回路は、前記差分ベクトルの２乗の値を比較する
ことを特徴とする請求項４記載の描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、描画方法及び描画装置に関するもので、例えば異方性テクスチャマッピングに関するものである。
【背景技術】
【０００２】
近年、画像描画装置の高性能化には目覚ましいものがある。
【０００３】
デジタル画像データは複数のピクセル（pixel）の集合として表される。ピクセル処理の際に、物体表面の絵柄や材質を表す画像（texture）を貼り付けることによって、より詳細な表現が可能となる。この処理はテクスチャマッピング（texture mapping）と呼ばれている。テクスチャにおける各ピクセルの該当位置は、ピクセルをテクスチャ上に逆射影した像（ピクセルフットプリント：pixel footprint）から知ることが出来る。フットプリントは、テクスチャ上において異方性を持って歪む場合がある。このような場合には、異方性の方向を推測してテクスチャに何らかのフィルタリングを施して再構成する方法が提案されている（例えば非特許文献１、２参照）。
【０００４】
しかしながら非特許文献１記載の手法であると、フレームバッファ上においてピクセルを中心とした正規分布（Gaussian）を考えて、それをテクスチャ上に逆投影して、楕円に歪んだフィルタ（Elliptical Weighted Average）をかけている。従って、計算量が膨大であり計算コストが高く、またハードウェア化に不向きであるという問題があった。
【０００５】
また非特許文献２記載の手法であると、ミップマッピング回路を複数回用いることで、計算コストを低減出来る。しかし、ピクセルのフットプリントの形状が長方形から離れるにつれて異方性の計算が困難になる傾向がある。その結果、画像が暈けてしまい、画像描画精度が悪化するという問題があった。
【非特許文献１】Paul S. Heckbert著、“Fundamentals of Texture Mapping and Image Warping (Masters Thesis)”、Report No. UCB/CSD 89/516, Computer Science Division, University of California, Berkeley, June 1989年
【非特許文献２】Open GL Extension、[online]、［平成１７年４月４日検索］、インターネット＜URL:http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_filter_anisotropic.txt＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、上記事情に鑑みてなされたもので、その目的は、計算コストを低減しつつ画像の描画精度を向上出来る描画方法及び描画装置を提供することにある。
【課題を解決するための手段】
【０００７】
この発明に係る描画方法は、図形情報に従ってピクセルを生成するステップと、テクセルの集合がｕｖ座標に配置されたテクスチャに前記ピクセルを投影して得られるフットプリントの異方性の方向を判断するステップと、前記異方性の方向に従ってミップマップのサンプリングを行って、前記ピクセルに対してテクスチャマッピングを行うステップとを具備し、前記異方性を判断するステップは、前記フットプリントの、前記テクスチャ上において互いに異なる少なくとも３つの方向の長さを比較することにより前記異方性の方向を判断する。
【０００８】
またこの発明の一態様に係る描画装置は、図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、前記ラスタライザによって生成された前記ピクセルに対して描画処理を行って、前記ピクセルの集合がｘｙ座標に配置されたフレームバッファを作成する複数のピクセル処理部と、前記ピクセルに、テクセルの集合がｕｖ座標に配置されたテクスチャを貼り付ける処理を行うテクスチャユニットと、前記ピクセル処理部及び前記テクスチャユニットによって描画された前記ピクセルのデータを保持する複数のメモリとを具備し、前記テクスチャユニットは、前記フレームバッファ上の少なくとも３方向に関する前記テクスチャ座標の微分値を計算する微分回路と、前記微分回路における計算結果に基づいて、前記テクスチャ座標の前記３方向の差分ベクトルを算出する差分ベクトル計算回路と、前記差分ベクトル計算回路の結果、前記３方向のうちで前記差分ベクトルが最も大きい方向を前記テクスチャ座標上における前記ピクセル形状の異方性の軸として選択する選択回路とを備える。
【発明の効果】
【０００９】
この発明によれば、計算コストを低減しつつ画像の描画精度を向上出来る描画方法及び描画装置を提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、この発明の実施形態を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１１】
この発明の第１の実施形態に係る描画方法及び描画装置について、図１を用いて説明する。図１は、本実施形態に係る画像描画プロセッサシステムＬＳＩのブロック図である。
【００１２】
図示するように、本実施形態に係る画像描画プロセッサシステムＬＳＩ１０は、ホストプロセッサ２０、Ｉ／Ｏプロセッサ３０、メインメモリ４０、及びグラフィックプロセッサ５０を備えている。ホストプロセッサ２０とグラフィックプロセッサ５０とは、プロセッサバスＢＵＳによって、相互に通信可能に接続されている。
【００１３】
ホストプロセッサ２０は、メインプロセッサ２１、Ｉ／Ｏ部２２〜２４、及び複数の信号処理部（ＤＳＰ：Digital Signal Processor）２５を備えている。これらの回路ブロックは、ローカルネットワークＬＮ１によって相互に通信可能に接続されている。メインプロセッサ２１は、ホストプロセッサ２０内の各回路ブロックの動作を制御する。Ｉ／Ｏ部２２は、Ｉ／Ｏプロセッサ３０を介してホストプロセッサ２０外部とデータの授受を行う。Ｉ／Ｏ部２３は、メインメモリ４０との間でデータの授受を行う。Ｉ／Ｏ部２４は、プロセッサバスＢＵＳを介してグラフィックプロセッサ５０との間でデータの授受を行う。信号処理部２５は、メインメモリ４０や外部から読み込んだデータに基づいて信号処理を行う。
【００１４】
Ｉ／Ｏプロセッサ３０は、ホストプロセッサ２０と、例えば汎用バス、ＨＤＤやＤＶＤ（Digital Versatile Disc）ドライブ等の周辺機器並びにネットワークとを接続する。この際、ＨＤＤやＤＶＤドライブは、ＬＳＩ１０に搭載されているものでも良いし、またはＬＳＩ１０外部に設けられていても良い。
【００１５】
メインメモリ４０は、ホストプロセッサ２０が動作するために必要なプログラムを保持する。このプログラムは、例えば図示せぬＨＤＤ等から読み出されて、メインメモリ４０に格納される。
【００１６】
グラフィックプロセッサ５０は、ＤＭＡ（Direct Memory Access）コントローラ５１、Ｉ／Ｏ部５２、５３、及び演算処理部５４を備えている。ＤＭＡコントローラ５１は、ホストプロセッサ２０とグラフィックプロセッサ５０との間の通信や、演算処理部５４内の通信の制御を行う。Ｉ／Ｏ部５２は、プロセッサバスＢＵＳを介したホストプロセッサ２０との間の入出力を司る。Ｉ／Ｏ部５３は、ＰＣＩ等の各種汎用バス、ビデオ及びオーディオ、更に外部メモリ等との入出力を司る。演算処理部５４は、画像処理演算を行う。
【００１７】
演算処理部５４はラスタライザ（rasterizer）５５、複数のピクセルシェーダ（pixel shader）５６−０〜５６−３、及びパケットマネジメントユニット（packet management unit）５７を備えている。なお、本実施形態ではピクセルシェーダの数は４個であるがこれは一例に過ぎず、８個、１６個、３２個等でも良く、その数は限定されるものではない。演算処理部５４の構成について図２を用いて説明する。図２は演算処理部５４のブロック図である。
【００１８】
ラスタライザ５５は、入力された図形情報に従ってピクセル（pixel）を生成する。ピクセルとは、所定の図形を描画する際に取り扱われる最小単位の領域のことであり、ピクセルの集合によって図形が描画される。
【００１９】
ピクセルシェーダ５６−０〜５６−３は、ラスタライザ５５から投入されたピクセルにつき演算処理を行い、リアライズメモリ（後述する）上のフレームバッファに画像データを生成する。ピクセルシェーダ５６−０〜５６−３の各々は、エキスパンダ（expander）６０、ＲＰＣシンクロナイザ（synchronizer）６１、命令キャッシュユニット６２、テクスチャユニット（texture unit）６３、及び４つのリアライズパイプクラスタ（realize pipe cluster）６４−０〜６４−３を備えている。
【００２０】
エキスパンダ６０はラスタライザ５５からピクセルデータを受け取る。そして、受け取ったピクセルデータをリアライズパイプクラスタ６４−０〜６４−３へ割り振る。
【００２１】
ＲＰＣシンクロナイザ６１は、各ピクセルシェーダ５６−０〜５６−３において、４つのリアライズパイプクラスタ６４−０〜６４−３の同期化を行う。ＲＰＣシンクロナイザ６１は、ホストプロセッサ２０からKick信号を受け取ると、リアライズパイプクラスタ６４−０〜６４−３に対して処理を起動させる。そしてリアライズパイプクラスタ６４−０〜６４−３の処理が終了すると、ホストプロセッサ２０に対してアクノリッジ（acknowledge）を返す。
【００２２】
命令キャッシュユニット６２は、命令フェッチ要求に応答して、リアライズパイプクラスタ６４−０〜６４−３に命令を供給する。
【００２３】
テクスチャユニット６３はテクスチャ処理を行い、リアライズパイプクラスタ６４−０〜６４−３で処理されたピクセルにテクスチャデータを貼り付ける（テクスチャマッピング：texture mapping）。
【００２４】
リアライズパイプクラスタ６４−０〜６４−３はシェーダエンジン部であり、ピクセルデータに対してリアライズパイププログラムを実行する。そしてリアライズパイプクラスタ６４−０〜６４−３のそれぞれはＳＩＭＤ（Single Instruction Multiple Data）動作を行って、４個のピクセルについての描画処理を同時に行う。
【００２５】
パケットマネジメントユニット５７は、ピクセルシェーダ５６−０〜５６−３毎に設けられたリアライズメモリ（realize memory）５８−０〜５８−３を備えている。リアライズメモリ５８−０〜５８−３は、例えば互いに同一の半導体基板上に形成されたｅＤＲＡＭ（embedded DRAM）であり、それぞれピクセルシェーダ５６−０〜５６−３で描画されたピクセルデータを記憶する。なお、各リアライズメモリ５８−０〜５８−３は４つのメモリマクロを備えており、それぞれがリアライズパイプクラスタ６４−０〜６４−３に対応している。
【００２６】
次に、各ピクセルシェーダ５６−０〜５６−３が備えるテクスチャユニット６３の構成について図３を用いて説明する。図３はテクスチャユニット６３の一部領域のブロック図である。図示するようにテクスチャユニット６３は、パラメータ計算部７０、座標計算部７１、サンプリング部７２、累積加算部７３、及びテクスチャキャッシュメモリ７４を備えている。
【００２７】
図３は、テクスチャユニット６３において異方性テクスチャマッピングを行う部分について示している。異方性テクスチャマッピングについて以下説明する。  
ラスタライザ５５は、描画すべき図形に覆われるピクセルの集合を決定し、図形の頂点座標から各パラメータ値を補間する。そして各ピクセルについて、パラメータから色等を計算して、フレームバッファ（frame buffer）に格納する。フレームバッファはピクセルの２次元配列であり、以下、ピクセルの座標を（ｘ、ｙ）と表すことにする。
【００２８】
ピクセル処理の際に、物体表面の絵柄や材質を表す画像（テクスチャ）をマッピングすることにより、図形をより詳細に表現できる。これがテクスチャマッピングである。テクスチャはテクセル（texel）の２次元配列であり、以下テクセルの座標を（ｕ、ｖ）と表すことにする。テクセル座標は、基本的に図形の頂点にパラメータの１つとして与えられる。各ピクセルについて、ラスタライザ５５で補間された座標でテクスチャの該当物体へのテクスチャ座標の与え方と、投影変換によりフレームバッファ上のピクセルをテクスチャ上に射影した像（ピクセルフットプリント：pixel footprint）は様々に変化する。従って、テクスチャマッピングを行う際には、フットプリント内のテクセルに何らかのフィルタリングを施す必要がある。
【００２９】
この様子を示しているのが図４及び図５である。図４はフレームバッファと対応するポリゴンの様子を示す概念図である。図示するように、フレームバッファ上に円形のピクセルがあったとする。そのピクセルに対応するポリゴンが視線に対して大きく傾いていたとする。すると、図５に示すようにフットプリントはある方向に細長く伸びた形状となる。この伸びた方向を異方性の方向と呼ぶ。従って、この場合にはテクセルをそのままピクセルに貼り付けること無く、テクセルに対するフィルタリングを行う。
【００３０】
テクスチャユニット６３において使用するフィルタ方式は、バイリニアフィルタリング（bilinear filtering）やミップマッピング（mip mapping）である。バイリニアフィルタリングは、あるピクセルの近傍４テクセルを取得して、これらにより線形補間する方法である。これらのフィルタリング処理を、サンプリング部７２が実行する。
【００３１】
ミップマッピングは、予めフィルタリングしておいた解像度の異なる画像（ミップマップ）をメモリに複数枚用意しておき、フットプリントのサイズに応じて適切な解像度の画像を選択する方法である。ミップマップの枚数をＮとすると、（０−（Ｎ−１））をミップマップレベルと呼ぶ。ミップマップレベルが１高くなると、画像のサイズは幅、高さともに半分になる。ミップマップレベルは、テクスチャの詳細度（level-of-detail）を表す値ＬＯＤによって選択される。ＬＯＤの計算はパラメータ計算部７０で行われる。
【００３２】
またサンプリング部７２は、フットプリントがある方向に伸びている場合、すなわち異方性を有する場合、その異方性の方向に応じてミップマップのサンプリングを複数回行う。サンプリング点の個数を示す値ＡＮＩＳＯと、サンプリングを行う方向（ｄｕ、ｄｖ）は、パラメータ計算部７０で算出される。またサンプリングを行うべき点のテクスチャ座標は、座標計算部７１が（ｄｕ、ｄｖ）とＡＮＩＳＯとを基に算出する。
【００３３】
そして累積加算部７３が、複数点におけるミップマップのサンプリング結果を累積加算し、ＡＮＩＳＯで除算して得た平均値を最終結果として出力する。テクスチャキャッシュメモリ７４は、リアライズメモリ５８−０〜５８−３のいずれかから読み出したテクスチャデータを保持する。サンプリング部７２は、必要なテクスチャデータのメモリアドレスを計算してテクスチャキャッシュメモリ７４へテクスチャデータの読み出し要求を行う。必要なデータがテクスチャキャッシュメモリ７４に無い場合、テクスチャキャッシュメモリ７４にリアライズメモリからデータを読み出すよう命令する。
【００３４】
次に、上記構成のグラフィックプロセッサ５０の動作について、特に異方性テクスチャマッピングに着目して説明する。図６はグラフィックプロセッサ５０により図形を描画する際の処理のフローチャートである。
【００３５】
図形を描画するにあたって、まずラスタライザ５５に図形情報が入力される（ステップＳ１０）。図形情報は、例えば図形の頂点座標や色情報などである。すると、ラスタライザ５５は描画すべき図形が占める位置に対応するピクセルを生成し、生成したピクセルをピクセルシェーダ５６−０〜５６−３のいずれかのエキスパンダ６０に送る（ステップＳ１１）。次にエキスパンダ６０は、リアライズパイプクラスタ６４−０〜６４−３へピクセルを４個ずつ割り振る。そして各リアライズパイプクラスタ６４−０〜６４−３がリアライズパイププログラムを実行して、ピクセルの描画処理を行う（ステップＳ１２）。引き続き、ピクセルはリアライズパイプクラスタ６４−０〜６４−３からテクスチャユニット６３へ送付され、テクスチャユニット６３でテクスチャマッピングが実行される（ステップＳ１３）。テクスチャマッピングが終了すると、そのピクセルはリアライズメモリ５８−０〜５８−３のいずれかに格納されて、処理が終了する（ステップＳ１４）。
【００３６】
なお、テクスチャマッピングの結果は、一旦リアライズパイプクラスタ６４−０〜６４−３のいずれかに返された後で、その後リアライズメモリへ格納される。リアライズパイプクラスタ６４−０〜６４−３は、ピクセル処理中の任意の時点でテクスチャ要求を出し、その結果がテクスチャユニット６３から返ってくるまでの間、他の命令を実行出来る。また、テクスチャユニット６３から返ってきた結果を用いて更にピクセル処理を進めても良いし、更なるテクスチャ要求を出しても良いし、また結果をリアライズメモリに格納しても良い。リアライズパイプクラスタ６４−０〜６４−３はプログラマの書いた命令に従って動作するので、上記のように様々な自由度がある。その意味では、図６においてテクスチャマッピング（ステップＳ１３）はピクセル演算処理（ステップＳ１２）の一部であると言うことも出来る。
【００３７】
次に、上記ステップＳ１３におけるテクスチャマッピングの詳細について図３及び図７を用いて説明する。図７はテクスチャマッピングのフローチャートである。  
まずリアライズパイプクラスタ６４−０〜６４−３のいずれかからピクセルデータがテクスチャユニット６３へ投入される（ステップＳ２０）。図３に示すように、（２×２）個のピクセルｐ００、ｐ０１、ｐ０２、ｐ０３のデータが投入される。これら４個のピクセルのｕｖ座標値をそれぞれ次のように表記する。
【００３８】
p00: (p00.u, p00.v)
p01: (p01.u, p01.v)
p10: (p10.u, p10.v)
p11: (p11.u, p11.v)                                       （１）
１個のピクセルのｘｙ座標における形状及びｕｖ座標におけるフットプリントの形状の一例を図８、図９に示す。
【００３９】
次にパラメータ計算部７０が、上記座標を元にＡＮＩＳＯ、ＬＯＤ、（ｄｕ、ｄｖ）を計算する（ステップＳ２１）。ステップＳ２１の処理を、図１０のフローチャートを用いて詳細に説明する。
【００４０】
パラメータ計算部７０はまず、フレームバッファ上における０度方向（ｘ軸）及び９０度方向（ｙ軸）に対するテクスチャ座標の偏微分値ｄｕ／ｄｘ、ｄｕ／ｄｙ、ｄｖ／ｄｘ、ｄｖ／ｄｙを求める（ステップＳ３０）。これらの偏微分値は下記（２）式により求められる。  
du/dx = ((p10.u - p00.u) + (p11.u - p01.u)) / 2
dv/dx = ((p10.v - p00.v) + (p11.v - p01.v)) / 2
du/dy = ((p01.u - p00.u) + (p11.u - p10.u)) / 2
dv/dy = ((p01.v - p00.v) + (p11.v - p10.v)) / 2           （２）
更に図１１に示すように、ｘ軸に対して４５度の方向（ｌ軸）及び１３５度（ｒ軸）に対するテクスチャ座標の偏微分値ｄｕ／ｄｒ、ｄｕ／ｄｌ、ｄｖ／ｄｒ、ｄｖ／ｄｌを求める（ステップＳ３１）。これらの偏微分値は下記（３）式により求められる。  
du/dl = (p11.u - p00.u) / √2
dv/dl = (p11.v - p00.v) / √2
du/dr = (p10.u - p01.u) / √2
dv/dr = (p10.v - p01.v) / √2                             （３）
√２による除算は、ピクセルの対角線の長さを打ち消すために行うものである。
【００４１】
次にＡＮＩＳＯ及びＬＯＤを計算する。ＡＮＩＳＯ及びＬＯＤの計算は、ｘ軸及びｙ軸だけでなく、ｌ軸及びｒ軸に対しても行う。以下、ｘ軸及びｙ軸に対するＡＮＩＳＯ及びＬＯＤを、それぞれＡＮＩＳＯxy、ＬＯＤxyと呼び、ｌ軸及びｒ軸に対するＡＮＩＳＯ及びＬＯＤを、それぞれＡＮＩＳＯlr、ＬＯＤlrと呼ぶことにする。
【００４２】
テクスチャユニット６３は、まずＡＮＩＳＯxy及びＬＯＤxyを求めるためにＰmax及びＰminを求める（ステップＳ３２）。この様子を図１２に示す。図１２はｕｖ座標であり、ピクセルのフットプリントを示している。
【００４３】
図示するように、Ｐmaxは四角形の形状を有するフットプリントにおける四辺のうちの長辺の長さであり、Ｐminは短辺の長さである。従ってＰmax及びＰminは次の（４）、（５）式で求められる。  
Pmax = max (|(du/dx, dv/dx)|, |(du/dy, dv/dy)|)             （４）
Pmin = min (|(du/dx, dv/dx)|, |(du/dy, dv/dy)|)             （５）
但しmax及びminは最大及び最小の値を取得する関数である。Ｐmax及びＰminを用いてＡＮＩＳＯxyが下記（６）式で求められる。  
ANISOxy = min (ceil (Pmax / Pmin), MAXANISO)               （６）
上記（６）式においてceilは、小数点以下を切り上げて整数化する関数であり、ＭＡＸＡＮＩＳＯはサンプリング点数の最大値である。すなわちフットプリントの（長辺の長さ／短辺の長さ）と、サンプリング点数の最大規定数とのいずれか小さい方が、ＡＮＩＳＯxyとなる。またＬＯＤxyは下記（７）式で求められる。  
LODxy = log2 (Pmax / ANISOxy)                             （７）
以上のようにしてＡＮＩＳＯxy及びＬＯＤxyが求められる。
【００４４】
次にテクスチャユニット６３は、ＡＮＩＳＯlr及びＬＯＤlrを求めるためにＱmax及びＱminを求める（ステップＳ３３）。この様子を図１３に示す。図１３はｕｖ座標であり、図１２と同じピクセルのフットプリントを示している。
【００４５】
図示するように、Ｑmaxはフットプリントの対角線の長軸の長さに対応し、Ｑminは対角線の短軸の長さに対応する。従ってＱmax及びＱminは次の（８）、（９）式で求められる。  
Qmax = max (|(du/dl, dv/dl)|, |(du/dr, dv/dr)|)             （８）
Qmin = min (|(du/dl, dv/dl)|, |(du/dr, dv/dr)|)             （９）
Ｑmax及びＱminを用いてＡＮＩＳＯlrが下記（１０）式で求められる。  
ANISOlr = min (ceil (Qmax / Qmin), MAXANISO)               （１０）
すなわちフットプリントの対角線の（長軸の長さ／短軸の長さ）と、サンプリング点数の最大規定数とのいずれか小さい方が、ＡＮＩＳＯlrとなる。またＬＯＤlrは下記（１１）式で求められる。  
LODlr = log2 (Qmax / ANISOlr)                             （１１）
以上のようにしてＡＮＩＳＯlr及びＬＯＤlrが求められる。
【００４６】
次にサンプリング方向（ｄｕ、ｄｖ）を計算する。（ｄｕ、ｄｖ）もＡＮＩＳＯ及びＬＯＤと同様に、ｘ軸及びｙ軸だけでなくｌ軸及びｒ軸に対しても行う。以下、ｘ軸及びｙ軸に対するｄｕ、ｄｖをそれぞれｄｕxy、ｄｖxyと呼び、ｌ軸及びｒ軸に対するｄｕ、ｄｖをそれぞれｄｕlr、ｄｖlrと呼ぶことにする。
【００４７】
テクスチャユニット６３は、まずｄｕxy及びｄｖxyを求めるために、|(du/dx,dv/dx)|と|(du/dy,dv/dy)|とを比較する（ステップＳ３４）。比較の結果、|(du/dx,dv/dx)|≧|(du/dy,dv/dy)|であれば（ステップＳ３５）、下記（１２）式のように決定する（ステップＳ３６）。  
duxy = du/dx
dvxy = dv/dx                                             （１２）
すなわち、図１２の例であると軸Ｄ１に沿ってサンプリング点が配置される。|(du/dx,dv/dx)|＜|(du/dy,dv/dy)|であれば下記（１３）式のように決定する（ステップＳ３７）。
【００４８】
duxy = du/dy
dvxy = dv/dy                                             （１３）
すなわち、図１２の例であると軸Ｄ２に沿ってサンプリング点が配置される。
【００４９】
次にテクスチャユニット６３は、ｄｕlr及びｄｖlrを求めるために、|(du/dl,dv/dl)|と|(du/dr,dv/dr)|とを比較する（ステップＳ３８）。比較の結果、|(du/dl,dv/dl)|≧|(du/dr,dv/dr)|であれば（ステップＳ３９）、下記（１４）式のように決定する（ステップＳ４０）。  
dulr = du/dl
dvlr = dv/dl                                             （１４）
すなわち、図１３の例であると軸Ｄ３に沿ってサンプリング点が配置される。|(du/dl,dv/dl)|＜|(du/dr,dv/dr)|であれば下記（１５）式のように決定する（ステップＳ４１）。
【００５０】
dulr = du/dr
dvlr = dv/dr                                             （１５）
すなわち、図１３の例であると軸Ｄ４に沿ってサンプリング点が配置される。
【００５１】
次に最終的なＡＮＩＳＯ、ＬＯＤ、（ｄｕ、ｄｖ）を決定する。これらの値には、異方性のより強い軸について求めた値を選択する。異方性の強さはＰmax／ＰminとＱmax／Ｑminで計算できるので、これらの値の大きい方に対応する値を選択すればよい。しかし、Ｐmax／ＰminとＱmax／Ｑminの大小関係はＰmaxとＱmaxの大小関係と等価である。従って、テクスチャユニット６３はＰmaxとＱmaxとを比較する（ステップＳ４２）。
【００５２】
比較の結果、Ｐmax≧Ｑmaxであれば（ステップＳ４３）、下記（１６）式となる（ステップＳ４４）。  
ANISO = ANISOxy
LOD = LODxy
(du, dv) = (duxy, dvxy)                                   （１６）
逆にＰmax＜Ｑmaxであれば、下記（１７）式となる（ステップＳ４５）。  
ANISO = ANISOlr
LOD = LODlr
(du, dv) = (dulr, dvlr)                                   （１７）
すなわち、Ｐmax≧Ｑmaxの場合には、四角形の四辺のうち、長辺及び短辺を異方性の主軸及び副軸と考えてフィルタリングを行う。逆にＰmax＜Ｑmaxの場合には、四角形の対角線のうち、長軸及び短軸を異方性の主軸及び副軸と考えてフィルタリングを行う。
【００５３】
以上のようにしてパラメータを算出した後、座標計算部７１がサンプリング点のテクスチャ座標（ｕ、ｖ）を計算する（図７、ステップＳ２２）。サンプリング点の番号をＮ（Ｎは整数であり、１、２、…、ＡＮＩＳＯ）とすると、テクスチャ座標は下記（１８）式で算出される。  
(u - du/2 + ddu × N, v - dv/2 + ddv × N)                 （１８）
図１２、図１３の例において、Ｑmax＞Ｐmaxであり、ＡＮＩＳＯ＝４であったとすると、サンプリング点は図１４のようになる。図１４はテクスチャ座標である。なおｄｄｕ、ｄｄｖはサンプリング点間のオフセットであり、下記（１９）式の通りである。  
ddu = du/(ANISO + 1)
ddv = dv/(ANISO + 1)                                       （１９）
次にサンプリング部７２が、（１８）式で求めた座標について、（１６）式または（１７）式で求めたＬＯＤにより適切なミップマップレベルを選択してサンプリングを行う（ステップＳ２３）。そして累積加算部７３が、複数回のサンプリング結果の平均値を算出する（ステップＳ２４）。以上のようにしてテクスチャマッピングが終了する。
【００５４】
上記のように、本実施形態に係る描画装置及び描画方法であると、下記（１）の効果が得られる。  
（１）計算コストを抑えつつ、フットプリントを精度良く近似した異方性フィルタリングが可能となる。  
本実施形態に係る構成であると、テクスチャ座標における偏微分値を計算する際、図１１に示すように、ｘ軸とｙ軸の他に、ｘ軸に対して４５度及び１３５度でずれるｌ軸及びｒ軸も考慮している。すなわち、フットプリントの辺に対してだけでなく、２本の対角線に対してもＬＯＤｌｒを計算し、更に対角線に沿ったサンプリング点の数ＡＮＩＳＯｌｒ及びサンプリング方向（ｄｕlr、ｄｖｌｒ）を求めている。そして、ＰmaxとＱmaxとを比較し、Ｐmaxが大きい場合についてはフットプリントの辺に沿った方向に対して求めた値を、Ｑmaxが大きい場合についてはフットプリントの対角線に沿った方向に対して求めた値をＬＯＤ、ＡＮＩＳＯ、（ｄｕ、ｄｖ）として用いている。従って、従来に比べて異方性を正しく計算出来る。つまり、ミップマップを複数回行った結果としてカバーされる領域を、フットプリントの形状により近づけることが出来る。その結果、ミップマップを用いることで計算コストを抑えつつ、テクスチャマッピングの精度が向上し、描画装置の描画精度を向上出来る。
【００５５】
例えば、偏微分値を計算する際にｘ軸とｙ軸とのみを考慮した場合を考える。図１５及び図１６に示すように、フットプリントが長方形の形状を有しておりＰmax≫Ｐminの場合、異方性は正しく計算出来る。これは本実施形態の場合も同様であり、ＡＮＩＳＯ、ＬＯＤ、（ｄｕ、ｄｖ）にはＡＮＩＳＯxy、ＬＯＤxy、（ｄｕxy、ｄｖxy）がそれぞれ用いられる。しかしｘ軸及びｙ軸のみを考慮する方法であると、フットプリントが長方形から離れるに従って、異方性の計算の誤差が大きくなる。例えば図１７に示すように、フットプリントが菱形の形状に近づいてＰmax≒Ｐminになると異方性が小さいと判断され、完全な菱形であるとＰmax＝Ｐminとなるので、完全な等方性であると判断される。すると、ＡＮＩＳＯ＝１、ＬＯＤ＝ｌｏｇ２（Ｐｍａｘ）となり、単なるミップマッピングと等価となる。しかし本実施形態であると、Ｐmax＝Ｐminの場合にはＱmax＞Ｐmaxとなるので、対角線の長軸に沿った方向が異方性の向きであると判断される。従って、フットプリントが完全な菱形であったとしても異方性フィルタリングが可能となる。なお、異方性を判断する際に、Ｐminの代わりにフットプリントの面積を考慮する方法も考え得る。しかし、このような方法よりも、本実施形態に係る計算方法の方が、フットプリントがより菱形に近い場合、フットプリントの近似精度は高い。
【００５６】
次に、この発明の第２の実施形態に係る描画装置及び描画方法について説明する。本実施形態は、上記第１の実施形態における計算式をハードウェア化に適した形に変形したものである。従ってＬＳＩ１０の構成及び描画方法自体は第１の実施形態と同様であるので説明は省略し、以下ではパラメータ計算部７０における計算方法について説明する。なお実数値は仮数部ｍと指数部ｅとによって、ｍ×２ｅの形式で表現される。
【００５７】
まず図１０のステップＳ３０においてパラメータ計算部７０は、フレームバッファ上における０度方向（ｘ軸）及び９０度方向（ｙ軸）に対するテクスチャ座標の偏微分値ｄｕ／ｄｘ、ｄｕ／ｄｙ、ｄｖ／ｄｘ、ｄｖ／ｄｙを求める。これは上記（２）式により求める。次にｌ軸及びｒ軸に対するテクスチャ座標の偏微分値ｄｕ／ｄｒ、ｄｕ／ｄｌ、ｄｖ／ｄｒ、ｄｖ／ｄｌを求める（ステップＳ３１）。この際、上記（３）式の代わりに下記（２０）式を用いて求める。  
du/dl = p11.u - p00.u
dv/dl = p11.v - p00.v
du/dr = p10.u - p01.u
dv/dr = p10.v - p01.v                                     （２０）
すなわち（３）式から√２による除算を除去する。これは、ベクトルの絶対値はＬ２ノルムで求め、またノルムそのものは求めずにその２乗を求めるからである。これにより平方根の計算が不要になる。そして（２０）式で省略した√２による除算の補正を、２による除算で行うことが出来る。Ｌ２ノルムは下記（２１）式である。  
Ｌ２ノルム： |(x, y)| = √(x2 + y2)                         （２１）
また各ベクトルのノルムは下記（２２）式として扱う。  
|(du/dx, dv/dx)|2 = (du/dx)2 + (dv/dx)2
|(du/dy, dv/dy)|2 = (du/dy)2 + (dv/dy)2
|(du/dl, dv/dl)|2 = (du/dl)2 + (dv/dl)2) / 2
|(du/dr, dv/dr)|2 = (du/dr)2 + (dv/dr)2) / 2                 （２２）
これらのノルムの大小判定も、２乗した値のままで行うことが出来る。
【００５８】
すなわち、第１の実施形態における（４）、（５）、（８）、（９）式はそれぞれ下記（２３）〜（２６）式に変形される。  
Pmax2 = max (|(du/dx, dv/dx)|2, |(du/dy, dv/dy)|2)           （２３）
Pmin2 = min (|(du/dx, dv/dx)|2, |(du/dy, dv/dy)|2)           （２４）
Qmax2 = max (|(du/dl, dv/dl)|2, |(du/dr, dv/dr)|2)           （２５）
Qmin2 = min (|(du/dl, dv/dl)|2, |(du/dr, dv/dr)|2)           （２６）
以降では、ｘ及びｙ軸方向に関する計算について説明する。ｌ及びｒ軸方向に関する計算も同様であるので説明は省略する。
【００５９】
ＡＮＩＳＯは、後段の計算を簡略化できるように２の冪乗に限定する。すなわち（６）式ではＰmax／Ｐminの小数点を切り上げることによって整数値としていたのに対して、本実施形態ではＰmax／Ｐminに近い値の２の冪乗にする。Ｐmax２が仮数部Ｍmaxと指数部Ｅmaxで表現され、Ｐmin２が仮数部Ｍminと指数部Ｅminで表されているとする。すると、一例として以下の（２７）式及び（２８）式でＡＮＩＳＯxyが計算出来る。
【００６０】
ANISO_EXP = (Emax - Emin - m + BIAS) / 2                   （２７）
ANISOxy = min (2ANISO_EXP, MAXANISO)                           （２８）
ここで、Ｍmax＜Ｍminのときｍ＝１、そうでない場合にはｍ＝０である。（２７）式及び（２８）式は、Ｐmax／Ｐminが下記（２９）式のように表すことが出来ることから導かれる。
【００６１】
Pmax/Pmin = (Pmax2 /Pmin2)1/2 = ((Mmax / Mmin) × 2(Emax-Emin))1/2   （２９）
Ｍmax＜Ｍminのとき指数部が１減ずるのでｍ＝１としている。ＢＩＡＳは、Ｐmax／Ｐminの値を２の冪乗へ丸める際の切り上げ／切り下げの調節を行う。ＢＩＡＳ＝０とすると、Ｐmax／Ｐminが［２ｎ、２ｎ＋１）の範囲の値であるとき（ｎ：整数）、ＡＮＩＳＯが２ｎとなり、切り下げとなる。ＢＩＡＳ＝２とすると、Ｐmax／Ｐminが［２ｎ、２ｎ＋１）の範囲の値であるとき（ｎ：整数）、ＡＮＩＳＯが２ｎ＋１となり、切り上げとなる。ＢＩＡＳ＝１の場合、Ｐmax／Ｐminが［√(２)×２ｎ、√(２)×２ｎ＋１）の範囲内であるときＡＮＩＳＯは２ｎ＋１となり、√(２)×２ｎが切り上げと切り下げの境界値となる。（２８）式において、ＭＡＸＡＮＩＳＯも２の冪乗であるものとする。  
以上により（６）式における除算を省略する。
【００６２】
ＬＯＤの計算は、ＡＮＩＳＯが２の冪乗であることから、第１の実施形態における（７）式を下記（３０）式に変形する。  
LODxy = log2 (Pmax2/(2ANISO_EXP)2) /2
= log2 (Mmax × 2(Emax-2×ANISO_EXP)) / 2                       （３０）
すなわち、Ｐmax２の指数部からＡＮＩＳＯ＿ＥＸＰの２倍を減算し、その結果に対して２を底とした対数を取る。ｍ×２ｅの形に表現された実数の対数は以下の式（３１）で計算する。  
log2 (m × 2e) = e + log2 (m)                               （３１）
ｌｏｇ２（ｍ）はテーブル参照により計算しても良いし、仮数部ｍが［１、２）の範囲に正規化されているとして、以下の式（３２）で近似しても良い。  
log2 (m) = m - 1                                （３２）
以上の変形によって、（７）式における除算を省略する。
【００６３】
サンプリング点を取る方向（ｄｕ、ｄｖ）は式（１２）、（１３）と同様である。但し、ベクトルノルムを２乗の形で保持しているので２乗のままで比較する。すなわち、|(du/dx,dv/dx)|２≧|(du/dy,dv/dy)|２であれば、  
duxy = du/dx
dvxy = dv/dx                                             （３３）
すなわち、図１２の例であると軸Ｄ１に沿ってサンプリング点が配置される。|(du/dx,dv/dx)|２＜|(du/dy,dv/dy)|２であれば  
duxy = du/dy
dvxy = dv/dy                                             （３４）
上述の変形を式（１０）、（１１）、（１４）、（１５）にも適用し、最終的なＡＮＩＳＯ、ＬＯＤ、（ｄｕ、ｄｖ）は式（１６）、（１７）によって決定する。
【００６４】
サンプリング点のテクスチャ座標は、式（１８）、（１９）を変形し、下記の式（３５）、（３６）のようにして求める。  
(u - du/2 - ddu/2 + ddu×N, v - dv/2 -ddv/2 + ddv×N)       （３５）
ddu = du / ANISO
ddv = dv / ANISO                                         （３６）
式（３６）において、ＡＮＩＳＯが２の冪乗であるので、除算は指数部の減算となる。式（１９）において（ＡＮＩＳＯ＋１）で除算しているところをＡＮＩＳＯによる除算に変更している。従って、式（１８）で座標を計算するとサンプリング点が元のテクスチャ座標（ｕ、ｖ）に対して対称にならないため、式（３５）では（−ｄｄｕ／２、−ｄｄｖ／２）のオフセットで補正している。ｄｕ／２、ｄｖ／２、ｄｄｕ／２、ｄｄｖ／２は指数部から１を減算することで計算可能である。
【００６５】
上記のように本実施形態に係る計算方法を用いることにより、第１の実施形態で説明した効果（１）に加えて、下記（２）の効果を得られる。  
（２）テクスチャユニットのハードウェア構成を簡略化出来る。  
上記方法であると、式（２０）に示すように偏微分の計算から√２による除算を省略出来る。また、それを補正する式（２２）の２による除算は指数部から１を減算することによって可能である。従って、回路構成を簡略化出来、計算コストが低下出来る。
【００６６】
また式（２８）に示すように、ＡＮＩＳＯを２の冪乗で表現している。従ってＡＮＩＳＯの計算では指数部ＡＮＩＳＯ＿ＥＸＰのみを考慮すれば良く、その際の式（２７）、（２８）は整数演算である。従って、小数点演算を行う必要が無く、回路構成を簡略化出来る。更に、式（６）における除算を省略出来る。また式（２７）における仮数部Ｍmax及びＭminは、ｍの値を求めるために大小関係のみが必要である。従ってこれらの値Ｍmax及びＭminの精度は低くて良い。従ってベクトルノルムの計算式（２３）乃至（２６）の仮数部の精度を落とすことが出来るので、計算コストを削減出来る。
【００６７】
なおＡＮＩＳＯを２の冪乗に丸めることで、画質と計算速度とのトレードオフが発生する。例えばＢＩＡＳ＝０とすることでより小さい２の冪乗に丸めた場合、サンプリング点数は本来必要な数より少なくなるため画質は下がる。しかしサンプリング回数が減るので計算速度は向上する。逆にＢＩＡＳ＝２とすることでより大きい２の冪乗に丸めると、画質は上がるが計算速度は下がる。そこでＢＩＡＳ＝１とすることで、両者の中間程度の画質と速度とが得られる。但し、画質を保つためにサンプリング回数を増やしたとしても、同じ処理の繰り返し回数が増えるだけなので、回路面積の増大にはつながらない。
【００６８】
更に式（３０）、（３１）、（３２）の変形を用いることにより、ＬＯＤ算出時の除算及び対数演算を省略出来る。
【００６９】
以上のように、計算式を本実施形態のように変形することで回路構成を簡略化でき、計算コストを削減出来る。本実施形態の方法を用いた場合のサンプリング点を図１８及び図２０に示す。図１８及び図１９はテクスチャ座標上のフットプリントを示しており、図１８はｘ軸方向に対応する辺が異方性の主軸と判断された場合、図１９はｌ軸方向に対応する対角線が異方性の主軸と判断された場合について示している。
【００７０】
図１８に示すように、サンプリング点の間隔ｄｄｕ、ｄｄｖは、式（１８）、（１９）の場合よりも大きくなる。しかし全てのサンプリング点はフットプリント内に収まっているので、フィルタリングの質は大きく変化しない。図１９の場合も、第１の実施形態における式（１４）から√２による除算を省略しているので、サンプリング点の間隔ｄｄｕ、ｄｄｖは大きくなる。しかし全てのサンプリング点はフットプリント内にあるので、フィルタリングの質が悪化することはない。
【００７１】
次に、この発明の第３の実施形態に係る描画装置について説明する。本実施形態は、上記第１の実施形態に係るテクスチャユニット６３の備えるパラメータ計算部７０を実現するハードウェア構成に関するものである。その他の構成は第１の実施形態と同様であるので説明は省略する。
【００７２】
図２０はパラメータ計算部７０のブロック図である。図示するようにパラメータ計算部７０は、偏微分計算ユニット８０、（ｘｙ、ｌｒ）パラメータ計算ユニット８１、及びパラメータ決定ユニット８２を備えている。以下、各ユニットの詳細について説明する。
【００７３】
図２１は偏微分計算ユニット８０の回路図である。図示するように偏微分計算ユニット８０は、ｘ微分回路９０、ｙ微分回路９１、ｌ微分回路９２、及びｒ微分回路９３を備えている。ｘ微分回路９０は、減算器１００、１０１、加算器１０２、及び除算器１０３を有している。減算器１００は、（ｐ１１．ｕ）と（ｐ０１．ｕ）との減算、及び（ｐ１１．ｖ）と（ｐ０１．ｖ）との減算を行う。減算器１０１は、（ｐ１０．ｕ）と（ｐ００．ｕ）との減算、及び（ｐ１０．ｖ）と（ｐ００．ｖ）との減算を行う。加算器１０２は、減算器１００の減算結果と減算器１０１の減算結果との加算を行う。除算器１０３は、加算器１０２の加算結果を２で割る除算を行う。以上の結果、式（２）に示すｄｕ／ｄｘ、ｄｖ／ｄｘが求められる。
【００７４】
ｙ微分回路９１は、減算器１０４、１０５、加算器１０６、及び除算器１０７を有している。減算器１０４は、（ｐ１１．ｕ）と（ｐ１０．ｕ）との減算、及び（ｐ１１．ｖ）と（ｐ１０．ｖ）との減算を行う。減算器１０５は、（ｐ０１．ｕ）と（ｐ００．ｕ）との減算、及び（ｐ０１．ｖ）と（ｐ００．ｖ）との減算を行う。加算器１０６は、減算器１０４の減算結果と減算器１０５の減算結果との加算を行う。除算器１０７は、加算器１０６の加算結果を２で割る除算を行う。以上の結果、式（２）に示すｄｕ／ｄｙ、ｄｖ／ｄｙが求められる。
【００７５】
ｌ微分回路９２は、減算器１０８及び除算器１０９を有している。減算器１０８は、（ｐ１１．ｕ）と（ｐ００．ｕ）との減算、及び（ｐ１１．ｖ）と（ｐ００．ｖ）との減算を行う。除算器１０９は、減算器１０８の加算結果を√２で割る除算を行う。以上の結果、式（３）に示すｄｕ／ｄｌ、ｄｖ／ｄｌが求められる。
【００７６】
ｒ微分回路９３は、減算器１１０及び除算器１１１を有している。減算器１１０は、（ｐ１０．ｕ）と（ｐ０１．ｕ）との減算、及び（ｐ１０．ｖ）と（ｐ０１．ｖ）との減算を行う。除算器１１１は、減算器１１０の加算結果を√２で割る除算を行う。以上の結果、式（３）に示すｄｕ／ｄｒ、ｄｖ／ｄｒが求められる。
【００７７】
図２２は（ｘｙ、ｌｒ）パラメータ計算ユニット８１の回路図である。図示するようにパラメータ計算ユニット８１は、ｘｌ軸計算部１２０、ｙｒ軸計算部１２１、及び選択部１２２を備えている。
【００７８】
ｘｌ座標計算部１２０は式（４）、（５）、（８）、（９）のうちのｘ、ｌに関する計算を実行するものであり、２乗計算器１２３、１２４、加算器１２５、及び平方根計算器１２６を備えている。２乗計算器１２３は、（ｄｕ／ｄｘ）２及び（ｄｕ／ｄｌ）２を計算する。２乗計算器１２４は、（ｄｖ／ｄｘ）２及び（ｄｖ／ｄｌ）２を計算する。加算器１２５は、２乗計算器１２３、１２４で求めた（ｄｕ／ｄｘ）２及び（ｄｖ／ｄｘ）２との加算、及び（ｄｕ／ｄｌ）２及び（ｄｖ／ｄｌ）２との加算を行う。平方根計算器１２６は、加算器１２５の計算結果の平方根を計算する。その結果、下記（３７）式に示すＮｘ、Ｎｌが求められる。
【００７９】
Nx = √((du/dx)2 + (dv/dx)2)
Nｌ = √((du/dl)2 + (dv/dl)2)                               （３７）
ｙｒ座標計算部１２１は式（４）、（５）、（８）、（９）のうちのｙ、ｒに関する計算を実行するものであり、２乗計算器１２７、１２８、加算器１２９、及び平方根計算器１３０を備えている。２乗計算器１２７は、（ｄｕ／ｄｙ）２及び（ｄｕ／ｄｒ）２を計算する。２乗計算器１２８は、（ｄｖ／ｄｙ）２及び（ｄｖ／ｄｒ）２を計算する。加算器１２９は、２乗計算器１２７、１２８で求めた（ｄｕ／ｄｙ）２及び（ｄｖ／ｄｙ）２との加算、及び（ｄｕ／ｄｒ）２及び（ｄｖ／ｄｒ）２との加算を行う。平方根計算器１３０は、加算器１２９の計算結果の平方根を計算する。その結果、下記（３８）式に示すＮｙ、Ｎｒが求められる。
【００８０】
Ny = √((du/dy)2 + (dv/dy)2)
Nr = √((du/dr)2 + (dv/dr)2)                               （３８）
選択部１２２は、比較器１３１及び選択回路１３２〜１３５を備えている。比較器１３１は、ＮｘとＮｙ、及びＮｌとＮｒとを比較する。
【００８１】
選択回路１３２は、比較器１３１における比較結果がＮｘ≧Ｎｙの場合、ＮｘをＰmaxとして出力し、Ｎｘ＜Ｎｙの場合、ＮｙをＰmaxとして出力する。またＮｌ≧Ｎｒの場合、ＮｌをＱmaxとして出力し、Ｎｌ＜Ｎｒの場合、ＮｒをＱmaxとして出力する。選択回路１３３は、選択回路１３２と逆の法則でＮｘまたはＮｙ、ＮｌまたはＮｒを選択し、それぞれをＰmin及びＱminとして出力する。
【００８２】
選択回路１３４は、比較器１３１における比較結果がＮｘ≧Ｎｙの場合、ｄｕ／ｄｘをｄｕxyとして出力し、Ｎｘ＜Ｎｙの場合、ｄｕ／ｄｙをｄｕxyとして出力する。またＮｌ≧Ｎｒの場合、ｄｕ／ｄｌをｄｕlrとして出力し、Ｎｌ＜Ｎｒの場合、ｄｕ／ｄｒをｄｕlrとして出力する。
【００８３】
選択回路１３５は、比較器１３１における比較結果がＮｘ≧Ｎｙの場合、ｄｖ／ｄｘをｄｖxyとして出力し、Ｎｘ＜Ｎｙの場合、ｄｖ／ｄｙをｄｖxyとして出力する。またＮｌ≧Ｎｒの場合、ｄｖ／ｄｌをｄｖlrとして出力し、Ｎｌ＜Ｎｒの場合、ｄｖ／ｄｒをｄｖlrとして出力する。
【００８４】
以上のようにして、式（４）、（５）、（８）、（９）、（１２）〜（１５）、及び（２１）が実行される。
【００８５】
図２３はパラメータ決定部８２の回路図である。パラメータ決定部８２は、式（６）、（７）、（１０）、（１１）、（１６）、（１７）を実行する。図示するようにパラメータ決定部８２は、選択部１４０、ＡＮＩＳＯ計算部１４１、及びＬＯＤ計算部１４２を備えている。選択部１４０は、比較器１４３及び選択回路１４４〜１４７を備えている。比較器１４３は、ＰmaxとＱmaxとを比較する。
【００８６】
選択回路１４４は、比較器１４３における比較結果がＰmax≧Ｑmaxの場合にＰmaxを出力し、Ｐmax＜Ｑmaxの場合にＱmaxを出力する。選択回路１４５は、Ｐmax≧Ｑmaxの場合にＰminを出力し、Ｐmax＜Ｑmaxの場合にＱminを出力する。選択回路１４６は、Ｐmax≧Ｑmaxの場合にｄｕxyを最終的なｄｕとして出力し、Ｐmax＜Ｑmaxの場合にｄｕlrを最終的なｄｕとして出力する。選択回路１４７は、Ｐmax≧Ｑmaxの場合にｄｖxyを最終的なｄｖとして出力し、Ｐmax＜Ｑmaxの場合にｄｖlrを最終的なｄｖとして出力する。
【００８７】
ＡＮＩＳＯ計算部１４１は、除算器１４８、整数化器１４９、及び選択回路１５０を備えている。除算器１４８は、選択回路１４４、１４５の出力の除算（Ｐmax／Ｐmin）または（Ｑmax／Ｑmin）を計算する。整数化器１４９は、除算器１４８の計算結果の小数点を切り上げて整数化する。選択回路１５０は、整数化器１４９の出力とＭＡＸＡＮＩＳＯのうちの小さい方を選択し、最終的なＡＮＩＳＯとして出力する。
【００８８】
ＬＯＤ計算部１４２は、除算器１５１及び対数計算器１５２を備えている。除算器１５１は、選択回路１４４の出力と選択回路１５０の出力との除算（Ｐmax／ＡＮＩＳＯ）または（Ｑmax／ＡＮＩＳＯ）を計算する。対数計算器１５２は、除算器１５２の出力の対数（ｌｏｇ２）を計算し、その結果を最終的なＬＯＤとして出力する。
【００８９】
以上のようにしてＬＯＤ、ＡＮＩＳＯ、（ｄｕ、ｄｖ）を計算出来る。なお、偏微分計算ユニット８０及び（ｘｙ、ｌｒ）パラメータ計算ユニット８１におけるｘｙ軸に関する計算及びｌｒ軸に関する計算は、異なるサイクルで計算することで同一の回路を使用出来る。すなわち、偏微分計算ユニット８０において、ｕ座標の偏微分に使用する回路を、ｖ座標の偏微分のために使用することが出来る。また（ｘｙ、ｌｒ）パラメータ計算ユニット８１において、ｘｙ方向についてのパラメータ計算回路を、ｌｒ方向のパラメータ計算のために使用することが出来る。勿論、同一の回路を２つ設けて、それぞれをｘｙ軸、ｌｒ軸についての計算に用いても良い。
【００９０】
次にこの発明の第４の実施形態に係る描画装置について説明する。本実施形態は、上記第２の実施形態に係るテクスチャユニット６３の備えるパラメータ計算部７０を実現するハードウェア構成に関するものである。以下では上記第３の実施形態と異なる点についてのみ説明する。
【００９１】
パラメータ計算部７０のブロック構成は図２０と同一である。図２４は偏微分計算ユニット８０の回路図である。図示するように、偏微分計算ユニット８０は上記第３の実施形態で説明した図２１の構成において、除算器１０９、１１１を除去したものである。本構成により式（２）、（２０）を実行する。
【００９２】
図２５は、（ｘｙ、ｌｒ）パラメータ計算ユニット８１のブロック図である。図示するように、パラメータ計算ユニット８１は上記第３の実施形態で説明した図２５の構成において、平方根計算器１２６、１３０をそれぞれ除算器１６０及び選択回路１６１、並びに除算器１６２及び選択回路１６３に置き換えたものである。
【００９３】
すなわち、ｘ軸及びｙ軸に関する場合には、選択回路１６１は加算器１２５の計算結果（(du/dx)2 + (dv/dx)2）を選択してＮｘとして出力し、選択回路１６３は加算器１２９の計算結果（(du/dy)2 + (dv/dy)2）を選択してＮｙとして出力する。またｌ軸及びｒ軸に関する場合には、除算器１６０、１６２がそれぞれ加算器１２５、１２９の出力を２で除算し、その結果（((du/dl)2+(dv/dl)2)/2）、(((du/dr)2+(dv/dr)2)/2)がＮｌ、Ｎｒとして出力される。すなわち、式（２２）が実行される。そして選択部１２２が、ＮｘとＮｙ、及びＮｌとＮｒとの比較結果に応じて、式（２３）〜（２６）、（３３）、（３４）を出力する。
【００９４】
図２６はパラメータ決定ユニット８２の回路図である。パラメータ決定ユニット８２は、式（２７）、（２８）、（３０）、（３１）、（３２）を実行する。従って、上記第３の実施形態と異なり、Ｐmax、Ｐmin、Ｑmax、Ｑminに代えて、Ｐmax２、Ｐmin２、Ｑmax２、Ｑmin２を用いる。選択部１４０の構成は第３の実施形態と同様であるが、第２の実施形態で説明したように、Ｐmax２及びＱmax２が仮数部Ｍmaxと指数部Ｅmaxで表現され、Ｐmin２及びＱmin２は仮数部Ｍminと指数部Ｅminで表されている。従って、選択回路１４４はＰmax２またはＱmax２の仮数部Ｍmaxと指数部Ｅmaxを出力し、選択回路１４５はＰmin２またはＱmin２の仮数部Ｍminと指数部Ｅminを出力する。
【００９５】
ＡＮＩＳＯ計算部１４１は、比較器１６４、選択回路１６５、１５０、減算器１６６、加算器１６７、除算器１６８、及び冪乗計算器１６９を備えている。比較器１６４はＭmaxとＭminとを比較する。そして選択回路１６５は、比較器１６４においてＭmax＜Ｍminのときに０を選択し、そうでないときに１を選択して、この値を式（２７）における（−ｍ＋ＢＩＡＳ）＝ｍ’として出力する（ＢＩＡＳ＝１）。また減算器１６６は（Ｅmax−Ｅmin）を計算する。加算器１６７は、減算器１６６の出力と選択回路１６５の出力を加算する。そして除算器１６８が加算器１６７の出力を２で除算して、式（２７）によって与えられるＡＮＩＳＯ＿ＥＸＰを出力する。その後、冪乗計算器１６９によって２ＡＮＩＳＯ＿ＥＸＰが計算される。冪乗の計算は、２進数表示において、入力値の分だけ“１”を左シフト（上位ビット側へシフト）することによって実行できる。そして選択回路１５０が冪乗計算器１６９の出力とＭＡＸＡＮＩＳＯとのいずれか小さい方を選択して式（２８）を実行する。その結果、最終的なＡＮＩＳＯが得られる。なお、第２の実施形態において式（２８）は最終的なＡＮＩＳＯではないが、本実施形態の場合、先にＰmaxとＱmaxとを比較してからＡＮＩＳＯを計算しているので、この段階で得られる値が最終的に用いるＡＮＩＳＯとなる。
【００９６】
ＬＯＤ計算部１４２は式（３０）を実行するものであり、減算器１７０、１７１、加算器１７２、及び除算器１７３を備えている。減算器１７０はＭmaxから１を減ずる。これによって式（３２）の近似が行われ、ｌｏｇ２（Ｍmax）が計算出来る。減算器１７１はｌｏｇ２（２（Ｅmax−２×ＡＮＩＳＯ＿ＥＸＰ））を計算する。すなわち、（Ｅmax−２×ＡＮＩＳＯ＿ＥＸＰ）を計算すれば良い。（２×ＡＮＩＳＯ＿ＥＸＰ）は、加算器１６７の出力である（Ｅmax−Ｅmin＋ｍ’）の最下位ビットＬＳＢをゼロにすることで得られる。従って、減算器１７１がＥmaxから、加算器１６７の出力のＬＳＢをゼロにした結果を減算する。その後、加算器１７２が減算器１７０、１７１の出力を加算する。その結果、ｌｏｇ２（Ｍmax×２（Ｅmax−２×ＡＮＩＳＯ＿ＥＸＰ）が得られる。よって、除算器１７３が加算器１７２の出力を２で除算して、式（３０）の計算が終了し、最終的なＬＯＤが得られる。ＡＮＩＳＯと同様、第２の実施形態において式（３０）は最終的なＬＯＤではないと説明したが、本実施形態の場合、先にＰmaxとＱmaxとを比較してからＬＯＤを計算しているので、この段階で得られる値が最終的に用いるＬＯＤとなる。
【００９７】
上記のように、第２の実施形態の計算方法を用いることで、√２による除算及び対数計算を無くすことが出来る。第３の実施形態で説明した構成に比べて部品点数は増加しているが、各部分での計算量は小さいので実際の回路面積は小さく出来る。
【００９８】
上記のように、この発明の第１乃至第４の実施形態に係る描画装置及び描画方法によれば、異方性テクスチャマッピングを行う際に、フットプリントの辺に沿った方向だけでなく、対角線に沿った方向を考慮して異方性を判断している。従って、フットプリントの長辺と短辺とがほぼ等しくなるような場合であっても、より精度良く異方性を判断出来る。その結果、異方性フィルタリングの精度が向上し、より画質の良いテクスチャマッピングを行うことが出来、描画装置の描画精度を向上出来る。
【００９９】
なお上記実施形態のステップＳ３５、Ｓ３９、Ｓ４３では、分岐の条件をそれぞれ|(du/dx,dv/dx)|≧|(du/dy,dv/dy)|、|(du/dl,dv/dl)|≧|(du/dr,dv/dr)|、Ｐmax≧Ｑmaxとした。しかしこれらの条件は、|(du/dx,dv/dx)|＞|(du/dy,dv/dy)|、|(du/dl,dv/dl)|＞|(du/dr,dv/dr)|、Ｐmax＞Ｑmaxであっても良い。すなわち、比較対象の２値が等しい場合には、ｘｙ座標に基づいて計算を行ってもｌｒ座標に基づいて計算を行っても同じだからである。
【０１００】
また図１０において、ステップＳ３３の後にＰmaxとＱmaxとを比較しても良い。ＰmaxがＱmaxより大きければステップＳ３８〜Ｓ４３、Ｓ４５の計算は不要である。逆の場合にはステップＳ３４〜Ｓ３７、Ｓ４２〜Ｓ４４が不要となる。更には、第３、第４の実施形態のようにステップＳ３２、Ｓ３３ではＰmax、Ｐmin、Ｑmax、Ｑminのみを計算し、ＡＮＩＳＯとＬＯＤの計算をＰmaxとＱmaxとの比較の後に行うことで、ステップＳ４３〜Ｓ４５の選択を行うことなく最終的なＡＮＩＳＯ及びＬＯＤを計算することも出来る。
【０１０１】
更に上記実施形態では、図１１に示すようにｘ軸に対して４５度方向のｌ軸と１３５度方向のｒ軸を考慮する場合について説明した。しかし、ｘ軸及びｙ軸に加えるべき軸のｘ軸に対する角度は必ずしも４５度及び１３５度に限られるものではなく、任意に設定できる。また、ｘ軸及びｙ軸に加えるべき軸の数も２つに限定されるものではない。例えば１本でも良いし３本以上であっても良い。また追加する軸は、必ずしもｘ軸とｙ軸とをベースに決まる必要も無い。例えば３本の軸を考慮する場合には、ｘ軸と、ｘ軸に対して１２０度、及び２４０度の角度を有する軸を用いても良い。軸が増えればそれだけ計算量も増加するので、必要な画質とのトレードオフで決めることが出来る。一例として１本の軸（ｚ軸）のみを加えた場合について図２７に示す。軸の数が３本であっても、そのうちの最も長いものと短いものとを比較すれば良い。図２７ではフットプリントが楕円形の場合について示している。上記実施形態では説明の便宜上、フットプリントが四角形である場合を例に説明したが、図２７のように楕円形でも良いし、その形状は限定されるものではない。
【０１０２】
なお、上記第１乃至第４の実施形態に係る画像処理装置は、例えばゲーム機、ホームサーバー、テレビ、または携帯情報端末などに搭載することが出来る。図２８は上記第１乃至第４の実施形態に係る画像処理装置を備えたデジタルテレビの備えるデジタルボードのブロック図である。デジタルボードは、画像・音声などの通信情報を制御するためのものである。図示するように、デジタルボード１１００は、フロントエンド部１１１０、画像描画プロセッサシステム１１２０、デジタル入力部１１３０、Ａ／Ｄコンバータ１１４０、１１８０、ゴーストリダクション部１１５０、三次元ＹＣ分離部１１６０、カラーデコーダ１１７０、ＬＡＮ処理ＬＳＩ１１９０、ＬＡＮ端子１２００、ブリッジメディアコントローラ１２１０、カードスロット１２２０、フラッシュメモリ１２３０、及び大容量メモリ（例えばＤＲＡＭ）１２４０を備えている。フロントエンド部１１１０は、デジタルチューナーモジュール１１１１、１１１２、ＯＦＤＭ（Orthogonal Frequency Division Multiplex）復調部１１１３、ＱＰＳＫ（Quadrature Phase Shift Keying）復調部１１１４を備えている。
【０１０３】
画像描画プロセッサシステム１１２０は、送受信回路１１２１、ＭＰＥＧ２デコーダ１１２２、グラフィックエンジン１１２３、デジタルフォーマットコンバータ１１２４、及びプロセッサ１１２５を備えている。そして、例えばグラフィックエンジン１１２３及びプロセッサ１１２５が、上記第１乃至第４の実施形態で説明したグラフィックプロセッサ５０及びホストプロセッサ２０に対応する。
【０１０４】
上記構成において、地上デジタル放送波、ＢＳデジタル放送波、及び１１０°ＣＳデジタル放送波は、フロントエンド部１１１０で復調される。また地上アナログ放送波及びＤＶＤ／ＶＴＲ信号は、３次元ＹＣ分離部１１６０及びカラーデコーダ１１７０でデコードされる。これらの信号は、画像描画プロセッサシステム１１２０に入力され、送受信回路１１２１で、映像・音声・データに分離される。そして、映像に関しては、ＭＰＥＧ２デコーダ１１２２を介してグラフィックエンジン１１２３に映像情報が入力される。するとグラフィックエンジン１１２３は、上記実施形態で説明したようにして図形を描画する。
【０１０５】
図２９は、上記第１乃至第４の実施形態に係る画像処理装置を備えた録画再生機器のブロック図である。図示するように、録画再生機器１３００はヘッドアンプ１３１０、モータードライバ１３２０、メモリ１３３０、画像情報制御回路１３４０、ユーザＩ／Ｆ用ＣＰＵ１３５０、フラッシュメモリ１３６０、ディスプレイ１３７０、ビデオ出力部１３８０、及びオーディオ出力部１３９０を備えている。
【０１０６】
画像情報制御回路１３４０は、メモリインターフェース１３４１、デジタル信号プロセッサ１３４２、プロセッサ１３４３、映像処理用プロセッサ１３４５、及びオーディオ処理用プロセッサ１３４４を備えている。そして、例えば映像処理用プロセッサ１３４５及びデジタル信号プロセッサ１３４２が、上記第１乃至第４の実施形態で説明したグラフィックプロセッサ５０及びホストプロセッサ２０に対応する。
【０１０７】
上記構成において、ヘッドアンプ１３１０で読み出された映像データが画像情報制御回路１３４０に入力される。そして、デジタル信号処理プロセッサ１３４２から映像情報用プロセッサに図形情報が入力される。すると映像情報用プロセッサ１３４５は、上記実施形態で説明したようにして図形を描画する。
【０１０８】
上記のデジタルテレビや録画再生機器の場合、特に三次元グラフィックス機能を有する場合に特に上記実施形態の効果が得られる。
【０１０９】
なお、上記第１乃至第４の実施形態で説明した異方性テクスチャマッピングは、コンピュータを用いてソフトウェアにて実施することも可能である。すなわち、ＣＰＵによって図１０に示す処理を行わせても良い。またその際、図１０に示す処理を行うプログラムは記憶媒体に記録させることによって自由に携帯可能であり、様々なハードウェアにおいて本実施形態に係る図形描画方法が可能となる。
【０１１０】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【図面の簡単な説明】
【０１１１】
【図１】この発明の第１の実施形態に係る画像処理装置のブロック図。
【図２】この発明の第１の実施形態に係るグラフィックプロセッサの備える演算処理部のブロック図。
【図３】この発明の第１の実施形態に係る演算処理部の備えるテクスチャユニットのブロック図。
【図４】この発明の第１の実施形態に係る画像処理方法において、フレームバッファとポリゴンとの関係を示す模式図。
【図５】この発明の第１の実施形態に係る画像処理方法において、テクスチャの模式図。
【図６】この発明の第１の実施形態に係る画像処理方法のフローチャート。
【図７】この発明の第１の実施形態に係る画像処理方法のフローチャート。
【図８】この発明の第１の実施形態に係る画像処理方法におけるフレームバッファの模式図。
【図９】この発明の第１の実施形態に係る画像処理方法におけるテクスチャの模式図。
【図１０】この発明の第１の実施形態に係る画像処理方法のフローチャート。
【図１１】この発明の第１の実施形態に係る画像処理方法におけるフレームバッファの模式図。
【図１２】この発明の第１の実施形態に係る画像処理方法におけるテクスチャ上のフットプリントの様子を示す模式図。
【図１３】この発明の第１の実施形態に係る画像処理方法におけるテクスチャ上のフットプリントの様子を示す模式図。
【図１４】この発明の第１の実施形態に係る画像処理方法におけるテクスチャ上のフットプリントの様子を示す模式図。
【図１５】この発明の第１の実施形態に係る画像処理方法におけるテクスチャ上のフットプリントの様子を示す模式図。
【図１６】この発明の第１の実施形態に係る画像処理方法におけるテクスチャ上のフットプリントの様子を示す模式図。
【図１７】この発明の第１の実施形態に係る画像処理方法におけるテクスチャ上のフットプリントの様子を示す模式図。
【図１８】この発明の第２の実施形態に係る画像処理方法におけるテクスチャ上のフットプリントの様子を示す模式図。
【図１９】この発明の第２の実施形態に係る画像処理方法におけるテクスチャ上のフットプリントの様子を示す模式図。
【図２０】この発明の第３の実施形態に係るテクスチャユニットの備えるパラメータ計算部のブロック図。
【図２１】この発明の第３の実施形態に係るテクスチャユニットの備える偏微分計算ユニットのブロック図。
【図２２】この発明の第３の実施形態に係るテクスチャユニットの備える（ｘｙ、ｌｒ）パラメータ計算ユニットのブロック図。
【図２３】この発明の第３の実施形態に係るテクスチャユニットの備えるパラメータ決定ユニットのブロック図。
【図２４】この発明の第４の実施形態に係るテクスチャユニットの備える偏微分計算ユニットのブロック図。
【図２５】この発明の第４の実施形態に係るテクスチャユニットの備える（ｘｙ、ｌｒ）パラメータ計算ユニットのブロック図。
【図２６】この発明の第４の実施形態に係るテクスチャユニットの備えるパラメータ決定ユニットのブロック図。
【図２７】この発明の第１乃至第４の実施形態の変形例に係る画像処理方法において、テクスチャ上のフットプリントの様子を示す模式図。
【図２８】この発明の第１乃至第４の実施形態に係る画像処理装置を備えたデジタルテレビのブロック図。
【図２９】この発明の第１乃至第４の実施形態に係る画像処理装置を備えた録画再生機器のブロック図。
【符号の説明】
【０１１２】
１０…システムＬＳＩ、２０…ホストプロセッサ、３０…Ｉ／Ｏプロセッサ、４０…メインメモリ、５０…グラフィックプロセッサ、５４…演算処理部、５５…ラスタライザ、５６−０〜５６−３１…ピクセルシェーダ、５７…パケットマネジメントユニット、５８−０〜５８−３…リアライズメモリ、６０…エキスパンダ、６１…ＲＰＣシンクロナイザ、６２…命令キャッシュユニット、６３…テクスチャユニット、７０…パラメータ計算部、７１…座標計算部、７２…サンプリング部、７３…累積加算部、７４…テクスチャキャッシュ、９０〜９３…微分回路、１００、１０１、１０４、１０５、１０８、１１０、１６６、１７０、１７１…減算器、１０２、１０６、１２５、１２９、１６７、１７２…加算器、１０３、１０７、１０９、１１１、１４８、１５１、１６０、１６２、１６８、１７３…除算器、１２０…ｘｌ軸計算部、１２１…ｙｒ軸計算部、１２２、１４０…選択部、１２３、１２４、１２７、１２８…２乗計算器、１２６、１３０…平方根計算器、１３１、１４３、１６４…比較器、１３２〜１３５、１４４〜１４７、１５０、１６１、１６３、１６５…選択回路、１４１…ＡＮＩＳＯ計算部、１４２…ＬＯＤ計算部、１４９…整数化器、１５２…対数計算器、１６９…冪乗計算器
【図１】
2006293627.tif 000003
【図２】
2006293627.tif 000004
【図３】
2006293627.tif 000005
【図４】
2006293627.tif 000006
【図５】
2006293627.tif 000007
【図６】
2006293627.tif 000008
【図７】
2006293627.tif 000009
【図８】
2006293627.tif 000010
【図９】
2006293627.tif 000011
【図１０】
2006293627.tif 000012
【図１１】
2006293627.tif 000013
【図１２】
2006293627.tif 000014
【図１３】
2006293627.tif 000015
【図１４】
2006293627.tif 000016
【図１５】
2006293627.tif 000017
【図１６】
2006293627.tif 000018
【図１７】
2006293627.tif 000019
【図１８】
2006293627.tif 000020
【図１９】
2006293627.tif 000021
【図２０】
2006293627.tif 000022
【図２１】
2006293627.tif 000023
【図２２】
2006293627.tif 000024
【図２３】
2006293627.tif 000025
【図２４】
2006293627.tif 000026
【図２５】
2006293627.tif 000027
【図２６】
2006293627.tif 000028
【図２７】
2006293627.tif 000029
【図２８】
2006293627.tif 000030
【図２９】
2006293627.tif 000031