(57)【特許請求の範囲】
【請求項１】
メモリに格納されたテクスチャマップ内のテクスチャマッピングされた座標を決定するための回路であって、該回路は、多角形のための画像レンダリングプロセスの間、動作可能であり、該回路が、
ａ）ロード信号および垂直傾斜ウォーククロックを受け取る垂直ウォークサブ回路を含み、該垂直ウォークサブ回路が、
ｄｕmain値およびｄ2ｕmain値を受け取り、該ｄｕmain値と、該垂直傾斜ウォーククロックに基づく、該ｄ2ｕmain値の繰り返しとを合計した第１の出力値を生成するための第１の回路と、
第２の回路であって、該第１の回路から該出力値を受け取り、且つ、値ｕmainを、該第１の回路からの該出力値と合計して、該第２の回路の出力を生成する第２の回路と、
ｄｕortho-add値およびｄｕortho値を受け取り、該ｄｕortho値と、該垂直傾斜ウォーククロックに基づく、該ｄｕortho-add値の繰り返しとを合計した第２の出力値を生成するための第３の回路と、を含み、
ｂ）該ロード信号と、直交ウォーククロックとを受け取る直交ウォークサブ回路をさらに含み、該垂直ウォークサブ回路が、
ｄ2ｕortho値および該第２の出力を受け取り、該第２の出力値と、該直交ウォーククロックに基づく、該ｄ2ｕortho値の繰り返しとを合計した第３の出力値を生成するための第４の回路と、
該第１および第３の出力値を合計して、該多角形のピクセルの該テクスチャマッピングされた座標を表す第４の出力を生成する第５の回路と、を含む、回路。
【請求項２】
前記第１の回路が、ラッチと、加算器とを含み、該ラッチおよび該加算器が、互いに結合されて、累算器として機能する、請求項１に記載の回路。
【請求項３】
前記第２の回路が、ラッチと、加算器とを含み、該ラッチおよび該加算器が、互いに結合されて、累算器として機能する、請求項１に記載の回路。
【請求項４】
前記第３の回路が、ラッチと、加算器とを含み、該ラッチおよび該加算器が、互いに結合されて、累算器として機能する、請求項１に記載の回路。
【請求項５】
前記第４の回路が、ラッチと、加算器とを含み、該ラッチおよび該加算器が、互いに結合されて、累算器として機能する、請求項１に記載の回路。
【請求項６】
前記第５の回路が、ラッチと、加算器とを含み、該ラッチおよび該加算器が、互いに結合されて、累算器として機能する、請求項１に記載の回路。
【請求項７】
非同次２次遠近テクスチャマッピングシステムのための、テクスチャ座標ｕ（ａ0,n）およびｖ（ａ0,n）の値を決定するための回路であって、
データ入力バスから初期値ｕ（０，０）を受け取るように結合される第１の入力と、第１の加算器の出力を受け取るように結合される第２の入力とを含む第１の累算器を含み、該第１の加算器が、第２の累算器の出力を受け取るように結合される入力を含み、該第１の累算器の出力が、
ｍ＝０、ｎ＞０について、
ｕ（ａ0,n）＝ｕ（ａ0,n-1）＋ｄｕmain＋（ｎ−１）＊ｄ2ｕmain
という関係に従った値をもたらし、
該第２の累算器が、該データ入力バスから初期値ｄｕmainを受け取るように結合される第１の入力と、第２の加算器の出力から信号を受け取るように結合される第２の入力とを含み、該第２の加算器が、該データ入力バスを介して、ラッチされた初期値ｄ2ｕmainを受け取るように結合される入力を含み、該第２の累算器の出力が、
ｍ＝０、ｎ＞０について、
ｄｕmain＋（ｎ−１）＊ｄ2ｕmain
という関係に従った値をもたらし、
該第１の累算器および該第２の累算器が、垂直傾斜ウォーククロック信号によりクロックされる、回路。
【請求項８】
非同次２次遠近テクスチャマッピングシステムのための、ｍ＞０についてのテクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）の値を決定するための回路であって、
垂直傾斜ウォーククロックｎによりクロックされ、データ入力バスから初期値ｄｕorthoを受け取るように結合される第１の入力と、第１の加算器の出力から信号を受け取るように結合される第２の入力とを含む第１の累算器を含み、該第１の加算器が、該データ入力バスを介して、ラッチされた初期値ｄｕortho-ADDを受け取るように結合される入力を含み、該第１の累算器の出力は、
ｍ＝０、ｎ＞０について、
ｄｕortho＋ｎ（ｄｕortho-ADD）
という関係に従った値をもたらし、
直交ウォーククロックｍによりクロックされ、初期値ｕ（ａ0,n）を受け取るように結合される第１の入力と、第２の加算器の出力から信号を受け取るように結合される第２の入力とを含む第２の累算器をさらに含み、該第２の加算器が、第３の累算器の出力から信号を受け取るように結合される入力を含み、該第２の累算器の出力は、
ｍ＞０について、
ｕ（ａm,n）＝ｕ（ａm-1,n）＋ｄｕortho＋ｎ（ｄｕortho-ADD）＋（ｍ−１）ｄ2ｕortho
という関係に従った値をもたらし、
該直交ウォーククロックによりクロックされ、該第１の累算器の該出力から信号を受け取るように結合される第１の入力と、第３の加算器の出力から信号を受け取るように結合される第２の入力とを含む該第３の累算器をさらに含み、該第３の加算器が、該データ入力バスを介して、ラッチされた初期値ｄ2ｕorthoを受け取るように結合される入力を含み、該第３の累算器の出力は、
ｍ＞０について、
ｄｕortho＋ｎ（ｄｕortho-ADD）＋（ｍ−１）ｄ2ｕortho
という関係に従った値をもたらす、回路。
【請求項９】
前記第２の累算器の前記第１の入力が、垂直傾斜ウォークサブ回路の回路出力から前記初期値ｕ（ａ0,n）を受け取るように結合され、
前記垂直傾斜ウォーククロックによりクロックされ、データ入力バスから初期値ｕ（０，０）を受け取るように結合される第１の入力と、第４の加算器の出力から信号を受け取るように結合される第２の入力とを含む第４の累算器を含み、該第４の加算器が、第５の累算器の出力を受け取るように結合される入力を含み、該第４の累算器の出力は、
ｍ＝０、ｎ＞０について、
ｕ（ａ0,n）＝ｕ（ａ0,n-1）＋ｄｕmain＋（ｎ−１）ｄ2ｕmain
という関係に従った値をもたらす該回路出力を提供し、
該垂直傾斜ウォーククロックによりクロックされ、該データ入力バスを介して、初期値ｄｕmainを受け取るように結合される第１の入力と、第５の加算器の出力から信号を受け取るように結合される第２の入力とを含む該第５の累算器をさらに含み、該第５の加算器が、該データ入力バスを介して、ラッチされた初期値ｄ2ｕmainを受け取るように結合される入力を含み、該第５の累算器の出力は、
ｍ＝０、ｎ＞０について、
ｄｕmain＋（ｎ−１）ｄ2ｕmain
の値をもたらす、請求項８に記載の回路。
【発明の詳細な説明】
発明の分野
本発明は、コンピュータ制御式グラフィックスディスプレイシステムの分野に関する。具体的には、本発明は、補間を用いてある特定のグラフィックス特徴を行うコンピュータ制御式グラフィックスディスプレイシステムに関する。
発明の背景
コンピュータ制御式グラフィックスシステムは、ディスプレイ上のグラフィックス物体を表示するために使用される。これらのグラフィックス物体は、点、線、多角形などを含むグラフィックス原始要素（「グラフィックス基本立体」）からなる。グラフィックス基本立体は、ディスプレイスクリーン上で３次元（３−Ｄ）物体の２次元（２−Ｄ）画像をレンダリングするために使用される。テクスチャマッピングとは、２−Ｄディスプレイに表示されたこれらの３−Ｄグラフィックス物体の領域または表面に、表面ディテールを付加する技術である。もとのグラフィックス物体が３−Ｄであるため、テクスチャマッピングはしばしば、物体に付加された表面ディテールに関するある特定の遠近属性を維持することを必要とする。概して、テクスチャマッピングは、表面ディテールを格納しているメモリから、符号化された表面ディテールポイントまたは「テクセル（texel）」にアクセスし、そして、表面ディテールテクセルを、テクスチャマッピングされるグラフィック基本立体の所定ポイントに移動させることにより起こる。テクセルがアクセスされる態様は、上記の遠近を提供するために使用される。
図１Ａおよび図１Ｂを参照して、テクスチャマップ１０２およびディスプレイスクリーン１０４が示される。テクスチャマップ１０２は、ディスプレイスクリーン１０４上でグラフィックス物体１０５の領域または表面にマッピングされるテクスチャ画像１０３を含む。テクスチャマップ１０２は、（ｕ，ｖ）テクスチャ座標空間に存在する点要素（テクセル）を含む。テクスチャ画像１０３は、コンピュータメモリにおいて、ビットマップまたは他のラスタベースの符号化されたフォーマットとして表される。ディスプレイスクリーン１０４は、（ｘ，ｙ）表示座標空間に存在する点要素（ピクセル）を含む。具体的には、テクスチャマッピングは、（ｕ，ｖ）テクスチャマップ１０２のテクセルの色または視覚的属性を、ディスプレイスクリーン１０４上のグラフィックス物体１０５の対応するピクセルに付与することにより動作する。テクスチャマッピングでは、（ｘ，ｙ）表示座標空間のピクセルの明度が、サンプリングされたテクスチャマップ値に基づいて決定される。テクスチャマッピングの後、物体１０５の表面には、テクスチャ画像１０３にされたものが見える。
以下に、３種類のテクスチャマッピング、すなわち、線形、２次同次遠近、および２次非同次（non-homogenous）遠近（perspective）が説明される。線形テクスチャマッピングでは、テクスチャマップのテクセルは、概して、２−Ｄまたは３−Ｄグラフィックス物体のピクセルに線形にマッピングされ、それにより、スクリーン座標更新レートに関する、テクセル空間におけるサンプリングレートは一定であり、例えば、ｄｕ／ｄｘおよびｄｕ／ｄｙは一定値である。遠近テクスチャマッピングでは、テクスチャマップのテクセルは、概して、２−Ｄ空間（ｘ，ｙ）で表示される３−Ｄグラフィックス物体のピクセルにマッピングされ、スクリーン座標更新レートに関する、テクセル空間におけるサンプリングレートは、一定ではない。遠近テクスチャマッピングは、ディスプレイスクリーン１０４上での通常の線形に行われる多角形レンダリングプロセスの間にテクスチャマップ１０２のサンプリングレートを変えることにより作り出される奥行の幻影を特徴付ける。従来技術の図１Ａおよび図１Ｂを参照して、テクスチャ画像１０３は、ディスプレイスクリーン１０４上で３−Ｄグラフィックス物体１０５を２−Ｄにレンダリングした物（rendition）の表面にマッピングされる。
従来技術の図２Ａを参照して、線形テクスチャサンプリング経路１０６が、テクスチャマップサンプリングの間に横切られる（例えば、「サンプリングされる」）（ｕ，ｖ）テクスチャ座標空間において示される。線形テクスチャマップサンプリングの間、テクスチャ画像１０３は、周知の線形多角形レンダリングプロセスと同時に、経路１０６に従ってサンプリングされる。経路１０６は、ｕおよびｖの線形方程式により表され得る。テクスチャマップ１０２の各テクセルは、（ｕ，ｖ）座標に従って規定される。図２Ａの線形サンプリング経路１０６の、ｘおよびｙに関するｕおよびｖの変化率（例えば、ｄｕ／ｄｘ、ｄｕ／ｄｙ、ｄｖ／ｄｘ、およびｄｖ／ｄｙ）は、線形テクスチャマップサンプリングの場合、一定である。
図２Ｂを参照して、２次同次遠近テクスチャサンプリング経路１０８が、（ｕ，ｖ）テクスチャ座標空間に示される。２次同次遠近サンプリング経路８のｘおよびｙに関するｕおよびｖの変化率（例えば、ｄｕ／ｄｘ、ｄｕ／ｄｙ、ｄｖ／ｄｘ、およびｄｖ／ｄｙ）の値は、変化する。しかし、２次同次遠近サンプリング経路８のｘおよびｙに関するｕおよびｖの変化率の変化率（例えば、ｄ2ｕ／ｄｘ2、ｄ2ｕ／ｄｙ2、ｄ2ｖ／ｄｘ2、およびｄ2ｖ／ｄｙ2）は、一定であり、従って、同次である。同次２次テクスチャマップサンプリングの間、テクスチャマップ１０２は、多角形レンダリングプロセスの間、経路１０８に従ってサンプリングされる。経路１０８は、ｕおよびｖの同次２次多項方程式により表され得る。
従来技術の図２Ｃを参照して、非同次２次遠近サンプリング経路１１０が、（ｕ，ｖ）テクスチャ座標空間において示される。サンプリング経路１１０に沿ったｘおよびｙに関するｕおよびｖの変化率（例えば、ｄｕ／ｄｘ、ｄｕ／ｄｙ、ｄｖ／ｄｘ、およびｄｖ／ｄｙ）の値は、変化する。２次遠近サンプリング経路１１０のｘおよびｙに関するｕおよびｖの変化率の変化率（例えば、ｄ2ｕ／ｄｘ2、ｄ2ｕ／ｄｙ2、ｄ2ｖ／ｄｘ2、およびｄ2ｖ／ｄｙ2）の値は、変化し、同次ではない（例えば、ｕの２次変化率は、ｖの多様関数（multiple functions）により規定される）。非同次２次テクスチャマップサンプリングの間、テクスチャマップ１０２は、多角形レンダリングプロセスの間、経路１１０に従ってサンプリングされる。経路１１０は、ｕおよびｖの非同次２次非同次多項方程式により表され得る。
典型的な従来技術の２次遠近テクスチャマッピング技術では、（ｘ，ｙ）表示座標空間で所望の表示座標に関して、線形項が生成され、そして、遠近項で割って、遠近テクスチャマップサンプル座標Ｔ（ｕ，ｖ）を得る。次いで、座標（ｕ，ｖ）は、Ｔ（ｕ，ｖ）に従って、テクスチャマップＴから属性値を得るために使用され得る。以下の関係は、例示的な２次遠近テクスチャマッピングの関係を示し、線形項ＤｕおよびＤｖを、奥行を表す遠近項Ｗ（ｘ，ｙ，ｚ）で割って、遠近テクスチャマップサンプル位置の変化率ｄｕおよびｄｖを得る。
（ｄｕ，ｄｖ）＝（ｄｕ／Ｗ（ｘ，ｙ，ｚ），ｄｖ／Ｗ（ｘ，ｙ，ｚ））
従来技術では、ｄｕおよびｄｖから、テクスチャ座標（ｕ，ｖ）が計算される。
上記の従来技術の２次遠近テクスチャ技術に関連する問題点は、繰り返し行われる除算のため、この技術を実現するには、プロセッサ時間および集積回路の場所（real estate）の面で費用がかかることである。除算は、計算としては費用が高くつく。従って、プロセッサ時間および集積回路の場所の面で、実現するのに費用がかさまない２次遠近テクスチャマッピング装置が必要とされている。さらに必要とされているのは、従来技術のテクスチャマッピング技術により必要とされる繰り返しの除算をなくした２次遠近テクスチャマッピングのための装置である。
従って、本発明は、除算を必要とせずに非同次２次テクスチャマッピング機能を効率的に果たすための回路を提供する。本発明の上記およびその他の利点は、以下に示す本発明の詳細な説明を考慮すれば明らかになる。
【図面の簡単な説明】
従来技術の図１Ａは、テクスチャマップを示す。
従来技術の図１Ｂは、ディスプレイスクリーンを示す。
従来技術の図２Ａは、テクスチャマップをサンプリングするための従来技術の線形サンプリング経路である。
従来技術の図２Ｂは、テクスチャマップをサンプリングするための同次２次遠近サンプリング経路である。
従来技術の図２Ｃは、テクスチャマップをサンプリングするための従来技術の非同次２次遠近サンプリング経路である。
図３Ａは、線形補間パラメータを用いる２次遠近テクスチャマッピングのための、本発明のコンピュータにより実現される方法を用いるための例示的なホストコンピュータシステムである。
図３Ｂは、本発明により使用されるような、コンピュータで読み取り可能な揮発性メモリユニットであって、格納されたビットマップテクスチャマップを含む揮発性メモリユニットを示す。
図４は、本発明により使用され、（ｍ，ｎ）テクスチャ多角形座標空間の多角形座標ａm,nからなるテクスチャ多角形である。
図５は、線形補間パラメータを用いる２次遠近テクスチャマッピングのための本発明の方法のステップを実現するためのフロー図である。
図６は、本発明によるテクスチャ値決定回路（ＴＶＤ回路）の回路図である。
図７は、本発明によるテクスチャ値決定回路（ＴＶＤ回路）動作のタイミング図である。
発明の概要
本発明は、非同次２次遠近テクスチャマッピングを近似して、多角形についてのテクスチャを提供するためのテクスチャ値決定回路（ＴＶＣ回路）を提供する。（ｘ，ｙ）表示座標空間におけるピクセルの属性値、例えば、明度は、本発明のＴＶＤ回路により生成されるテクスチャマップ値に基づいて決定される。本発明のＴＶＤ回路は、多角形座標ａm,nについてのテクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）を決定する。テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）は、テクスチャマップＴ（ｕ，ｖ）へのインデックスとして用いられ、ディスプレイスクリーン上で（ｘ，ｙ）表示座標空間においてレンダリングされた表示ピクセルの色または視覚的属性を決定する。本発明の範囲内では、テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）の値の決定は、テクスチャマップの非同次２次遠近テクスチャマップサンプリングを必要とする。
本発明のＴＶＤ回路は、垂直ウォークサブ回路（vertical walk subcircuit）と、直交ウォークサブ回路（orthogonal walk subcircuit）とを含む。垂直ウォークサブ回路は、テクスチャ多角形の各行ｎの最初の多角形座標ａ0,nを含む、すべての垂直に進む（vertically walked）多角形座標位置について、テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）を決定する。これは、三角形の主要な傾斜（major slope）に沿った画素を表す。直交ウォークサブ回路は、三角形内の個々の走査線に対応する直交して進む（orthogonally walked）多角形座標位置について、テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）を決定する。直交して進む多角形座標位置は、ｍ＞０である多角形座標位置の各々を含み、ｍ＝０である、垂直に進む多角形座標位置ｕ（ａ0,n）およびｖ（ａ0,n）を除く。
ＴＶＤ回路の垂直ウォークサブ回路は、第１の加算器、第２の加算器、および第３の加算器を含む。垂直ウォークサブ回路はまた、第１のラッチ、第２のラッチ、および第３のラッチを含む。垂直ウォークサブ回路は、第１の累算器、第２の累算器、および第３の累算器を含む。垂直ウォークサブ回路の各エレメントは、垂直傾斜ウォーククロック信号（ｎクロック信号）を受け取る。第１の累算器は、データ入力バスから初期値ｕ（０，０）を受け取るように結合される第１の入力と、第１の加算器の出力から和出力を受け取るように結合される第２の入力とを含む。第１の加算器は、第２の累算器の出力を受け取るように結合される入力を含む。第１の累算器の出力は、以下の関係をもたらす。
ｍ＝０、ｎ＞０について、
ｕ（ａ0,n）＝ｕ（ａ0,n-1）＋Ｋ１＋（ｎ−１）＊Ｋ２
第２の累算器は、データ入力バスから初期値Ｋ１を受け取るように結合される第１の入力と、第２の加算器の出力から和信号を受け取るように結合される第２の入力とを含む。第２の加算器は、データ入力バスを介して、ラッチされた初期値Ｋ２を受け取るように結合される入力を含む。第２の累算器の出力は、以下の関係に従う値をもたらす。
ｍ＝０、ｎ＞０について、Ｋ１＋（ｎ−１）＊Ｋ２
第３の累算器は、データ入力バスから初期値Ｋ３を受け取るように結合される第１の入力と、第３の加算器の出力から和出力を受け取るように結合される第２の入力とを含む。第３の加算器は、データ入力バスを介して、ラッチされた初期値Ｋ４を受け取るように結合される入力を含む。第３の累算器の出力は、以下の関係に従う値をもたらす。
ｍ＝０、ｎ＞０について、Ｋ３＋ｎＫ４
直交ウォークサブ回路は、第４の加算器および第５の加算器を含む。直交ウォークサブ回路はまた、第４の累算器および第５の累算器を含む。直交ウォークサブ回路の各エレメントは、直行ウォーククロック信号（ｍクロック信号）を受け取る。
第４の累算器は、初期値ｕ（ａ0,n）を受け取るように結合される第１の入力を含む。第４の累算器はまた、第４の加算器の出力から和出力を受け取るように結合される第２の入力を含む。第４の加算器は、第５の累算器の出力から信号を受け取るように結合される入力を含む。第４の累算器の出力は、以下の関係をもたらす。
ｍ＞０について、
ｕ（ａm,n）＝ｕ（ａm-1,n）＋ｎ（Ｋ４）＋Ｋ３＋（ｍ−１）＊Ｋ５
第５の累算器は、垂直ウォークサブ回路の第３の累算器の出力から信号を受け取るように結合される第１の入力を含む。第５の累算器の第２の入力は、第５の加算器の出力から和出力を受け取るように結合され、第５の加算器は、データ入力バスを介して、ラッチされた初期値Ｋ５を受け取るように結合される入力を含む。第３の累算器の出力は、以下の関係に従った値をもたらす。
ｍ＞０について、Ｋ３＋ｎ（Ｋ４）＋（ｍ−１）Ｋ５
本発明の好適な実施形態では、第４の累算器の第１の入力は、垂直ウォークサブ回路の第１の累算器の出力から初期値ｕ（ａ0,n）を受け取るように結合される。テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）は、（ｘ，ｙ）表示座標空間における表示ピクセルの色を規定するために使用される。テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）により規定される色または視覚的属性は、テクスチャマップからアクセスされ、そして、以下の関係（４）により表され得る。
色＝Ｔ（ｕ（ａm,n）、ｖ（ａm,n））                            （４）
ここで、Ｔは、コンピュータメモリにおけるテクスチャマップである。
好適な実施形態の説明
本発明、すなわち、線形補間パラメータを用いる非同次２次遠近テクスチャマッピングシステムのための回路の以下の詳細な説明では、本発明の完全な理解を提供するために、多数の具体的な詳細が示される。しかし、本発明が、これらの具体的な詳細がなくても実施され得、または、別のエレメントまたはプロセスを用いることにより実施され得ることが、当業者に明らかである。他の例では、周知のプロセス、手順、構成要素、および回路は、本発明の局面を不必要に不明瞭にしないように、詳細には説明されていない。
表記および命名
以下の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットに対する動作の手順、論理ブロック、処理、およびその他の記号表現に関して示される。これらの説明および表現は、データ処理分野の当業者により、その成果の本質を他の技術の当業者に最も効果的に伝えるために使用される手段である。手順、論理ブロック、プロセス、などは、ここでは、概して、所望の結果をもたらすステップおよび命令の首尾一貫したシーケンスである考えられる。これらのステップは、物理量の物理的操作を必要とするステップである。通常、これらの物理的操作は、コンピュータシステムにおいて格納され、転送され、組み合わされ、比較され、そして、その他の方法で操作される電気または磁気信号の形態を取るが、必ずしもそうであるわけではない。ここで、本発明を参照して、これらの信号は、ビット、値、要素、記号、文字、項、数、などと呼ばれる。
但し、これらの用語はすべて、物理的操作および物理量を参照するものとして解釈されるべきであり、単なる簡便な呼称にすぎず、当該分野において通常使用される用語をさらに考慮して解釈されるべきである。以下の説明から明らかである以外に特に言及していないない限り、本発明の説明全体を通して、「処理」または「計算」または「計算」または「決定」または「表示」などの用語は、データを操作および変換するコンピュータシステムまたは同様の電子計算装置の動作および処理を指す。データは、コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表され、コンピュータシステムのメモリもしくはレジスタ内、または、その他の情報格納、送信もしくは表示装置内の物理量として同様に表される他のデータに変換される。
図３Ａを参照して、本発明の好適な実施形態により使用されるホストコンピュータシステム３１２のブロック図が示される。概して、本発明の好適な実施形態により使用されるホストコンピュータシステム３１２は、情報を通信するためのバス３００と、バス３００に結合され、情報および命令を処理するためのホストプロセッサ３０１と、バス３００に結合され、ホストプロセッサ３０１のための情報および命令を格納するための、コンピュータで読み取り可能な揮発性メモリユニット３０２（例えば、ランダムアクセスメモリユニット）と、バス３００に結合され、ホストコンピュータ３０１のための静的情報および命令を格納するための、コンピュータで読み取り可能な不揮発性メモリユニット３０３（例えば、リードオンリメモリユニット）と、バス３００に結合され、情報および命令を格納するための、磁気または光ディスクおよびディスクドライブ（例えば、ハードドライブまたはフロッピーディスケット）などの、コンピュータで読み取り可能なデータ記憶装置３０４と、バス３００に結合され、コンピュータユーザに情報を表示するための表示装置３０５とを含む。本発明のコンピュータシステム３１２とともに使用される表示装置３０５は、液晶装置、陰極線管、または、ユーザに認識可能なグラフィック画像および英数字を作り出すのに適した他の表示装置であり得る。
ホストシステム３１２は、バス３００を介してグラフィックスハードウェアユニット（「カード」）３０９にデータおよび制御信号を提供する。グラフィックスハードウェアカード３０９は、表示リスト内に見られる一連の表示命令を実行するディスプレイプロセッサ３１０を含む。ディスプレイプロセッサ３１０は、表示装置３０５上で画像（グラフィックス画像を含む）をレンダリングするために表示装置３０５をリフレッシュするフレームバッファにデータおよび制御信号を供給する。図３Ｂを参照して、格納されたテクスチャマップ３１４を含む、コンピュータで読み取り可能な揮発性メモリユニット３０２のブロック図が示される。
本発明は、２−Ｄ（ｘ，ｙ）表示座標空間で表される３−Ｄグラフィック物体の表面に、（ｕ，ｖ）で構成されたテクスチャマップのテクセルの色または視覚的属性を付与する非同次２次遠近テクスチャマッピングのための近似を提供する。（ｘ，ｙ）表示座標空間の表示ピクセルの明度は、テクスチャマップ３１４からサンプリングされたデータに基づいて決定され、そして、本発明の２次遠近テクスチャマッピングプロセスに従って処理される。テクスチャマップ３１４は、画像３１６を表すビットマップデータを含み得る。
図４を参照して、直交位置座標ｍおよび主（または垂直）位置座標ｎを有する（ｍ，ｎ）多角形座標空間４０２において、例示的なテクスチャ多角形４００が示される。テクスチャ多角形４００は、多角形座標ａm,nからなる。テクスチャ多角形４００は、図４に示されるように三角形であり得、または、他の任意の多角形であり得る。テクスチャ多角形４００は、ｊ＝０で示される上半分領域と、ｊ＝１で示される下半分領域とを含む（図４）。例示的なテクスチャ多角形４００の上半分領域は、Ｐ１行（または、行）を含み、テクスチャ多角形４００の下半分領域は、（Ｐ２−Ｐ１）行を含む。三角形４００の主要な傾斜４１０は、上の頂点からその下の頂点にわたり、図４では垂直方向として示されているが、主要な傾斜４１０はまた、斜め方向であってもよい。
本発明は、多角形座標ａm,nの各々について、テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）を決定する２次遠近テクスチャマッピングプロセスを提供する。テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）は、図３Ｂの場合であれば、テクスチャマップ３１４のデータにアクセスするために、インデックスとして使用される。テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）は、表示装置３０５上で多角形４００の対応する（ｘ，ｙ）表示座標空間においてレンダリングされる表示ピクセルの色を決定する。
テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）の値の決定は、図３Ｂのテクスチャマップ３１４の２次遠近テクスチャマップサンプリングを必要とする。本発明では、ｘに関するｕの変化率ｄｕ／ｄｘを、ｄｕorthoと呼ぶ。同様に、ｙに関するｕの変化率ｄｕ／ｄｙを、ｄｕmainと呼ぶ。ｘに関するｖの変化率ｄｖ／ｄｘを、ｄｖorthoと呼ぶ。ｙに関するｖの変化率ｄｖ／ｄｙを、ｄｖmainと呼ぶ。ｘに関するｕの変化率の変化率ｄ2ｕ／ｄｘ2を、ｄ2ｕorthoと呼ぶ。ｙに関するｕの変化率の変化率ｄ2ｕ／ｄｙ2を、ｄ2ｕmainと呼ぶ。ｘに関するｖの変化率の変化率ｄ2ｖ／ｄｘ2を、ｄ2ｖorthoと呼ぶ。ｙに関するｖの変化率の変化率ｄ2ｖ／ｄｙ2を、ｄ2ｖmainと呼ぶ。パラメータｄｕortho-ADDおよびｄｖortho-ADDは、オフセット値として規定され、これらは定数である。
多角形４００のピクセルａm,nは、ディスプレイスクリーン３０５上で、頂部行（または、行）から下向きにレンダリングされ、そして、各行については、最も左側のピクセル（例えば、ａ0,m）から右向きにずっと右側のピクセルまでレンダリングされる。以下に示されるように、各ピクセルは、ディスプレイスクリーン３０５上でのレンダリングのために、別個に処理される。図３Ｂの例示的な多角形４００を参照して、ピクセルは、ａ0,0；ａ0,1；ａ1,1；ａ0,2；ａ1,2；ａ2,2；ａ0,3；ａ1,3；ａ2,3；ａ3,3；...ａ0,7；ａ1,7；およびａ0,8という順序で処理される。
入力パラメータを用いる線形補間プロセス
図５は、線形補間パラメータを用いる非同次２次遠近テクスチャマッピングのための本発明の方法によるプロセス５００を実現するためのフロー図である。プロセス５００は、多角形レンダリングを含み、画像またはパターンを、表示装置３０５上で、（ｕ，ｖ）テクスチャマップ３１４から（ｘ，ｙ）表示座標空間の多角形にマッピングする。テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）は、図４の多角形座標ａm,nの各々について決定される。テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）は、表示装置３０５上で、（ｘ，ｙ）表示座標空間でレンダリングされた表示ピクセルの色または視覚的属性を決定するために使用される。
動作において、プロセス５００は、（ｘ，ｙ）表示座標空間におけるピクセルの明度を決定し、次いで、表示装置３０５上で、表示ピクセルを順次左から右に水平方向に、そして、ピクセルの直交ラインが完全にレンダリングされると、順次下方向にレンダリングする。しかし、本発明の方法はまた、ピクセルを右から左に水平方向にレンダリングするのにも十分に適していることが認識される。本発明のプロセス５００は、ホストコンピュータシステム３１２のコンピュータで読み取り可能なメモリユニットに格納される命令として実現され、図３Ａのホストプロセッサ３０１を介して、または、図３Ａの周辺グラフィックス装置３０９のディスプレイプロセッサ３１０を介して実行され得る。
図５のステップ５１０で、プロセス５００により、ｕ-main、ｖ-main、ｄｖortho、ｄｖmain、ｄｕortho、ｄｕmain、ｄ2ｕortho、ｄ2ｕmain、ｄ2ｖortho、ｄ2ｖmain、ｄｕortho-ADD、およびｄｖortho-ADDを含むパラメータの組についての値が受け取られる。初期テクスチャ座標ｕ（ａ0,0）およびｖ（ａ0,0）はそれぞれ、ｕ-mainおよびｖ-mainに等しい値に設定される。上記パラメータは、本発明の譲受人に譲渡された、attorney docket No. CRUS-096-030の、Method for Computing Parameters Used in a Non-Homogeneous Second Order Perspective Texture Mapping Processing Using Interpolationと題された、1996年12月30日出願の特許出願シリアル番号第08/774,787号に記載されるプロセスに基づいて計算される。ステップ５１０ではまた、ｍおよびｎの値が、初期値（例えば、ｍ＝０およびｎ＝０）に設定される。
ステップ５１５で、スパン値ｊが、初期値に設定される。本発明の好適な実施形態では、スパンｊが０に等しいときには、図４のテクスチャ多角形４００の上半分領域が指定され、スパンｊが１に等しいときには、テクスチャ多角形４００の下半分領域が指定される。
図５のステップ５２０で、ｊ＞１であるかどうかが判定される。ｊが０に等しい間は、図４のテクスチャ多角形４００の上半分領域が処理され、ｊが１に等しい間は、テクスチャ多角形４００の下半分領域が処理される。ｊ≦１であれば、プロセス５００は、ステップ５２５に進む。ｊ＞１であれば、プロセス５００は、終了する。
図５のステップ５２５で、現在のスパンｊで指定されるテクスチャ多角形４００の半分領域（図４）についての行の総数ｎが決定される。ｊ＝０であれば、テクスチャ多角形４００の上半分領域における、処理される直交ラインの本数は、Ｐ１に等しい。ステップ５２５で、値ｎmaxは、Ｐ１に等しい。ｊ＝１であれば、例示的なテクスチャ多角形４００の下半分領域における、処理される直交ラインの本数は、（Ｐ２−Ｐ１）に等しい。この場合、ステップ５２５で、この値ｎmaxは、（Ｐ２−Ｐ１）に設定される。
図５のステップ５３０で、テクスチャ多角形４００（図４）の現在の行ｎにおける多角形座標ａm,nの数を決定する。これが行幅である。例えば、ｎ＝０であれば、ステップ５３０で、ｎ＝０で規定される直交ラインに、１つの多角形座標ａ0,0があると判定される（図４）。ｎ＝１であれば、ステップ５３０で、ｎ＝０で規定される直交ラインに、２つの多角形座標ａ0,1およびａ1,1があると判定される（図４）。
ステップ５３５で、（ｍ，ｎ）多角形座標空間における現在の多角形位置が、（ｘ，ｙ）表示座標空間における対応する表示位置に変換される。一旦、表示座標空間位置（ｘ，ｙ）に関する多角形座標空間（ｍ，ｎ）の位置が分かれば、ステップ５３５は、周知の変換技術を用いて実現され得る。
図５のステップ５４０では、以下の関係２Ａおよび２Ｂに従って、現在の多角形座標ａm,nについて、テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）が決定される。
ｍ＞０について、
ｕ（ａm,n）＝ｕ（ａm-1,n）＋ｄｕortho(n)＋（ｍ−１）ｄ2ｕortho  （２Ａ）
ｍ＞０について、
ｖ（ａm,n）＝ｖ（ａm-1,n）＋ｄｖortho(n)＋（ｍ−１）ｄ2ｖortho  （２Ｂ）
ここで、ｄｕortho(n)およびｄｖortho(n)は、以下の関係３Ａおよび３Ｂに従って決定される。
すべてのｎについて、
ｄｕortho(n)＝ｎ（ｄｕorthoADD）＋ｄｕortho              （３Ａ）
すべてのｎについて、
ｄｖortho(n)＝ｎ（ｄｖorthoADD）＋ｄｖortho              （３Ｂ）
ここで、ｄｕorthoADD、ｄｖorthoADD、ｄｕortho、ｄｖorthoは入力パラメータであり、定数である。
図５のステップ５４０は、図４のテクスチャ多角形４００の各行ｎの最初の多角形座標ａ0,n以外の、現在のラインｎに沿ったすべての多角形座標位置について、テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）の値を決定するために使用される。新しいラインｎについてステップ５４０を最初に通過するとき、ｍ＝０である。図４のテクスチャ多角形４００の各行ｎの最初の多角形座標位置ａ0,nについてのテクスチャ座標ｕ（ａ0,n）およびｖ（ａ0,n）は、ステップ５６０に関して以下に説明されるステップに従って決定される。
ステップ５４５で、テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）は、（ｘ，y）表示座標空間における表示ピクセルの色を規定するために使用される。テクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）により規定される色またはテクスチャは、以下の関係（４）で表され得る。
色＝Ｔ［ｕ（ａm,n）、ｖ（ａm,n）］                          （４）
ここで、Ｔ［ｕ，ｖ］は、テクスチャマップ３１４の（ｕ，ｖ）テクスチャ座標での色またはテクスチャを指す。
図５のステップ５４５で、明度、色を得、表示装置３０５上で表示ピクセルをレンダリングする。ここで、ピクセルの色またはテクスチャは、現在の多角形座標ａm,nについてのテクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）により規定される。ステップ５４５により表示装置３０５上でレンダリングされた表示ピクセルは、上記ステップ５３５で規定された現在の多角形座標ａm,nに対応して、（ｘ，ｙ）表示座標位置に配置される。ステップ５４５において表示装置３０５上でレンダリングされた表示ピクセルの色は、上記関係（４）に従って決定される。
図５のステップ５５０で、テクスチャ多角形４００の現在の行ｎについて、処理されるべき多角形座標ａm,nがまだあるかどうかを判定する。これは、ｎをステップ５３０で選られた現在の行幅と比較することにより行われる。テクスチャ多角形４００の現在の行ｎについて、多角形座標ａm,nがまだあれば、プロセス５００はステップ５５５に進み、ｍの値を１だけ増加する。ステップ５５５から、プロセス５００は、プロセス５３５に戻り、新しい現在の多角形座標ａm,nに対応する（ｘ，ｙ）表示座標を設定する。ステップ５３５で、（ｍ，ｎ）多角形座標空間の多角形位置は、対応する（ｘ，ｙ）表示座標空間に変換される。このようにして、所定の行ｎのｍ＞０からのすべてのピクセルが、表示装置３０５上でレンダリングされる。ステップ５５０で、ｍの現在の値が、現在の行について規定されたｍの幅に等しければ、現在の行ｎには、ａm,nの座標はそれ以上ない。ステップ５５０で、テクスチャ多角形４００の現在の行ｎについて、処理されるべき多角形座標ａm,nがそれ以上なければ、プロセス５００は、ステップ５５８に進む。
ステップ５５８で、多角形の新しい行にアクセスするために、ｎの値が増加され、プロセス５００は、続けて、図４のテクスチャ多角形４００のテクスチャ多角形座標ａm,nの次の行ｎを処理する。ステップ５５８から、プロセス５００はステップ５６０に進む。
図５のステップ５６０で、現在の多角形座標ａ0,n（上記ステップ５１０で初期値を有するａ0,0は除く）についてのテクスチャ座標ｕ（ａ0,n）およびｖ（ａ0,n）の値を決定する。多角形座標ａ0,nの各々は、テクスチャ多角形４００（図４）の現在の行ｎにおける最初の多角形座標である。ｕ（ａ0,n）およびｖ（ａ0,n）についての値は、以下の関係（５Ａ）および（５Ｂ）を実現することにより、現在の多角形座標ａ0,nについて決定される。
ｍ＝０、ｎ＞０について、
ｕ（ａ0,n）＝ｕ（ａ0,n-1）＋ｄｕmain＋（ｎ−１）ｄ2ｕmain  （５Ａ）
ｍ＝０、ｎ＞０について、
ｖ（ａ0,n）＝ｖ（ａ0,n-1）＋ｄｖmain＋（ｎ−１）ｄ2ｖmain  （５Ｂ）
ここで、ｄｕmain、ｄ2ｕmain、ｄｖmain、およびｄ2ｖmainは、入力パラメータであり、一定である。
ステップ５６５で、図４のテクスチャ多角形４００の現在のスパンｊについて、処理されるべき多角形座標ａm,nの行ｎがまだあるかどうかを判定する。これは、現在のカウントｎをｎmaxの現在の値と比較することにより行われる。ｎ＞ｎmaxであれば、現在のスパンには、処理する行がそれ以上ない。行が残っていれば、プロセス５００はステップ５３０に戻り、そして、再びステップ５３０〜５６５を通って、テクスチャ多角形４００における、多角形座標ａm,nの次のラインｎを処理する。テクスチャ多角形４００の現在のスパンｊについて、処理されるべき多角形座標ａm,nの行ｎがそれ以上なければ、プロセス５００はステップ５７５に進み、スパンｊの値を１だけ増加する。ステップ５７５から、プロセス５００はステップ５２０に戻り、ｊ＞１であるかどうかを判定する。ｊ≦１であれば、プロセス５００は、ステップ５２５に進み、テクスチャ多角形４００の次のスパンについての多角形座標ａm,nを処理する。ｊ＞１であれば、プロセス５００は終了する。
ステップ５１０で初期値および定数を受け取り、且つ、ステップ５４０およびステップ５６０の上記関係を用いることにより、本発明は、従来技術のシステムで使用されるプロセッサ集約型の除算をなくす、効果的な多角形テクスチャ方法５００を提供する。費用のかかる除算の代わりに、本発明は、ステップ５１０で受け取られる補間パラメータの組に基づく、線形補間により行われる技術を使用する。
本発明のＴＶＤ回路
図６を参照して、本発明によるテクスチャ値決定回路（ＴＶＤ回路）６００が示される。本発明の１つの実現では、ＴＶＤ回路６００は、多角形レンダリングプロセスの間に、上記の関係（２Ａ）、（２Ｂ）、（３Ａ）、（３Ｂ）、（５Ａ）および（５Ｂ）に従って、現在の多角形座標ａm,nについてテクスチャ座標ｕ（ａ0,n）およびｖ（ａ0,n）を決定するために使用される。本実施形態では、上記のように、線形補間項を計算するために、汎用コンピュータシステムではなく、専用ハードウェア回路（例えば、ＴＶＤ回路６００）が使用される。
ＴＶＤ回路６００は、すべての垂直に進む多角形座標位置、例えば、三角形の主要な傾斜４１０（図４）に沿った座標位置、についてのテクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）を決定するための垂直ウォークサブ回路６０２を含む。垂直に進む多角形座標位置は、多角形の主要な傾斜に沿ったテクスチャ多角形の各行ｎの最初の多角形座標ａ0,nを含む。テクスチャ多角形の垂直に進む多角形座標位置ａ0,nについてのテクスチャ座標ｕ（ａ0,n）およびｖ（ａ0,n）は、以下に再度示される関係（５Ａ）および（５Ｂ）に従って決定される。
ｍ＝０、ｎ＞０について、
ｕ（ａ0,n）＝ｕ（ａ0,n-1）＋ｄｕmain＋（ｎ−１）ｄ2ｕmain  （５Ａ）
ｍ＝０、ｎ＞０について、
ｖ（ａ0,n）＝ｖ（ａ0,n-1）＋ｄｖmain＋（ｎ−１）ｄ2ｖmain  （５Ｂ）
ここで、ｄｕmain、ｄ2ｕmain、ｄｖmain、およびｄ2ｖmainは、入力パラメータであり、一定である。
ＴＶＤ回路６００はまた、（例えば、水平方向の走査線に沿った）直交して進む多角形座標位置についてのテクスチャ座標ｕ（ａm,n）およびｖ（ａm,n）を決定するための直交ウォークサブ回路６５２を含む。直交して進む多角形座標位置は、ｍ＞０である各多角形座標位置を含み、ｍ＝０である、垂直に進む多角形座標位置ｕ（ａ0,n）およびｙ（ａ0,n）を除く。直交ウォークサブ回路６５２は、以下に再度示される関係（２Ａ）、（２Ｂ）、（３Ａ）および（３Ｂ）を実現するために使用される。
ｍ＞０について、
ｕ（ａm,n）＝ｕ（ａm-1,n）＋ｄｕortho(n)＋（ｍ−１）ｄ2ｕortho  （２Ａ）
ｍ＞０について、
ｖ（ａm,n）＝ｖ（ａm-1,n）＋ｄｖortho(n)＋（ｍ−１）ｄ2ｕortho  （２Ｂ）
ここで、ｄ2ｕortho(n)およびｄ2ｖortho(n)は、入力パラメータであり、一定である。ｄｕortho(n)およびｄｖortho(n)の値は、以下に再度示される関係（３Ａ）および（３Ｂ）に従って決定される。
すべてのｎについて、
ｄｕortho(n)＝ｎ（ｄｕorthoADD）＋ｄｕortho              （３Ａ）
すべてのｎについて、
ｄｖortho(n)＝ｎ（ｄｖorthoADD）＋ｄｖortho              （３Ｂ）
ここで、ｄｕorthoADD、ｄｖorthoADD、ｄｕortho、ｄｖorthoはすべて入力パラメータであり、一定値である。
図６を参照して、垂直ウォークサブ回路６０２が、上記関係（５Ａ）および（５Ｂ）と同じ形を有する関係を実現するために使用され得ることが理解される。具体的には、垂直ウォークサブ回路６０２は、以下の関係（６Ａ）および（６Ｂ）の形の関係を実現するために使用され得る。
ｍ＝０、ｎ＞０について、
ｕ（ａ0,n）＝ｕ（ａ0,n-1）＋Ｋ１＋（ｎ−１）Ｋ２            （６Ａ）
ｍ＝０、ｎ＞０について、
ｖ（ａ0,n）＝ｖ（ａ0,n-1）＋Ｋ１＋（ｎ−１）Ｋ２            （６Ｂ）
ここで、Ｋ１およびＫ２は、一定値である。
図６を参照して、直交ウォークサブ回路６５２が、上記の関係（２Ａ）、（２Ｂ）、（３Ａ）および（３Ｂ）と同じ形を有する関係を実現するために使用され得ることもまた理解される。具体的には、直交ウォークサブ回路６５２は、以下の関係（７Ａ）、（７Ｂ）、（８Ａ）および（８Ｂ）の形の関係を実現するために使用され得る。
ｍ＞０について、
ｕ（ａm,n）＝ｕ（ａm-1,n）＋ｄｕortho(n)＋（ｍ−１）Ｋ５  （７Ａ）
ｍ＞０について、
ｖ（ａm,n）＝ｖ（ａm-1,n）＋ｄｖortho(n)＋（ｍ−１）Ｋ５  （７Ｂ）
ここで、Ｋ５は、一定値である。ｄｕortho(n)およびｄｖortho(n)の値は、以下の関係（８Ａ）および（８Ｂ）に従って決定される。
すべてのｎについて、
ｄｕortho(n)＝ｎ（Ｋ４）＋Ｋ３                              （８Ａ）
すべてのｎについて、
ｄｖortho(n)＝ｎ（Ｋ４）＋Ｋ３                              （８Ｂ）
ここで、Ｋ３およびＫ４は、一定値である。関係（８Ａ）および（８Ｂ）を、関係（７Ａ）および（７Ｂ）にそれぞれ代入すると、以下の関係（９Ａ）および（９Ｂ）が得られる。
ｍ＞０について、
ｕ（ａm,n）＝ｕ（ａm-1,n）＋ｎ（Ｋ４）＋Ｋ３＋（ｍ−１）Ｋ５  （９Ａ）
ｍ＞０について、
ｖ（ａm,n）＝ｖ（ａm-1,n）＋ｎ（Ｋ４）＋Ｋ３＋（ｍ−１）Ｋ５  （９Ｂ）
直交ウォークサブ回路６５２は、関係（９Ａ）および（９Ｂ）と同じ形を有する関係を実現するために使用され得る。
図６を参照して、ＴＶＤ回路６００の垂直ウォークサブ回路６０２は、第１の加算器６０３、第２の加算器６２３、および第３の加算器６３３を含む。垂直ウォークサブ回路６０２はまた、第１のラッチ６２０、第２のラッチ６４４、および第３のラッチ６４８を含む。垂直ウォークサブ回路６０２は、第１の累算器６０８、第２の累算器６２８、および第３の累算器６３８をさらに含む。垂直ウォークサブ回路６０２の各エレメントは、ｎクロックとも呼ばれる垂直傾斜ウォーククロック信号を受け取る。垂直傾斜ウォーククロック信号は、レンダリングされている多角形の走査線ごとに循環する。
図６を参照して、データ入力バス６１４は、ＴＶＤ回路６００の垂直ウォークサブ回路６０２に、以下に説明される６つの入力値の組を提供するために使用される。１つの実施形態では、データ入力バス６１４は、ｐ本のラインを含み、少なくとも６つの個々のバスのための容量を含む。別の実施形態では、これらの入力パラメータはまた、単一のより小さいバス６１４を介して時間多重化（time multiplexed）され得る。第１の累算器６０８の第１の入力６０９は、データ入力バス６１４を介して初期値ｕ-mainを受け取るように結合される。第１の累算器６０８の第２の入力６１０は、第１の加算器６０３の出力６０６から和出力を受け取るように結合される。第１の累算器６０８の第３の入力６１１は、バス６１３を介して、第１の累算器６０８の出力６１２に結合される。第１の加算器６０３の第１の入力６０５はまた、バス６１３を介して、第１の累算器６０８の出力６１２に結合される。第１の加算器６０３の第２の入力６０４は、第２の累算器６２８の出力６３２からバス６１６を介して信号を受け取るように結合される。
図６を参照して、第１のラッチ６２０の入力は、データ入力バス６１４を介して初期値ｄ2ｕmainを受け取るように結合される。第２の加算器６２３の第１の入力６２４は、第１のラッチ６２０の出力を介して、ラッチされた初期値ｄ2ｕmainを受け取るように結合される。第２の累算器６２８の第１の入力６２９は、データ入力バス６１４を介して初期値ｄｕmainを受け取るように結合される。第２の累算器６２８の第２の入力６３０は、第２の加算器６２３の出力６２６から和出力を受け取るように結合される。第２の累算器６２８の第３の入力６３１は、バス６１６を介して、第２の累算器６２８の出力６３２に結合される。第２の加算器６２３の第２の入力６２５はまた、バス６１６を介して、第２の累算器６２８の出力６３２に結合される。
図６を参照して、第２のラッチ６４４の入力は、データ入力バス６１４を介して初期値ｄｕortho-ADDを受け取るように結合される。第３の加算器６３３の第１の入力６３４は、第２のラッチ６４４の出力から、ラッチされた初期値ｄｕortho-ADDを受け取るように結合される。第３の累算器６３８の第１の入力６３９は、データ入力バス６１４を介して初期値ｄｕorthoを受け取るように結合される。第３の累算器６３８の第２の入力６４０は、第３の加算器６３３の出力６３６を介して和出力を受け取るように結合される。第３の累算器６３８の第３の出力６４１は、バス６３７を介して、第３の累算器６３８の出力６４２に結合される。第３の加算器６３３の第２の入力６３５はまた、バス６３７を介して、第３の累算器６３８の出力６４２に結合される。
直交ウォークサブ回路６５２は、第４の加算器６５３および第５の加算器６７３を含む。直交ウォークサブ回路６５２はまた、第４の累算器６５８および第５の累算器６７８を含む。直交ウォークサブ回路６５２の各エレメントは、ｍクロックとも呼ばれる直交ウォーククロック信号を受け取る。直交ウォーククロックは、レンダリングの間、多角形の走査線で、ピクセル位置ごとに更新される。
図６を参照して、第４の累算器６５８の第１の入力６５９は、バス６１３を介して、垂直ウォークサブ回路６０２の第１の累算器６０８の出力６１２から信号を受け取るように結合される。第４の累算器６５８の第２の入力６６０は、第４の加算器６５３の出力６５６を介して和出力を受け取るように結合される。第４の累算器６５８の第３の入力６６１は、バス６５７を介して、第４の累算器６５８の出力６６２に結合される。第４の加算器６５３の第１の入力６５５はまた、バス６５７を介して、第４の累算器６５８の出力６６２に結合される。第４の加算器６５３の第２の入力６５４は、バス６８７を介して、第５の累算器６７８の出力６８２から信号を受け取るように結合される。
第３のラッチ６４８の入力は、データ入力バス６１４を介して、初期値ｄ2ｕorthoを受け取るように結合される。第５の加算器６７３の第１の入力６７４は、第３のラッチ６４８の出力から、ラッチされた初期値ｄ2ｕorthoを受け取るように結合される。第５の累算器６７８の第１の入力６７９は、バス６３７を介して、第３の累算器６３８の出力６４２から信号を受け取るように結合される。第５の累算器６７８の第２の入力６８０は、第５の加算器６７３の出力６７６から和出力を受け取るように結合される。第５の累算器６７８の第３の入力６８１は、バス６８７を介して、第５の累算器６７８の出力６８２に結合される。第５の加算器６７３の第２の入力６７５はまた、バス６８７を介して、第５の累算器６７８の出力６８２に結合される。
図６を参照して、ＴＶＤ回路６００は、上記関係に従って「ｕ」および「ｖ」の両方のテクスチャ座標値を決定するために使用され得る。本発明の１つの実施形態では、「ｕ」および「ｖ」のテクスチャ座標値は、異なるときに、同じ回路により処理される。本発明の別の実施形態では、「ｕ」および「ｖ」のテクスチャ座標値は、別個の回路６００により処理され、これらの回路の各々は、図６に示される回路と類似している。「ｕ」のテクスチャ座標値を決定するために、ｕ-main、ｄｕortho、ｄ2ｕortho、ｄｕortho-ADD、ｄｕmain、およびｄ2ｕmainを含む６つのパラメータの組についての初期値が、ＴＶＤ回路６００により受け取られる。「ｖ」のテクスチャ座標値を決定するために、ｖ-main、ｄｖmain、ｄ2ｖmain、ｄｖortho、ｄ2ｖortho、およびｄｖortho-ADDを含む６つのパラメータの組についての初期値が、ＴＶＤ回路６００により受け取られる。初期テクスチャ座標ｕ（ａ0,0）およびｖ（ａ0,0）はそれぞれ、ｕ-mainおよびｖ-mainに等しい。
ＴＶＤ回路６００を用いて「ｕ」のテクスチャ座標値を決定するために、最初に、６つの値の組が、データ入力バス６１４を介してＴＶＤ回路６００にロードされる。初期値ｕmainは、データ入力バス６１４を介して、第１の累算器６０８の第１の入力６０９にロードされる。値ｄ2ｕmainは、データ入力バス６１４を介して第１のラッチ６２０にロードされる。値ｄｕmainは、データ入力バス６１４を介して、第２の累算器６２８の第１の入力６２９にロードされる。値ｄｕortho-ADDは、データ入力バス６１４を介して第２のラッチ６４４にロードされる。値ｄｕorthoは、データ入力バス６１４を介して、第３の累算器６３８の第１の入力６３９にロードされる。値ｄ2ｕorthoは、データ入力バス６１４を介して第３のラッチ６４８にロードされる。「ｖ」のテクスチャ座標値を決定するために、ｖ-main、ｄｖmain、ｄ2ｖmain、ｄｖortho、ｄ2ｖortho、およびｄｖortho-ADDを含む初期値の対応する組が、別の類似のＴＶＤ回路６００にロードされ得ることが理解される。
図７を参照して、本発明のＴＶＤ回路６００の動作についてのタイミング図７００が示される。信号７０２は、各走査線ごとに更新される垂直傾斜ウォーククロック信号（ｎクロック）を表す。信号７０４は、走査線内のピクセル位置ごとに更新される直交ウォーククロック信号（ｍクロック）を表す。信号７０６は、１つの実施形態において、すべての初期値をバス６１４からラッチ入力させる初期ロードｍａｉｎクロック信号を表す。信号７０６は、個々の多角形レンダリングプロセスの開始を表す。時間ポイント７０８は、初期ｍａｉｎ値（ｕ-main、ｄｕmain、およびｄ2ｕmain）が本発明のＴＶＤ回路６００にロードされる時点を表す。信号７１０は初期ロードｏｒｔｈｏクロック信号を表す。時間ポイント７１２は、初期ｏｒｔｈｏ値（ｄｖortho、ｄ2ｖortho、およびｄｖortho-ADD）が本発明のＴＶＤ回路６００にロードされる時点を表す。別の実施形態では、初期ｏｒｔｈｏ値がまた、クロック７０６と同期してロードされてもよく、クロック７１０がなくされることが認識される。
図６を参照して、ｍ＝０およびｎ＞０について、第１の累算器６０８の出力６１２（垂直ウォークサブ回路６０２の出力を提供する）により提供される信号の値は、以下に再度示される関係（５Ａ）により表される。
ｍ＝０、ｎ＞０について、
ｕ（ａ0,n）＝ｕ（ａ0,n-1）＋ｄｕmain＋（ｎ−１）ｄ2ｕmain  （５Ａ）
値ｎは、垂直傾斜ウォーククロック信号７０２に対応し、この信号は、ＴＶＤ回路６００に初期値がロードされるサイクルで始まるクロックサイクルを提供する。値ｍは、最初のｎクロックサイクルの後に始まるクロックサイクルを提供する直交ウォーククロック信号７０４に対応する。ｍ＝０およびｎ＞０について、第２の累算器６２８の出力６３２は、値（ｄｕmain＋（ｎ−１）ｄ2ｕmain）を提供する。第２の累算器６２８は、最初のｎクロックサイクルで、データ入力バス６１４を介して値ｄｕmainを受け取り、且つ、格納する。第２の累算器６２８に格納された値は、最初のｎクロックサイクル後の各ｎクロックサイクルで、値ｄ2ｕmainだけ増加される。各ｎクロックサイクルで、第２の累算器６２８に格納された累積和は、第１の加算器６０３の入力６０４に提供される。
図６を参照して、ｍ＝０およびｎ＞０について、第３の累算器６３８の出力６４２は、値（ｎ（ｄｕorthoADD）＋ｄｕortho）の出力を提供する。第３の累算器６３８は、最初のｎクロックサイクルで、初期値ｄｕorthoを受け取り、且つ、格納する。第３の累算器６３８に格納された値は、最初のｎクロックサイクル後の各ｎクロックサイクルで、ラッチされた所期値ｄｕorthoADDだけ増加される。第３の累算器６３８の出力６４２により提供される値（ｎ（ｄｕorthoADD）＋ｄｕortho）は、直交ウォークサブ回路６５２に提供され、直交して進む多角形座標についてのテクスチャ値を決定する。第３の加算器６３３、第３の累算器６３８、第２のラッチ６４４、および第３のラッチ６４８はすべて、直交して進む多角形座標についてのテクスチャ値を決定するための値を提供する。しかし、上記エレメントの各々は、垂直ウォークサブ回路内に含まれる。なぜなら、上記エレメントの各々は、これらのエレメントが値ｎに関する値を生成するとき、ｎクロック信号を受け取らなければならないからである。
ｍ＞０について、第４の累算器６５８の出力６６２（直交ウォークサブ回路６５２の出力を提供する）により提供される信号の値は、以下に再度示される関係（９Ａ）により表される。
ｍ＞０について、
ｕ（ａm,n）＝ｕ（ａm-1,n）＋ｎ（ｄｕorthoADD）＋ｄｕortho＋
（ｍ−１）ｄ2ｕortho                            （９Ａ）
ここで、値ｎおよびｍはそれぞれ、ｎクロックおよびｍクロックに対応する。最初のｍクロックサイクルで、第５の累算器６７８の第１の入力６７９は、第３の累算器６３８の出力６４２から値（ｎ（ｄｕorthoADD）＋ｄｕortho）を受け取る。その後の各ｍクロックサイクルで、第５の加算器６７３は、第５の累算器６７８の第２の入力６８０に和出力を提供する。第５の加算器６７３により提供された出力和は、累算器６７８に格納された値を、ラッチされた初期値ｄ2ｕorthoだけ増加する。各ｍクロックサイクルで、第５の累算器６７８に格納された累積和は、第４の加算器６５３の入力６５４に提供される。
図６を参照して、以下の表１は、垂直ウォークサブ回路６０２の累算器６０８、６２８および６３８の出力６１２、６３２および６４２により提供される値を示す。各ｎクロックサイクルで、垂直ウォークサブ回路６０２の累算器６０８、６２８および６３８は、それぞれの累算器に格納された値を出力する。
0003675488.tif 000002
図６を参照して、最初のｎクロックサイクルの終りで、ｎ＝０であり、初期値ｕ（ａ0,0）が、第１の累算器６０８に格納され、表１に示されるように、第１の累算器６０８の出力６１２で提供される。また、第１のラッチ６２０は初期値ｄ2ｕmainにラッチされ、第２のラッチ６４４は初期値ｄｕortho-ADDにラッチされ、そして、第３のラッチ６４８は初期値ｄ2ｕorthoにラッチされる。さらに、初期値ｄｕmainは第２の累算器６２８に格納され、表１に示されるように、第２の累算器６２８の出力６３２で提供される。さらに、初期値ｄｕorthoは第３の累算器６３８に格納され、表１に示されるように、第３の累算器６３８の出力６４２で提供される。
第２のｎクロックサイクルの終りで、ｎ＝１であり、第１の累算器６０８に格納された値ｕ（ａ0,0）は、第１の加算器６０３の出力６０６により提供される増加信号を介して、初期値ｄｕmainだけ増加される。累積値（ｕ（ａ0,0）＋ｄｕmain）は、表１に示されるように、第２の累算器６２８の出力６３２で提供される。また、第２のｎクロックサイクルの終りで、第２の累算器６２８に格納された累算値ｄｕmainは、まだ、ラッチされた値ｄ2ｕmainだけ増加されない。従って、表１に示されるように、第２の累算器６２８の出力６３２で、値ｄｕmainが提供される。さらに、第３の累算器６３８に格納された初期値ｄｕorthoは、第３の加算器６３３の出力６３６により提供される増加信号を介して、ラッチされた値ｄｕortho-ADDだけ増加される。表１に示されるように、ｎ＝１の場合、累積値（ｄｕortho＋ｄｕortho-ADD）は、第３の累算器６３８の出力６４２で提供される。表１はまた、ｎクロックサイクルを確実にするために、垂直ウォークサブ回路６０２の累算器６０８、６２８および６３８の出力６１２、６３２および６４２により提供される値を示す。
以下の表２は、ｎ＞０について、ｍクロックサイクルの関数として、直交ウォークサブ回路６５２の累算器６５８および６７８のそれぞれの出力６６２および６８２で提供される値を示す。
0003675488.tif 000003
図６を参照して、最初のｍクロックサイクルの間、ｍ＝０であり、以下に再度示される関係（６Ａ）に従う値ｕ（ａ0,n）が、（垂直ウォークサブ回路６０２の）第１の累算器６０８の出力６１２から、バス６１３を介して、第４の累算器６５８の第１の入力６５９に送られる。
ｍ＝０、ｎ＞０について、
ｕ（ａ0,n）＝ｕ（ａ0,n-1）＋ｄｕmain＋（ｎ−１）ｄ2ｕmain  （６Ａ）
表２に示されるように、最初のｍクロックサイクルの後、第４の累算器６５８に格納された初期累積値ｕ（ａ0,n）が、第４の累算器６５８の出力６６２で提供される。また、最初のｍクロックサイクルで、第５の累算器６７８の第１の入力６７９は、垂直ウォークサブ回路６０２の第３の累算器６３８の出力６４２から、値（（ｎ）ｄｕortho-ADD＋ｄｕortho）を受け取る。その後の各ｍクロックサイクルで、第５の加算器６７３は、第５の累算器６７８の第２の入力６８０に和出力を提供する。第５の加算器６７３により提供される増加信号は、累算器６７８に格納された値を、ラッチされた初期値ｄ2ｕorthoだけ増加する。上の表２はまた、ｍクロックサイクルを確実にするために、垂直ウォークサブ回路６０２の累算器６５８および６７８の出力６６２および６８２により提供される値を示す。
本発明の好適な実施形態、すなわち、線形補間パラメータを用いる非同次２次遠近テクスチャマッピングシステムのための回路は、以上のように説明される。以上、本発明を特定の実施形態において説明したが、本発明が、そのような実施形態に限定されるものとして解釈されるべきではなく、むしろ、添付の請求の範囲に従って解釈されるべきであることが認識される。
【図１Ａ】
0003675488.tif 000004
【図１Ｂ】
0003675488.tif 000005
【図２Ａ】
0003675488.tif 000006
【図２Ｂ】
0003675488.tif 000007
【図２Ｃ】
0003675488.tif 000008
【図３Ａ】
0003675488.tif 000009
【図３Ｂ】
0003675488.tif 000010
【図４】
0003675488.tif 000011
【図５】
0003675488.tif 000012
【図６】
0003675488.tif 000013
【図７】
0003675488.tif 000014