テクスチャマッピング装置
【目的】 テクスチャデータを種々の態様で割り付けることを可能にすると共に、メモリの有効利用を図る。
【構成】 フレームメモリ4には、3次元対象物の2次元表示データが表示画面に対応したフィル座標系で記憶される。テクスチャメモリ5には、3次元対象物の表面にマッピングするテクスチャデータがテクスチャ座標系で記憶される。テクスチャマッピング部1は、テクスチャマッピングすべき範囲をフィル座標系及びテクスチャ座標系の双方で規定したフィル座標及びテクスチャ座標を入力し、フィル座標により規定される範囲の内部の各画素のフィルアドレスを順次生成すると共に、生成されたフィルアドレスに対応するテクスチャ座標系におけるテクスチャアドレスを生成する。そして、この生成されたテクスチャアドレスで指定されるテクスチャメモリ5の記憶場所からテクスチャデータを読み出して、フィルアドレスで指定されるフレームメモリ4の記憶場所に格納する。
【構成】 フレームメモリ4には、3次元対象物の2次元表示データが表示画面に対応したフィル座標系で記憶される。テクスチャメモリ5には、3次元対象物の表面にマッピングするテクスチャデータがテクスチャ座標系で記憶される。テクスチャマッピング部1は、テクスチャマッピングすべき範囲をフィル座標系及びテクスチャ座標系の双方で規定したフィル座標及びテクスチャ座標を入力し、フィル座標により規定される範囲の内部の各画素のフィルアドレスを順次生成すると共に、生成されたフィルアドレスに対応するテクスチャ座標系におけるテクスチャアドレスを生成する。そして、この生成されたテクスチャアドレスで指定されるテクスチャメモリ5の記憶場所からテクスチャデータを読み出して、フィルアドレスで指定されるフレームメモリ4の記憶場所に格納する。
【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、3次元グラフィックスシステム等において、ディスプレイ装置に表示された3次元モデルの表面に任意のテクスチャを付与するためのテクスチャマッピング装置に関する。
【0002】
【従来の技術】コンピュータグラフィックスにおいて、3次元対象物の表示のリアリティを高める手法の一つとしてテクスチャマッピングが知られている。テクスチャマッピングは、図12に示すように、3次元表示対象物31の表面に表面粗さや特定のパターン32を貼りつけて、表示対象物31の表面を写実的に表示する手法である。これを実現するシステムでは、マッピングされるテクスチャデータを記憶するためのテクスチャメモリが備えられる。そして、2次元表示平面に対応するフィル座標で指定された塗り潰すべきポリゴンの頂点座標に基づいて、そのポリゴンの頂点座標によって規定される形状と同一形状のテクスチャをテクスチャメモリ上に規定し、その範囲内のテクスチャデータをテクスチャメモリから読み出して、指定されたポリゴン内に割り付けていく。
【0003】
【発明が解決しようとする課題】しかし、上述した従来のテクスチャマッピング装置では、指定したポリゴンの頂点座標によって規定される形状と同一形状のテクスチャをテクスチャメモリ上に規定するように構成しているので、例えば、図12(a)のような立方体にテクスチャマッピングする場合、(ア)面、(イ)面及び(ウ)面はそれぞれの面の法線方向から見れば正方形であるにも拘らず、(ア)面、(イ)面及び(ウ)面のそれぞれの面に対応したテクスチャを記憶する必要がある。言い換えると、図12(b)の(ア)面に着目した場合、この立方体をx軸を中心に90度矢印方向に回転させると、(ア)面は(イ)面のように現れ、同様に、この立方体をy軸を中心に90度回転させると、(ア)面は(ウ)面のように現れるようにしたいが、それぞれのテクスチャを各々記憶しなければならない。要するに、ある面に貼り付けられる同一のテクスチャであるにも拘らず、従来のテクスチャマッピング装置では、面の回転、移動、拡大等を考慮したテクスチャをも記憶しなければならなかったため、メモリの容量が増えるという問題があった。メモリ容量を増やしたところで自ずと限界があり、割り付け態様の自由度が小さい。メモリ容量を増やさない場合には、図12(c)のような不自然なテクスチャしかマッピングすることができない。
【0004】この発明は、このような問題点に鑑みてなされたもので、テクスチャデータを種々の態様で割り付けることができ、メモリの容量も少なくできるテクスチャマッピング装置を提供することを目的とする。
【0005】
【課題を解決するための手段】この発明に係るテクスチャマッピング装置は、3次元対象物の2次元表示データを記憶するフレーム記憶手段と、前記3次元対象物の表面にマッピングされるテクスチャデータを記憶するテクスチャ記憶手段と、テクスチャマッピングすべき範囲を規定したフィル座標及びテクスチャ座標を入力し、前記フィル座標により規定される範囲の内部の各画素のフィルアドレスを順次生成すると共に、生成されたフィルアドレスに対応するテクスチャアドレスを生成し、この生成されたテクスチャアドレスで指定される前記テクスチャ記憶手段の記憶場所からテクスチャデータを読み出して、前記フィルアドレスで指定される前記フレーム記憶手段の記憶場所に格納するマッピング手段とを有することを特徴とする。
【0006】
【作用】この発明によれば、テクスチャマッピングすべき範囲をフィル座標及びテクスチャ座標の双方で与えると、マッピング手段は、前記フィル座標により規定される範囲の内部の各画素のフィルアドレスを順次生成すると共に、生成されたフィルアドレスに対応するテクスチャアドレスを生成し、この生成されたテクスチャアドレスで指定される前記テクスチャ記憶手段の記憶場所からテクスチャデータを読み出して、前記フィルアドレスで指定される前記フレーム記憶手段の記憶場所に格納するので、フィル座標に対するテクスチャ座標の与え方によって、テクスチャデータを任意に拡大、縮小、回転及び変形させて割り付けることができる。このため、多様な態様のマッピングを行うことができると共に、テクスチャ記憶手段には、標準的なパターンのみを記憶しておけばよいので、メモリ容量も削減することができる。
【0007】通常、3次元の動画を表示する場合、一旦表示されたポリゴンは、拡大、縮小、回転等しながら、しばらくの間は画面上に表示され続けることが多い。その際、この発明のテクスチャマッピング装置を使用すれば、外部のCPUは、各ポリゴンに対応して、そのテクスチャ座標だけを記憶しておけば良く、そのため、動画の変化によるフィル座標の変化に対して記憶されているテクスチャ座標をそのまま使用することにより、動画の変化に応じてテクスチャマッピングの処理が可能となる。よって、自然なテクスチャマッピングを行うことができ、外部のCPUの負担を軽減することができる。
【0008】
【実施例】以下、図面を参照して、この発明の実施例を説明する。図1は、この発明の実施例に係るテクスチャマッピング装置の構成を示すブロック図である。このテクスチャマッピング装置は、テクスチャマッピング部1と、画像メモリ2とにより構成される。テクスチャマッピング部1は、例えば1チップで構成され、外部のCPU3に接続されている。画像メモリ2は、フレームメモリ4とテクスチャメモリ5とから構成され、フレームメモリ4には、テクスチャマッピングの対象となる3次元画像データが表示平面に対応したフィル座標系で格納され、テクスチャメモリ5には、マッピングすべきテクスチャデータがテクスチャ座標系で格納されている。
【0009】CPU3からは、フィル座標系におけるマッピングすべき三角形の3つの頂点座標(フィル座標)と、各々の頂点に対応するテクスチャ座標系における貼り付ける三角形の3つの頂点座標(テクスチャ座標)とが与えられる。これらの座標はユーザの意向に沿ってCPU3によって設定される。なお、初期座標のみをユーザが指定し、以降はユーザが回転、移動、拡大、縮小等の制御データを与えるだけでCPU3がフィル座標を計算するように構成しても良い。ここで重要なのは、フィル座標、テクスチャ座標それぞれの初期座標をCPU3がテクスチャマッピング部1に与えた後は、その物体の回転、移動、拡大、縮小に伴い、フィル座標は更新されるがテクスチャ座標については記憶した初期座標値をそのまま使えるということである。それにより、ユーザ又はCPU3の負担が著しく低減される。
【0010】これらの座標データは、CPUインタフェース11を介してフィルアドレス生成部12及びテクスチャアドレス生成部13に供給される。ここで使用される「アドレス」という用語は、必ずしもメモリアドレスを示すものではなく、x,y座標値と同意である。一般的なメモリでは2次元的に配置されたメモリアドレスセルをロウ/カラムのアドレスで指定するように構成されているため、メモリアドレスとx,y座標は1対1に対応する。よって、「メモリアドレス」というのも「x,y座標値」というのも大差はない。フィルアドレス生成部12は、与えられたフィル座標から、それによって規定される三角形内の全画素についてのフレームメモリ4上のフィルアドレスを水平走査方向に沿って順次生成する。テクスチャアドレス生成部13は、フィルアドレス生成部12で生成されたフィルアドレスに対応するテクスチャメモリ5上のテクスチャアドレスを生成する。テクスチャアドレス生成部13で生成されたテクスチャアドレスは、ゲート回路14に供給される。ゲート回路14は、与えられたテクスチャアドレスをテクスチャメモリ5の所定記憶領域内のアドレスに制限して指定されたパターンのテクスチャアドレスに変換する。ゲート回路14の出力は、セレクタ15の一方の入力端に供給されている。セレクタ15の他方の入力端には、フィルアドレス生成部12からのフィルアドレスが供給されている。セレクタ15は、制御部16の制御のもとで両アドレスを切換えて画像メモリ2に読出アドレス又は書込アドレスとして供給する。データ処理部17は、画像メモリ2から読み出されたデータに対して必要に応じて所定の処理を施す。これら各部の制御は、制御部16によって実行される。
【0011】次に、このように構成されたテクスチャマッピング装置の動作について説明する。図2は、この装置でテクスチャマッピング処理を実行する際の処理手順を示すフローチャートである。テクスチャマッピング部1のフィルアドレス生成部12は、CPU3からフィル座標A,B,Cとテクスチャ座標TA,TP,TCとが入力されたら、まず、フィル座標A,B,Cをy座標の小さい順にソートし、それに対応させてテクスチャ座標TA,TB,TCも並び替える。そして、y座標の小さい順から再度A,B,Cと名前を変更し、これに対応させてTA,TB,TCも名前を変更する(S1)。ソート後の各点の関係は、例えば図3(a),(b)に示すような関係になる。これらの各点の座標値は、次の各変数xa,ya,xb,yb,…に格納される(S2)。
【0012】
【数1】
xa=A点のx座標 ya=A点のy座標xb=B点のx座標 yb=B点のy座標xc=C点のx座標 yc=C点のy座標txa=TA点のx座標 tya=TA点のy座標txb=TB点のx座標 tyb=TB点のy座標txc=TC点のx座標 tyc=TC点のy座標
【0013】続いて、yの初期値としてyaを格納し(S3)、下記数2によりD点のx座標xd、E点のx座標xe、TD点のx,y座標txd,tyd、及びTE点のx,y座標txe,tyeをそれぞれ求める(S4)。
【0014】
【数2】xd=xa+(xb−xa)*(y−ya)/(yb−ya)
xe=xa+(xc−xa)*(y−ya)/(yc−ya)
txd=txa+(txb−txa)*(y−ya)/(yb−ya)
txe=txa+(txc−txa)*(y−ya)/(yc−ya)
tyd=tya+(tyb−tya)*(y−ya)/(yb−ya)
tye=tya+(tyc−tya)*(y−ya)/(yc−ya)
【0015】次に、xの初期値としてxdを格納し(S5)、テクスチャアドレス生成部13にx,y,xd,xe,txd,txe,tyd,tyeを転送する。テクスチャアドレス生成部13は、下記数3により、TP点のx,y座標tx,tyを算出する(S6)。
【0016】
【数3】tx=txd+(txe−txd)*(x−xd)/(xe−xd)
ty=tyd+(tye−tyd)*(x−xd)/(xe−xd)
【0017】そして、セレクタ15によってテクスチャアドレス生成部13の出力を選択することにより、テクスチャメモリ5のTP点のアドレス(tx,ty)のテクスチャデータを読み出し(S7)、続いてセレクタ15によってフィルアドレス生成部13の出力を選択することにより、そのデータをフレームメモリ4のP点のアドレス(x,y)に格納する(S8)。このとき、格納データに対してデータ処理部17でシェーディング処理等を施したのちにデータを格納するようにしてもよい。
【0018】以上の処理を、xがxeに達するまでxを1ずつインクリメントしながら繰り返し実行し(S9,S10)、xがxeに達したら、yを+1して(S12)、次のD点及びE点を求め、同様の操作でP点及びTP点のx,y座標を算出する。この操作は、yがycに達するまで続けられる(S11)。なお、yがybに達したら、ステップS4のxd,txd,tydの算出式については数2の代わりに下記数4を使用する。
【0019】
【数4】xd=xb+(xc−xb)*(y−yb)/(yc−yb)
txd=txb+(txc−txb)*(y−yb)/(yc−yb)
tyd=tyb+(tyc−tyb)*(y−yb)/(yc−yb)
【0020】この操作によって、テクスチャメモリ5に格納されたテクスチャデータがフィル座標で指定された領域にマッピングされることになる。
【0021】いま、図4に示すようなテクスチャデータがテクスチャメモリ5に格納されているとし、フィル座標として図3(a)に示すようなやや扁平気味の三角形の頂点A,B,Cの座標が指定され、テクスチャ座標として図4のTA,TB,TCが指定されたとすると、フィル座標で指定された三角形にマッピングされるテクスチャは、図5(a)のように、やや扁平気味に変形した画像となる。同様に、テクスチャ座標として先の例に対してやや回転した図4のTA′,TB′,TC′が指定されたとすると、テクスチャは、図5(b)のように、やや回転した画像となる。また、テクスチャ座標として先の例よりも小さな図4のTA″,TB″,TC″が指定されたとすると、テクスチャは図5(c)に示すように、拡大された画像となる。このように、この装置によれば、テクスチャ座標をフィル座標に対して任意の値とすることにより、マッピングされるテクスチャを自由に変形、回転、拡大、縮小することができる。
【0022】また、この装置によれば、例えば、図6(b)に示すような立方体の各面を構成する6つの正方形に対し、同図(a)のようなテクスチャデータを対応させ、図7(a),(b),(c)のように回転させた場合、立方体の各頂点の座標は各々CPU3で計算されて入力されるが、テクスチャ座標は、立方体がどのように回転しようと、最初に設定した値を入力すればよい。このため、CPU3の計算の負荷を軽減することができる。
【0023】ところで、上記の例のようにテクスチャデータが繰り返しのパターンからなる場合、テクスチャメモリ5には、フィル座標系全体に対応する分のテクスチャデータを格納するのは、経済的でない。そこで、この装置では、図8に示すように、テクスチャデータを一部のみ記憶すると共に、種々のテクスチャデータを記憶することにより、テクスチャメモリ5の有効利用を図るようにしている。図示の例では、各テクスチャアドレス範囲とテクスチャデータとの関係は、下記表1の通りとなる。
【0024】
【表1】
【0025】そこで、テクスチャアドレス生成部13で生成されたテクスチャアドレスtx,tyの各上位4ビットを、ゲート回路14によってテクスチャデータに対応した固定値に置き換える。例えば“F”の繰り返しパターンであれば、tx,tyの上位4ビットは、それぞれ0,0になる。これにより、図8に示すように、テクスチャアドレスとして、“F”のテクスチャデータの記憶範囲を超えるアドレスTA(1−−−,0−−−),TB(0−−−,1−−−),TC(1−−−,1−−−)が与えられても、各上位4ビットが“0”に置き換えられるので、各アドレスがTA′(0−−−,0−−−),TB′(0−−−,0−−−),TC′(0−−−,0−−−)に置き換えられ、結果として図9(a)に示すような、“F”の繰り返しパターンを全体的に割り付けることができる。同様に、アドレスの各上位4ビットをそれぞれ“1,0”に設定すれば、図8に示したTA,TB,TCによって割り付けられるパターンは、図9(b)のような、“T”の繰り返しパターンとなる。
【0026】このようなゲート回路14は、例えば図10R>0のように構成することができる。マスク回路21は、テクスチャアドレス生成部13からの出力の上位ビットを“0”に置き換えることによりマスクする。いま、テクスチャ座標が11ビットの場合、各x,y座標についてテクスチャデータのパターンサイズとマスク回路24の出力との関係は、下記表2の通りとなる。なお、ここで上欄の数字はマスク回路21の出力ビット番号で、“0”の部分がマスクされるビット、bxがアドレスのxビット目をそのまま通過させることを意味している。マスク回路21の出力のビット“0”の部分をORゲート22によってテクスチャパターン番号に置き換えれば、サイズ8×8のテクスチャデータを28 =256通り選択することが可能になる。
【0027】
【表2】
【0028】また、例えば図10のORゲート22の代わりに、図11のように、加算器23を使用することにより、指定の値だけテクスチャアドレスをオフセットさせることができるので、複数あるテクスチャデータの領域の大きさが異なっても所望のテクスチャマッピングが可能である。
【0029】このように、繰り返し図形をテクスチャデータとする場合において、極端な場合繰り返しの最小単位のみをテクスチャデータとして記憶しておけば、任意の座標でテクスチャ座標を指定してテクスチャマッピングを行うことができ、メモリの容量を節約することができると共に、テクスチャ座標の指定が簡単になる。
【0030】なお、以上の実施例では、マッピングする範囲を三角形として説明したが、四角形等、他の多角形に対してマッピングを施しても良いことはいうまでもない。
【0031】
【発明の効果】以上述べたように、この発明によれば、フィル座標に対するテクスチャ座標の与え方によって、テクスチャデータを任意に拡大、縮小、回転及び変形させて割り付けることができるので、多様な態様のマッピングを行うことができると共に、テクスチャ記憶手段には、標準的なパターンのみを記憶しておけばよいので、メモリ容量も削減することができる。
【図面の簡単な説明】
【図1】 この発明の実施例に係るテクスチャマッピング装置のブロック図ある。
【図2】 同装置によるマッピング処理の手順を示すフローチャートである。
【図3】 同装置に与えられるフィル座標とテクスチャ座標の一例を示す図である。
【図4】 同装置におけるテクスチャメモリとテクスチャ座標との関係を示す図である。
【図5】 図4の各テクスチャ座標に対応するマッピング結果を示す図ある。
【図6】 立方体とこれにマッピングされるテクスチャパターンの一例を示す図である。
【図7】 同立方体が回転した場合のパターンの変化を示す図である。
【図8】 テクスチャメモリの有効利用方法の一例を示す図である。
【図9】 同メモリを使用したマッピング例を示す図である。
【図10】 ゲート回路の具体例を示す図である。
【図11】 ゲート回路の他の例を示す図である。
【図12】 テクスチャマッピングを説明するための図である。
【符号の説明】
1…テクスチャマッピング部、2…画像メモリ、3…CPU、4…フレームメモリ、5…テクスチャメモリ、11…CPUインタフェース、12…フィルアドレス生成部、13…テクスチャアドレス生成部、14…ゲート回路、15…セレクタ、16…制御部、17…データ処理部。
【0001】
【産業上の利用分野】この発明は、3次元グラフィックスシステム等において、ディスプレイ装置に表示された3次元モデルの表面に任意のテクスチャを付与するためのテクスチャマッピング装置に関する。
【0002】
【従来の技術】コンピュータグラフィックスにおいて、3次元対象物の表示のリアリティを高める手法の一つとしてテクスチャマッピングが知られている。テクスチャマッピングは、図12に示すように、3次元表示対象物31の表面に表面粗さや特定のパターン32を貼りつけて、表示対象物31の表面を写実的に表示する手法である。これを実現するシステムでは、マッピングされるテクスチャデータを記憶するためのテクスチャメモリが備えられる。そして、2次元表示平面に対応するフィル座標で指定された塗り潰すべきポリゴンの頂点座標に基づいて、そのポリゴンの頂点座標によって規定される形状と同一形状のテクスチャをテクスチャメモリ上に規定し、その範囲内のテクスチャデータをテクスチャメモリから読み出して、指定されたポリゴン内に割り付けていく。
【0003】
【発明が解決しようとする課題】しかし、上述した従来のテクスチャマッピング装置では、指定したポリゴンの頂点座標によって規定される形状と同一形状のテクスチャをテクスチャメモリ上に規定するように構成しているので、例えば、図12(a)のような立方体にテクスチャマッピングする場合、(ア)面、(イ)面及び(ウ)面はそれぞれの面の法線方向から見れば正方形であるにも拘らず、(ア)面、(イ)面及び(ウ)面のそれぞれの面に対応したテクスチャを記憶する必要がある。言い換えると、図12(b)の(ア)面に着目した場合、この立方体をx軸を中心に90度矢印方向に回転させると、(ア)面は(イ)面のように現れ、同様に、この立方体をy軸を中心に90度回転させると、(ア)面は(ウ)面のように現れるようにしたいが、それぞれのテクスチャを各々記憶しなければならない。要するに、ある面に貼り付けられる同一のテクスチャであるにも拘らず、従来のテクスチャマッピング装置では、面の回転、移動、拡大等を考慮したテクスチャをも記憶しなければならなかったため、メモリの容量が増えるという問題があった。メモリ容量を増やしたところで自ずと限界があり、割り付け態様の自由度が小さい。メモリ容量を増やさない場合には、図12(c)のような不自然なテクスチャしかマッピングすることができない。
【0004】この発明は、このような問題点に鑑みてなされたもので、テクスチャデータを種々の態様で割り付けることができ、メモリの容量も少なくできるテクスチャマッピング装置を提供することを目的とする。
【0005】
【課題を解決するための手段】この発明に係るテクスチャマッピング装置は、3次元対象物の2次元表示データを記憶するフレーム記憶手段と、前記3次元対象物の表面にマッピングされるテクスチャデータを記憶するテクスチャ記憶手段と、テクスチャマッピングすべき範囲を規定したフィル座標及びテクスチャ座標を入力し、前記フィル座標により規定される範囲の内部の各画素のフィルアドレスを順次生成すると共に、生成されたフィルアドレスに対応するテクスチャアドレスを生成し、この生成されたテクスチャアドレスで指定される前記テクスチャ記憶手段の記憶場所からテクスチャデータを読み出して、前記フィルアドレスで指定される前記フレーム記憶手段の記憶場所に格納するマッピング手段とを有することを特徴とする。
【0006】
【作用】この発明によれば、テクスチャマッピングすべき範囲をフィル座標及びテクスチャ座標の双方で与えると、マッピング手段は、前記フィル座標により規定される範囲の内部の各画素のフィルアドレスを順次生成すると共に、生成されたフィルアドレスに対応するテクスチャアドレスを生成し、この生成されたテクスチャアドレスで指定される前記テクスチャ記憶手段の記憶場所からテクスチャデータを読み出して、前記フィルアドレスで指定される前記フレーム記憶手段の記憶場所に格納するので、フィル座標に対するテクスチャ座標の与え方によって、テクスチャデータを任意に拡大、縮小、回転及び変形させて割り付けることができる。このため、多様な態様のマッピングを行うことができると共に、テクスチャ記憶手段には、標準的なパターンのみを記憶しておけばよいので、メモリ容量も削減することができる。
【0007】通常、3次元の動画を表示する場合、一旦表示されたポリゴンは、拡大、縮小、回転等しながら、しばらくの間は画面上に表示され続けることが多い。その際、この発明のテクスチャマッピング装置を使用すれば、外部のCPUは、各ポリゴンに対応して、そのテクスチャ座標だけを記憶しておけば良く、そのため、動画の変化によるフィル座標の変化に対して記憶されているテクスチャ座標をそのまま使用することにより、動画の変化に応じてテクスチャマッピングの処理が可能となる。よって、自然なテクスチャマッピングを行うことができ、外部のCPUの負担を軽減することができる。
【0008】
【実施例】以下、図面を参照して、この発明の実施例を説明する。図1は、この発明の実施例に係るテクスチャマッピング装置の構成を示すブロック図である。このテクスチャマッピング装置は、テクスチャマッピング部1と、画像メモリ2とにより構成される。テクスチャマッピング部1は、例えば1チップで構成され、外部のCPU3に接続されている。画像メモリ2は、フレームメモリ4とテクスチャメモリ5とから構成され、フレームメモリ4には、テクスチャマッピングの対象となる3次元画像データが表示平面に対応したフィル座標系で格納され、テクスチャメモリ5には、マッピングすべきテクスチャデータがテクスチャ座標系で格納されている。
【0009】CPU3からは、フィル座標系におけるマッピングすべき三角形の3つの頂点座標(フィル座標)と、各々の頂点に対応するテクスチャ座標系における貼り付ける三角形の3つの頂点座標(テクスチャ座標)とが与えられる。これらの座標はユーザの意向に沿ってCPU3によって設定される。なお、初期座標のみをユーザが指定し、以降はユーザが回転、移動、拡大、縮小等の制御データを与えるだけでCPU3がフィル座標を計算するように構成しても良い。ここで重要なのは、フィル座標、テクスチャ座標それぞれの初期座標をCPU3がテクスチャマッピング部1に与えた後は、その物体の回転、移動、拡大、縮小に伴い、フィル座標は更新されるがテクスチャ座標については記憶した初期座標値をそのまま使えるということである。それにより、ユーザ又はCPU3の負担が著しく低減される。
【0010】これらの座標データは、CPUインタフェース11を介してフィルアドレス生成部12及びテクスチャアドレス生成部13に供給される。ここで使用される「アドレス」という用語は、必ずしもメモリアドレスを示すものではなく、x,y座標値と同意である。一般的なメモリでは2次元的に配置されたメモリアドレスセルをロウ/カラムのアドレスで指定するように構成されているため、メモリアドレスとx,y座標は1対1に対応する。よって、「メモリアドレス」というのも「x,y座標値」というのも大差はない。フィルアドレス生成部12は、与えられたフィル座標から、それによって規定される三角形内の全画素についてのフレームメモリ4上のフィルアドレスを水平走査方向に沿って順次生成する。テクスチャアドレス生成部13は、フィルアドレス生成部12で生成されたフィルアドレスに対応するテクスチャメモリ5上のテクスチャアドレスを生成する。テクスチャアドレス生成部13で生成されたテクスチャアドレスは、ゲート回路14に供給される。ゲート回路14は、与えられたテクスチャアドレスをテクスチャメモリ5の所定記憶領域内のアドレスに制限して指定されたパターンのテクスチャアドレスに変換する。ゲート回路14の出力は、セレクタ15の一方の入力端に供給されている。セレクタ15の他方の入力端には、フィルアドレス生成部12からのフィルアドレスが供給されている。セレクタ15は、制御部16の制御のもとで両アドレスを切換えて画像メモリ2に読出アドレス又は書込アドレスとして供給する。データ処理部17は、画像メモリ2から読み出されたデータに対して必要に応じて所定の処理を施す。これら各部の制御は、制御部16によって実行される。
【0011】次に、このように構成されたテクスチャマッピング装置の動作について説明する。図2は、この装置でテクスチャマッピング処理を実行する際の処理手順を示すフローチャートである。テクスチャマッピング部1のフィルアドレス生成部12は、CPU3からフィル座標A,B,Cとテクスチャ座標TA,TP,TCとが入力されたら、まず、フィル座標A,B,Cをy座標の小さい順にソートし、それに対応させてテクスチャ座標TA,TB,TCも並び替える。そして、y座標の小さい順から再度A,B,Cと名前を変更し、これに対応させてTA,TB,TCも名前を変更する(S1)。ソート後の各点の関係は、例えば図3(a),(b)に示すような関係になる。これらの各点の座標値は、次の各変数xa,ya,xb,yb,…に格納される(S2)。
【0012】
【数1】
xa=A点のx座標 ya=A点のy座標xb=B点のx座標 yb=B点のy座標xc=C点のx座標 yc=C点のy座標txa=TA点のx座標 tya=TA点のy座標txb=TB点のx座標 tyb=TB点のy座標txc=TC点のx座標 tyc=TC点のy座標
【0013】続いて、yの初期値としてyaを格納し(S3)、下記数2によりD点のx座標xd、E点のx座標xe、TD点のx,y座標txd,tyd、及びTE点のx,y座標txe,tyeをそれぞれ求める(S4)。
【0014】
【数2】xd=xa+(xb−xa)*(y−ya)/(yb−ya)
xe=xa+(xc−xa)*(y−ya)/(yc−ya)
txd=txa+(txb−txa)*(y−ya)/(yb−ya)
txe=txa+(txc−txa)*(y−ya)/(yc−ya)
tyd=tya+(tyb−tya)*(y−ya)/(yb−ya)
tye=tya+(tyc−tya)*(y−ya)/(yc−ya)
【0015】次に、xの初期値としてxdを格納し(S5)、テクスチャアドレス生成部13にx,y,xd,xe,txd,txe,tyd,tyeを転送する。テクスチャアドレス生成部13は、下記数3により、TP点のx,y座標tx,tyを算出する(S6)。
【0016】
【数3】tx=txd+(txe−txd)*(x−xd)/(xe−xd)
ty=tyd+(tye−tyd)*(x−xd)/(xe−xd)
【0017】そして、セレクタ15によってテクスチャアドレス生成部13の出力を選択することにより、テクスチャメモリ5のTP点のアドレス(tx,ty)のテクスチャデータを読み出し(S7)、続いてセレクタ15によってフィルアドレス生成部13の出力を選択することにより、そのデータをフレームメモリ4のP点のアドレス(x,y)に格納する(S8)。このとき、格納データに対してデータ処理部17でシェーディング処理等を施したのちにデータを格納するようにしてもよい。
【0018】以上の処理を、xがxeに達するまでxを1ずつインクリメントしながら繰り返し実行し(S9,S10)、xがxeに達したら、yを+1して(S12)、次のD点及びE点を求め、同様の操作でP点及びTP点のx,y座標を算出する。この操作は、yがycに達するまで続けられる(S11)。なお、yがybに達したら、ステップS4のxd,txd,tydの算出式については数2の代わりに下記数4を使用する。
【0019】
【数4】xd=xb+(xc−xb)*(y−yb)/(yc−yb)
txd=txb+(txc−txb)*(y−yb)/(yc−yb)
tyd=tyb+(tyc−tyb)*(y−yb)/(yc−yb)
【0020】この操作によって、テクスチャメモリ5に格納されたテクスチャデータがフィル座標で指定された領域にマッピングされることになる。
【0021】いま、図4に示すようなテクスチャデータがテクスチャメモリ5に格納されているとし、フィル座標として図3(a)に示すようなやや扁平気味の三角形の頂点A,B,Cの座標が指定され、テクスチャ座標として図4のTA,TB,TCが指定されたとすると、フィル座標で指定された三角形にマッピングされるテクスチャは、図5(a)のように、やや扁平気味に変形した画像となる。同様に、テクスチャ座標として先の例に対してやや回転した図4のTA′,TB′,TC′が指定されたとすると、テクスチャは、図5(b)のように、やや回転した画像となる。また、テクスチャ座標として先の例よりも小さな図4のTA″,TB″,TC″が指定されたとすると、テクスチャは図5(c)に示すように、拡大された画像となる。このように、この装置によれば、テクスチャ座標をフィル座標に対して任意の値とすることにより、マッピングされるテクスチャを自由に変形、回転、拡大、縮小することができる。
【0022】また、この装置によれば、例えば、図6(b)に示すような立方体の各面を構成する6つの正方形に対し、同図(a)のようなテクスチャデータを対応させ、図7(a),(b),(c)のように回転させた場合、立方体の各頂点の座標は各々CPU3で計算されて入力されるが、テクスチャ座標は、立方体がどのように回転しようと、最初に設定した値を入力すればよい。このため、CPU3の計算の負荷を軽減することができる。
【0023】ところで、上記の例のようにテクスチャデータが繰り返しのパターンからなる場合、テクスチャメモリ5には、フィル座標系全体に対応する分のテクスチャデータを格納するのは、経済的でない。そこで、この装置では、図8に示すように、テクスチャデータを一部のみ記憶すると共に、種々のテクスチャデータを記憶することにより、テクスチャメモリ5の有効利用を図るようにしている。図示の例では、各テクスチャアドレス範囲とテクスチャデータとの関係は、下記表1の通りとなる。
【0024】
【表1】
【0025】そこで、テクスチャアドレス生成部13で生成されたテクスチャアドレスtx,tyの各上位4ビットを、ゲート回路14によってテクスチャデータに対応した固定値に置き換える。例えば“F”の繰り返しパターンであれば、tx,tyの上位4ビットは、それぞれ0,0になる。これにより、図8に示すように、テクスチャアドレスとして、“F”のテクスチャデータの記憶範囲を超えるアドレスTA(1−−−,0−−−),TB(0−−−,1−−−),TC(1−−−,1−−−)が与えられても、各上位4ビットが“0”に置き換えられるので、各アドレスがTA′(0−−−,0−−−),TB′(0−−−,0−−−),TC′(0−−−,0−−−)に置き換えられ、結果として図9(a)に示すような、“F”の繰り返しパターンを全体的に割り付けることができる。同様に、アドレスの各上位4ビットをそれぞれ“1,0”に設定すれば、図8に示したTA,TB,TCによって割り付けられるパターンは、図9(b)のような、“T”の繰り返しパターンとなる。
【0026】このようなゲート回路14は、例えば図10R>0のように構成することができる。マスク回路21は、テクスチャアドレス生成部13からの出力の上位ビットを“0”に置き換えることによりマスクする。いま、テクスチャ座標が11ビットの場合、各x,y座標についてテクスチャデータのパターンサイズとマスク回路24の出力との関係は、下記表2の通りとなる。なお、ここで上欄の数字はマスク回路21の出力ビット番号で、“0”の部分がマスクされるビット、bxがアドレスのxビット目をそのまま通過させることを意味している。マスク回路21の出力のビット“0”の部分をORゲート22によってテクスチャパターン番号に置き換えれば、サイズ8×8のテクスチャデータを28 =256通り選択することが可能になる。
【0027】
【表2】
【0028】また、例えば図10のORゲート22の代わりに、図11のように、加算器23を使用することにより、指定の値だけテクスチャアドレスをオフセットさせることができるので、複数あるテクスチャデータの領域の大きさが異なっても所望のテクスチャマッピングが可能である。
【0029】このように、繰り返し図形をテクスチャデータとする場合において、極端な場合繰り返しの最小単位のみをテクスチャデータとして記憶しておけば、任意の座標でテクスチャ座標を指定してテクスチャマッピングを行うことができ、メモリの容量を節約することができると共に、テクスチャ座標の指定が簡単になる。
【0030】なお、以上の実施例では、マッピングする範囲を三角形として説明したが、四角形等、他の多角形に対してマッピングを施しても良いことはいうまでもない。
【0031】
【発明の効果】以上述べたように、この発明によれば、フィル座標に対するテクスチャ座標の与え方によって、テクスチャデータを任意に拡大、縮小、回転及び変形させて割り付けることができるので、多様な態様のマッピングを行うことができると共に、テクスチャ記憶手段には、標準的なパターンのみを記憶しておけばよいので、メモリ容量も削減することができる。
【図面の簡単な説明】
【図1】 この発明の実施例に係るテクスチャマッピング装置のブロック図ある。
【図2】 同装置によるマッピング処理の手順を示すフローチャートである。
【図3】 同装置に与えられるフィル座標とテクスチャ座標の一例を示す図である。
【図4】 同装置におけるテクスチャメモリとテクスチャ座標との関係を示す図である。
【図5】 図4の各テクスチャ座標に対応するマッピング結果を示す図ある。
【図6】 立方体とこれにマッピングされるテクスチャパターンの一例を示す図である。
【図7】 同立方体が回転した場合のパターンの変化を示す図である。
【図8】 テクスチャメモリの有効利用方法の一例を示す図である。
【図9】 同メモリを使用したマッピング例を示す図である。
【図10】 ゲート回路の具体例を示す図である。
【図11】 ゲート回路の他の例を示す図である。
【図12】 テクスチャマッピングを説明するための図である。
【符号の説明】
1…テクスチャマッピング部、2…画像メモリ、3…CPU、4…フレームメモリ、5…テクスチャメモリ、11…CPUインタフェース、12…フィルアドレス生成部、13…テクスチャアドレス生成部、14…ゲート回路、15…セレクタ、16…制御部、17…データ処理部。
【特許請求の範囲】
【請求項1】 3次元対象物の2次元表示データを表示画面を記憶するフレーム記憶手段と、前記3次元対象物の表面にマッピングされるテクスチャデータを記憶するテクスチャ記憶手段と、テクスチャマッピングすべき範囲を規定したフィル座標及びテクスチャ座標を入力し、前記フィル座標により規定される範囲の内部の各画素のフィルアドレスを順次生成すると共に、生成されたフィルアドレスに対応するテクスチャアドレスを生成し、この生成されたテクスチャアドレスで指定される前記テクスチャ記憶手段の記憶場所からテクスチャデータを読み出して、前記フィルアドレスで指定される前記フレーム記憶手段の記憶場所に格納するマッピング手段とを有することを特徴とするテクスチャマッピング装置。
【請求項1】 3次元対象物の2次元表示データを表示画面を記憶するフレーム記憶手段と、前記3次元対象物の表面にマッピングされるテクスチャデータを記憶するテクスチャ記憶手段と、テクスチャマッピングすべき範囲を規定したフィル座標及びテクスチャ座標を入力し、前記フィル座標により規定される範囲の内部の各画素のフィルアドレスを順次生成すると共に、生成されたフィルアドレスに対応するテクスチャアドレスを生成し、この生成されたテクスチャアドレスで指定される前記テクスチャ記憶手段の記憶場所からテクスチャデータを読み出して、前記フィルアドレスで指定される前記フレーム記憶手段の記憶場所に格納するマッピング手段とを有することを特徴とするテクスチャマッピング装置。
【図1】
【図3】
【図4】
【図2】
【図5】
【図10】
【図6】
【図9】
【図7】
【図8】
【図11】
【図12】
【図3】
【図4】
【図2】
【図5】
【図10】
【図6】
【図9】
【図7】
【図8】
【図11】
【図12】
【公開番号】特開平8−110951
【公開日】平成8年(1996)4月30日
【国際特許分類】
【出願番号】特願平6−270447
【出願日】平成6年(1994)10月7日
【出願人】(000004075)ヤマハ株式会社 (5,930)
【公開日】平成8年(1996)4月30日
【国際特許分類】
【出願日】平成6年(1994)10月7日
【出願人】(000004075)ヤマハ株式会社 (5,930)
[ Back to top ]