JP4556646B2 - 図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法 - Google Patents

図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法 Download PDF

Info

Publication number
JP4556646B2
JP4556646B2 JP2004350381A JP2004350381A JP4556646B2 JP 4556646 B2 JP4556646 B2 JP 4556646B2 JP 2004350381 A JP2004350381 A JP 2004350381A JP 2004350381 A JP2004350381 A JP 2004350381A JP 4556646 B2 JP4556646 B2 JP 4556646B2
Authority
JP
Japan
Prior art keywords
interpolation
control points
calculation
normal
vertex
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004350381A
Other languages
English (en)
Other versions
JP2006163532A (ja
Inventor
亮平 飯田
裕幸 小沢
重篤 吉岡
幹生 岩田
俊明 志野
茂和 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004350381A priority Critical patent/JP4556646B2/ja
Publication of JP2006163532A publication Critical patent/JP2006163532A/ja
Application granted granted Critical
Publication of JP4556646B2 publication Critical patent/JP4556646B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明は、n次のベジエ曲線やベジエ曲面、スプライン曲面などの図形情報を取り扱うCADおよびCAMシステムを導入したエンタテインメント装置や、携帯用ゲーム機、携帯端末装置、携帯電話機などに適用して好適な図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法に関するものである。
近年の情報処理分野ではCAD(computer aided drawing)システムやCAM(computer aided manufacturing)システムなどを利用した画像処理装置や情報処理装置などが多くなってきた。この種の処理装置では、自由曲線や自由曲面をそれぞれ作成するための表現方法としてベジエ(Bezier)曲線やベジエ曲面、スプライン(Spline)曲面が利用される場合が多い。
このベジエ曲線の場合、周知のように(n+1)個の制御点を与えることによって作成された曲線は、n次のベジエ曲線と言われる。また(n+1)×(n+1)個の制御点を与えることによって作成された曲面は、n次ベジエ曲面と言われる。このうちベジエ曲線は制御の容易性などから3次ベジエ曲線が利用されることが多い。ベジエ曲面も同様の理由から(4×4)個の制御点で表現される3次ベジエ曲面が多用されている。
図50および図51は、一般的な3次ベジエ曲線の例(その1、2)を示す図である。図50に示す3次ベジエ曲線は4つの制御点p0〜p3の座標値を用いて自由曲線を表現するものである。4つの制御点p0〜p3が与えられたとき、パラメータ(影響パラメータ;0≦t≦1)tを与えておくことによって一義的にベジエ曲線Rが決定される。3次ベジエ曲線は次式で表される。
(数1)
R(t)=(1−t)3p0+3t(1−t)2p1+3t2(1−t)p2+t3p3
ここに、制御点p0〜p3は何れも位置ベクトルであり、位置座標(x,y,z)の成分を有している。制御点p0〜p3のうち曲線が通過する点p0やp3は端点(通過点)と呼称され、その他の制御点p1やp2は内部制御点と呼称される場合がある。
そして、図51に示すように複数の端点、たとえばp0〜p6を与えることによって、滑らかな自由曲線を作成することができる。2つの端点によって形成される最少構成要素の曲線をセグメントといい、(n+1)×(n+1)個の制御点を与えることによって作成された最少構成要素の曲面(矩形)をパッチという。
図52は(4×4)個の制御点によって構成されるパッチPBの具体例を示している。複数のパッチを連ねると、図53に示すような3次のベジエ曲面を形成することができる。このような3次のベジエ曲面を取り扱う情報処理装置では、たとえば、図4に示すZ方向に曲面を変化させるような画像処理が施される。この画像処理によって、3次のベジエ曲面を自由に変形することができる。
ところで、曲面の定義式としての下記の式2で表わされるn次曲面上の座標値は DeCasteljau アルゴリズムにより式3のように制御点の階層的な補間処理で求められる。式において、Pは制御点を、I、Jは補間係数を、dは補間段数をそれぞれ表している。
また、法線ベクトルは最終補間処理の入力となり得る i,j それぞれの方向の対点を結ぶベクトルの外積として求められる。
Figure 0004556646
Figure 0004556646
ところが、従来の画像情報生成装置においては、ベジエ曲面、スプライン曲面などで制御点を共有し数学的に接続する隣接曲面の同一点を評価した場合に、浮動小数点演算、固定小数点演算などの演算方式に起因する演算誤差により座標値が異なる場合があり、曲面上の隣接評価点を結ぶ平面で曲面を近似描画する場合に接続性が問題となっていた。
また、法線ベクトルの算出において、隣接制御点が同値の場合、および外積計算の入力ベクトルが平行に近い場合に、有効な値が算出できないという問題があった。
本発明の目的は、n次のベジエ曲面やスプライス曲面などを隣接評価点を結ぶ平面で近似描画する場合に、制御点を共有し、数学的に接続する隣接曲面の接続点について、演算誤差を制御でき、同一の座標値を生成し、曲面の接続性を保証することが可能な画像情報生成装置、画像処理装置、情報処理装置、および図形情報生成装置を提供することにある。
上記目的を達成するため、本発明の第1の観点は、水平方向に(n+1[ただし、n≧2])個の制御点および垂直方向に(n+1)個の制御点を格子状に与え、この格子状の制御点からn次の曲面図形を表現するための頂点の座標値を生成する図形情報生成装置であって、所定のビット幅の制御点の座標値A,Bと、所定のビット幅で0≦t≦1の値をとる補間係数tとに基づき、前記制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算する補間処理部と、前記補間処理部の補間結果に基づいて法線を算出する法線算出部と、を有し、前記補間処理部は、i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により所定の式で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について所定の式に基づく再帰的補間処理を行うことにより算出し、前記法線算出部は、前記補間処理部の処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算し、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする
本発明の第2の観点は、水平方向に(n+1[ただし、n≧2])個の制御点および垂直方向に(n+1)個の制御点を格子状に与え、この格子状の制御点から生成されたn次の曲面図形を画像処理する画像処理装置であって、前記制御点の座標値を記憶する記憶装置と、前記記憶装置から読み出した制御点の座標値に基づいて前記n次の曲線図形および曲面図形を表現するための頂点の座標値を生成する図形情報生成装置と、を有し、前記図形情報生成装置は、所定のビット幅の制御点の座標値A,Bと、所定のビット幅で0≦t≦1の値をとる補間係数tとに基づき、前記制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算する補間処理部と、前記補間処理部の補間結果に基づいて法線を算出する法線算出部と、を有し、前記補間処理部は、i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により所定の式で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について所定の式に基づく再帰的補間処理を行うことにより算出し、前記法線算出部は、前記補間処理部の処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算し、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする
本発明の第3の観点は、水平方向に(n+1[ただし、n≧2])個の制御点および垂直方向に(n+1)個の制御点を格子状に与え、この格子状の制御点から生成されたn次の曲面図形を外部からの操作情報に基づいて情報処理をする情報処理装置であって、前記制御点の座標値を記憶する記憶装置と、前記記憶装置から読み出した制御点の座標値に基づいて前記n次の曲面図形を画像処理する画像処理装置と、前記画像処理装置を制御するための操作情報を入力するように操作される操作部と、前記操作部による操作情報に基づいて前記記憶装置から読み出した曲面図形を変化させるように表示制御する制御装置と、を有し、前記画像処理装置は、所定のビット幅の制御点の座標値A,Bと、所定のビット幅で0≦t≦1の値をとる補間係数tとに基づき、前記制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算する補間処理部と、前記補間処理部の補間結果に基づいて法線を算出する法線算出部と、を有し、前記補間処理部は、i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により所定の式で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について所定の式に基づく再帰的補間処理を行うことにより算出し、前記法線算出部は、前記補間処理部の処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算し、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする
好適には、前記補間処理部は、補間係数 0.5 を軸として丸め誤差が対称となるように補間係数を有限精度に丸める処理を行う。
好適には、前記法線算出部は、対点の算出における各補間係数を 0.5 より大きい値を 0 に、0.5 より小さい値を 1 に、0.5 の場合には 0, 1 のどちらかに固定的に置き換えたもので対点の算出および外積計算を行った結果を法線とする。
好適には、前記法線算出部は、外積ベクトルの要素毎にしきい値比較を行い全ての要素がしきい値よりも小さい場合に代替法線を採用する。
好適には、前記法線算出部は、前記2×2個の新たな制御点の座標値から前記頂点の水平方向に接線ベクトルおよび垂直方向に接線ベクトルを抽出し、水平方向および垂直方向に接線ベクトルに基づいて前記頂点における法線ベクトルを求める。
本発明の第4の観点は、水平方向に(n+1[ただし、n≧2])個の制御点および垂直方向に(n+1)個の制御点を格子状に与え、この格子状の制御点からn次の曲面図形を表現するための頂点の座標値を生成する図形情報生成方法であって、選択部により補間処理部に対して、所定のビット幅の(n+1)×(n+1)個の制御点の座標値を入力すると共に、所定のビット幅で0≦t≦1の値をとる補間係数(1−t)を入力し、上記補間処理部において、隣接する各々2つの前記制御点の座標値をA,Bとしたとき、前記水平方向で隣接する各々2つの制御点間について、それぞれA×(1−t)+B×tを順次演算してn×(n+1)個の新たな制御点の座標値を求め、さらに前記水平方向で隣接する新たな各々2つの制御点間についてそれぞれA×(1−t)+B×tを順次演算することにより、最終的に2×(n+1)個の新たな制御点の座標値を求め、その後、前記垂直方向で隣接する各々2つの制御点間についてそれぞれA×(1−t)+B×tを順次演算して2×n個の新たな制御点の座標値を求め、さらに前記垂直方向で隣接する新たな各々2つの制御点間についてそれぞれA×(1−t)+B×tを順次演算することにより、最終的に2×2個の新たな制御点の座標値を求め、その後、前記水平方向および垂直方向に関して前記2×2個の制御点間について、それぞれA×(1−t)+B×tを順次演算し、前記頂点の座標値を求め、i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により所定の式で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について所定の式に基づく再帰的補間処理を行い、法線算出部において、前記補間結果に基づいて法線を算出するに際し、前記補間処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算し、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする
本発明によれば、DeCasteljau アルゴリズムにおいて、接続性の問題については補間係数の丸め制御と補間計算における数値的例外処理を行い、法線ベクトルの算出については算出結果の有効性を判定して代替値を使用する。
所定の処理により得られた補間点を、所定の補間係数で補間することで求める曲面上の点が得られる。以上の補間処理において、補間される2つの点が同値と判断され、かつ補間係数が 0 もしくは 1 の場合に式2に示されるように例外処理が行われる。また、例外処理において補間結果とされる点が存在しない場合にはその例外処理は行われない。
また、補間処理による頂点は最終補間処理の入力となるものであり法線計算で使用する点対の1つであり、もう一つの点対は補間点を補間することで得られる。そして、点対を結ぶベクトルの外積を計算し、その要素値のどれかがしきい値より大きい場合にはそのベクトルが求める法線となり、そうでない場合には、最終補間の係数に応じてベクトルの外積ベクトルを求め法線とする。
本発明によれば、n次のベジエ曲面やスプライス曲面などを隣接評価点を結ぶ平面で近似描画する場合に、制御点を共有し、数学的に接続する隣接曲面の接続点について、演算誤差を制御することにより、同一の座標値を生成し、曲面の接続性を保証することができる。
以下、本発明の実施形態を図面に関連付けて説明する。
(1)第1の実施形態
[図形情報生成装置]
図1は本発明に係る実施形態としての図形情報生成装置10の構成例を示すブロック図である。図2は頂点の座標値生成時の(n+1)×(n+1)個の制御点p0〜pn(n+2)の配置例を示す図である。
本実施形態の図形情報生成装置10は、水平方向に(n+1)個の制御点および垂直方向に(n+1)個の制御点を格子状に与え、この格子状の制御点からn次のベジエ曲面などの図形を表現する場合に、その図形の頂点の座標値を生成する線形補間器を備え、たとえば各々浮動小数点で示される所定のビット幅の制御点の座標値A,Bと、所定のビット幅で0≦t≦1の値をとる補間係数tとに基づき、制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算して、ソフトウエアに依存することなく、n次のベジエ曲線やベジエ曲面を表現する頂点の座標値をハードウエアにより高速に生成できるようにしたものである。
さらに、本実施形態の図形情報生成装置10においては、i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により下記の式4で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について下記の式5に示す再帰的補間処理(例外的補間処理)を行うことにより算出する。
なお、この例外的補間処理を行わない場合には、下記の式6に示す補間処理を行う。
各式において、I,Jが補間係数、dが補間段数を示し,また、Uは上記パラメータtとして置き換えることができる。
また、本実施形態の図形情報生成装置10においては、補間係数 0.5 を軸として丸め誤差が対称となるように補間係数を有限精度に丸める方法を採用している。
また、本実施形態の図形情報生成装置10においては、再帰的補間処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする。
この場合、対点の算出における各補間係数を 0.5 より大きい値を 0 に、0.5 より小さい値を 1 に、0.5 の場合には 0, 1 のどちらかに固定的に置き換えたもので対点の算出および外積計算を行った結果を法線とする。
また、本実施形態の図形情報生成装置10においては、外積ベクトルの要素毎にしきい値比較を行い全ての要素がしきい値よりも小さい場合に代替法線を使用する。
本実施形態の図形情報生成装置10は、いわゆるDeCasteljau アルゴリズムにおいて、接続性の問題については補間係数の丸め制御と補間計算における数値的例外処理を行い、法線ベクトルの算出については算出結果の有効性を判定して代替値使用する。
Figure 0004556646
Figure 0004556646
Figure 0004556646
図1に示す図形情報生成装置10は、n次のベジエ曲線やベジエ曲面、スプライン曲面を表現する頂点の座標値を生成するものである。
この頂点の座標値はたとえば、図2において、水平方向に(n+1[ただし、n≧2])個の制御点p0〜pnおよびその垂直方向に(n+1)個の制御点p0〜pn(n+2)−nを格子状に与え、この格子状の(n+1)×(n+1)個の制御点p0〜pn(n+2)から生成されるものである。
図1の図形情報生成装置10は、制御頂点メモリ部11、補間係数メモリ部12、補間入力選択部13、補間係数選択部14、補間処理部15、補間結果メモリ部16、法線算出部17、制御部18、および記憶装置19を有している。
制御頂点メモリ部11は、曲面制御頂点データを記憶する。
補間係数メモリ部12は、曲面補間係数データを記憶する。
補間入力選択部13は、制御部18の制御の下、制御頂点メモリ部11に記憶されている曲面制御データまたは補間結果メモリ部16に記憶された補間処理部15の補間処理結果のいずれかを選択して補間処理部15に出力する。
補間係数選択部14は、制御部18の制御の下、補間係数メモリ部12に記憶されている曲面補間係数データを選択して補間処理部15に出力する。
すなわち、線形補間部15の入力段には接続された選択部13,14は、制御部184からの切り換え制御信号を受けて初期の制御点の座標値A,Bまたは線形補間演算によって新たに発生した制御点の座標値CA,CBを選択する。
線形補間部15は、たとえば図3に示すように、複数(図3の例では6個)の線形補間器151〜156を有し、U方向補間入力、およびV方向補間入力が、線形補間器151〜153に入力され、線形補間器154〜156からU方向補間結果、V方向補間結果が出力され、補間結果メモリ部16に記憶される。
各線形補間器151〜156においては、各桁合わせ制御信号などを受けて所定のビット幅の制御点の座標値A,Bと、所定のビット幅で0≦t≦1の値をとる補間係数tとに基づき、制御点間を内分する新たな制御点の座標値に関して次式を順次演算する。
A×(1−t)+B×t・・・・・(7)
線形補間部15は、上述したように、i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により上記の式4で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について上記の式5に示す再帰的補間処理(例外的補間処理)を行うことにより算出する。
また、補間処理部15は、補間係数 0.5 を軸として丸め誤差が対称となるように補間係数を有限精度に丸める処理を行う。
補間処理部15は、曲面評価点データを図示しない制御系に出力する。
補間結果メモリ部16は、補間処理部15で順次演算された補間結果が制御部18の書込み読出し制御信号S2を受けて記憶され、次の演算に必要な制御点の座標値を順次読み出すように制御される。
線形補間部15は、たとえば2×2個の新たな制御点の座標値から頂点の座標値を演算するときに、その頂点の水平方向の接線ベクトルUoutおよびその垂直方向の接線ベクトルVoutを演算するようになされる。この2つのベクトルをメモリ部16から後段の法線算出部17などに出力される。
法線算出部16は、2つの接線ベクトルUoutおよびVoutに基づいて頂点における法線ベクトルを求める。法線ベクトルは明るさを演算するライティング処理などに利用される。
法線算出部16は、上述したように、再帰的補間処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする。
この場合、対点の算出における各補間係数を 0.5 より大きい値を 0 に、0.5 より小さい値を 1 に、0.5 の場合には 0, 1 のどちらかに固定的に置き換えたもので対点の算出および外積計算を行った結果を法線するとする。
また、法線算出部16は、外積ベクトルの要素毎にしきい値比較を行い全ての要素がしきい値よりも小さい場合に代替法線を使用する。
制御部18にはROMなどの記憶装置19が接続され、このROM情報に基づいて制御部18は保管入力選択部13、補間係数選択部、補間結果メモリ部16などの入出力を制御する。
この記憶装置19には少なくとも、所定のビット幅の(n+1)×(n+1)個の制御点の座標値を入力すると共に、所定のビット幅で0≦t≦1の値をとる補間係数tを入力し、隣接する各々2つの制御点の座標値をA,Bとしたとき、この水平方向で隣接する各々2つの制御点間について、それぞれ(1)式を順次演算してn×(n+1)個の新たな制御点の座標値を求め、さらに水平方向で隣接する新たな各々2つの制御点間についてそれぞれ(1)式を順次演算することにより、最終的に2×(n+1)個の新たな制御点の座標値を求め、その後、垂直方向で隣接する各々2つの制御点間についてそれぞれ(1)式を順次演算して2×n個の新たな制御点の座標値を求め、さらに垂直方向で隣接する新たな各々2つの制御点間についてそれぞれ(1)式を順次演算することにより、最終的に2×2個の新たな制御点の座標値を求め、その後、水平方向および垂直方向に関して2×2個の制御点間について、それぞれ(1)式を順次演算し、頂点の座標値を求めるような制御手順等が記録される。
もちろん、この記憶装置19には、頂点の座標値を求めるに当たって、2×2個の新たな制御点の座標値から頂点の水平方向の接線ベクトルおよび垂直方向の接線ベクトルを抽出し、その水平方向および垂直方向の接線ベクトルに基づいて頂点における法線ベクトルを求めるような制御手順も記録されている。
これらの制御手順に基づいて図形情報生成装置10を再現性良く制御できるので、n次のベジエ曲線やベジエ曲面、スプライン曲面を表現する上位所定ビット幅の頂点の座標値をハードウエアにより発生させることができる。
したがって、ベジエ曲線やベジエ曲面などの図形情報を取り扱うCADおよびCAMシステムを導入したエンタテインメント装置や、携帯用ゲーム機、携帯端末装置、携帯電話機などに本実施形態の図形情報生成装置10を十分利用することができる。
次に、補間処理部15の線形補間器151〜156の内部構成例について説明する。線形補間器151〜156は同様な構成を有するが、ここでは線形補間器151を例に説明する。
この例では線形補間器151には浮動小数点線形補間器(FLIP)が使用される。図4は浮動小数点の座標値のデータフォーマット例を示す図である。
図4に示すデータフォーマット例によれば、各々の制御点の座標値は32ビットで与えられ、その1ビット目が符号部Sであり、次の8ビットが指数部Eであり、残りの23ビットが加数部Fである。各々の制御点の座標値をこれらの符号部S、指数部Eおよび加数部Fで示すと次式(8)のようになる。
1.F×2(E-127) ・・・(8)
この符号部Sでは座標値の正または負が区別され、指数部Eには8ビットで示される補間係数tが与えられる。
補間係数tの値は0≦t≦1を採るが、たとえば0.1刻みで(1−t)を演算するようなされる。この例では指数計算を高速化するために、指数部Eは0、16、32、48、64、80、96、112、128の16刻みで計9個の整数により表現するようにした。
この場合に、t=0.5がE=64に相当する。加数部Fは小数点以下を23ビットの2進数で表される。これらはIEEE754で規定されているのでこれに従う。
図5は線形補間器151の内部構成例を示すブロック図である。
図5に示す線形補間器151は各々の制御点に関して浮動小数点で与えられる座標値A,Bに基づいて補間演算する。
線形補間器151の入力段には桁合わせ部1511が設けられ、制御点の所定のビット幅の座標値A,Bの指数部Eの大きい方に桁を合わせるようになされる。桁合わせ部1511にはシフトレジスタが使用され、座標値A,Bの小さい方の指数部をシフトして大きい方の指数部に揃えるようになされる。
この桁合わせ部1511には第1および第2の乗算器1512、1513が接続される。
乗算器1512では桁合わせ後の値A’と補間係数(1−t)とが乗算され、乗算器1513は桁合わせ後の値B’と補間係数tとが乗算される。補間係数(1−t)は乗算器1512の入力段に接続された減算器1514により「1」から補正係数tを減算して生成される。
これらの乗算器1512,1513には15加算器15が接続され、乗算器1512の出力A’×(1−t)と乗算器1513の出力B×tとを加算するようになされる。加算器1515には正規化部1516が接続され、加算器1515の出力A’×(1−t)+B’×tを(7)式で示したような浮動小数点で所定のビット幅の座標値に正規化するようになされる。
したがって、水平方向で隣接する各々2つの制御点間についてそれぞれA’×(1−t)+B’×tを順次演算して、n×(n+1)個の新たな制御点の座標値を求め、さらに水平方向で隣接する新たな各々2つの制御点間についてそれぞれA’×(1−t)+B’×tを順次演算することにより、最終的に2×(n+1)個の新たな制御点の座標値を求め、その後、垂直方向で隣接する各々2つの制御点間についてそれぞれA’×(1−t)+B’×tを順次演算して2×n個の新たな制御点の座標値を求め、さらに垂直方向で隣接する新たな各々2つの制御点間についてそれぞれA’×(1−t)+B’×tを順次演算することにより、最終的に2×2個の新たな制御点の座標値を求め、その後、水平方向および垂直方向に関して2×2個の制御点間について、それぞれA’×(1−t)+B’×tを順次演算することにより、頂点の座標値を求めることができる。
続いて、図6〜図11を参照しながら、図形情報生成装置10の例外的処理を含まない基本的な動作例について説明をする。
図6はU−V座標系における制御点p0〜p15の配置例を示す図である。
この例ではn=3とした場合であって、図6に示すU−V座標系の水平方向(以下でu方向という)に4個の制御点および垂直方向(以下でv方向という)に4個の制御点を格子状に与え、この4×4個の格子状の制御点p0〜p15からたとえば図7に示すような3次のベジエ曲面を表現するための頂点の座標値を生成する場合を想定する。
この図形情報生成装置10では23ビット幅の4×4個の制御点p0〜p15の座標値と、8ビット幅で0≦t≦1の値をとる補間係数tとが線形補間器1に入力される。そして、隣り合う各々2つの制御点の座標値をA,Bとしたとき、このu方向で隣接する各々2つの制御点間について、図8(A)に示す4×4個の制御点p0〜p15の座標値をそれぞれ(7)式で順次演算して図8(B)に示すような3×4個の新たな制御点pu0〜pu11の座標値を求める。
その後、図8(B)に示した3×4個の制御点pu0〜pu11の座標値をさらにu方向で隣接する各々2つの制御点間について、それぞれ(1)式で順次演算して図10(A)に示すような2×4個の新たな制御点pu0〜pu7の座標値を求める。今度はv方向で隣接する各々2つの制御点間について、図9(A)に示した2×4個の制御点pu0〜pu7の座標値をそれぞれ(7)式で順次演算して図9(B)に示すような2×3個の新たな制御点pv0〜pv5の座標値を求める。
そして、図9(B)に示した2×3個の制御点pv0〜pv5の座標値をさらにv方向で隣接する各々2つの制御点間について、それぞれ(7)式で順次演算して図10(A)に示すような2×2個の新たな制御点pv0〜pv3の座標値を求める。その後、図10(A)に示した2×2個の制御点間について、u方向およびv方向に関してそれぞれ(7)式を順次演算し、図10(B)に示すような2×2個の新たな制御点pp0〜pp3の座標値を求める。そして、図10(B)に示した2×2個の新たな制御点pp0〜pp3の座標値をu方向およびv方向に関してそれぞれ(7)式を順次演算し、図10(C)に示すような頂点P0の座標値を求めることを前提とする。
もちろん、記憶装置195に記録された制御手順に基づいて、制御部184は制御点の座標値A,Bの指数部の大きい方に桁を合わせ、この桁合わせ後の座標値Aと補間係数(1−t)とを乗算すると共に、桁合わせ後の座標値Bと補正係数tとを乗算し、その後、乗算結果を加算した後の加算値を浮動小数点で示される所定のビット幅の座標値に正規化するように制御する。
これらを補間条件にして、図11のフローチャートのステップA1で4×4個の制御点の座標値が、記録媒体5の制御手順に従って、制御装置4の制御を受けた線形補間器1に23ビット幅の4×4個の制御点p0〜p15の座標値と、8ビット幅で0≦t≦1の値をとる補間係数tとが入力される。座標値の浮動小数点の指数部Eは0、16、32、48、64、80、96、112、128である。
その後、ステップA2に移行してU座標を初期設定をするために、その座標値がu=0に設定される。そして、ステップA3に移行してu=128になったか否かが検出される。u=128になった場合には、4×4個の制御点p0〜p15による3次のベジエ曲面の頂点座標値が得られる。u=128になっていない場合には補間演算を継続するために、ステップA4に移行する。このu方向に関して1つの頂点の座標値の生成について9回の補間処理がなされる。
ステップA4ではu方向で隣接する各々2つの制御点間について、(1)式により補間され、制御点p0〜p15を16個から8個に減らされる。たとえば、(1)式に関して
C=FLIP(A,B,u);と記述すると、u方向で隣接する各々2つの制御点間について、図8(A)に示した4×4個の制御点p0〜p15の座標値がそれぞれ(8)式で順次演算され、図8(B)に示したような3×4個の新たな制御点pu0〜pu11の座標値が求められる。
pu[0]=FLIP(p[0],p[1],u);
pu[1]=FLIP(p[1],p[2],u);
pu[2]=FLIP(p[2],p[3],u);
pu[3]=FLIP(p[4],p[5],u);
pu[4]=FLIP(p[5],p[6],u);
pu[5]=FLIP(p[6],p[7],u);
pu[6]=FLIP(p[8],p[9],u);
pu[7]=FLIP(p[9],p[10],u);
pu[8]=FLIP(p[10],p[11],u);
pu[9]=FLIP(p[12],p[13],u);
pu[10]=FLIP(p[13],p[14],u);
pu[11]=FLIP(p[14],p[15],u); ・・・(9)
この制御点pu0〜pu11の座標値はメモリ部2に格納される。ここで隣り合う各々2つの制御点の座標値をCA,CBとする。
その後、この座標値CA,CBがメモリ部2から読み出され、これが制御装置4の切り換え制御を受けた制御点選択部3により選択され、さらにu方向で隣接する各々2つの制御点間について、(7)式により補間され、制御点pu0〜pu11を12個から8個に減らされる。ここで、(7)式に関して
C=FLIP(CA,CB,u);と記述すると、u方向で隣接する各々2つの制御点間について、それぞれ(10)式で順次演算して図9(A)に示すような2×4個の新たな制御点pu0〜pu7の座標値が求められる。
pu[0]=FLIP(pu[0],pu[1],u);
pu[1]=FLIP(pu[1],pu[2],u);
pu[2]=FLIP(pu[3],pu[4],u);
pu[3]=FLIP(pu[4],pu[5],u);
pu[4]=FLIP(pu[6],pu[7],u);
pu[5]=FLIP(pu[7],pu[8],u);
pu[6]=FLIP(pu[9],pu[10],u);
pu[7]=FLIP(pu[10],pu[11],u);・・・(10)
これらの座標値も補間結果メモリ部16に格納される。
その後、ステップA5に移行してV座標を初期設定をするために、その座標値がv=0に設定される。そして、ステップA6に移行してV座標についてv=128になったか否かが検出される。v=128でV座標における補間処理の1サイクルが終了するためである。従って、v=128でステップA11に移行するが、v=0、16、32、48、64、80、96、112の場合にはv方向の補間処理を継続するために、ステップA7に移行する。
ステップA7ではv方向で隣接する各々2つの制御点間について、(7)式により補間され、制御点pu0〜pu7を8個から4個に減らされる。たとえば、v方向で隣接する各々2つの制御点間について、図9(A)に示した2×4個の制御点pu0〜pu7の座標値CA,CBをそれぞれ(11)式で順次演算して図9(B)に示すような2×3個の新たな制御点pv0〜pv5の座標値が求められる。
pv[0]=FLIP(pu[0],pu[2],v);
pv[1]=FLIP(pu[1],pu[3],v);
pv[2]=FLIP(pu[2],pu[4],v);
pv[3]=FLIP(pu[3],pu[5],v);
pv[4]=FLIP(pu[4],pu[6],v);
pv[5]=FLIP(pu[5],pu[7],v); ・・・・(11)
これらの座標値も補間結果メモリ部16に格納される。その後、同様な読出し制御を受けて、図10(B)に示した2×3個の制御点pv0〜pv5の座標値をさらにv方向で隣接する各々2つの制御点間について、ステップA8に移行して、それぞれ(12)式で順次演算して図10(A)に示すような2×2個の新たな制御点pv0〜pv3の座標値が求められる。
pv[0]=FLIP(pv[0],pv[2],v);
pv[1]=FLIP(pv[1],pv[3],v);
pv[2]=FLIP(pv[2],pv[4],v);
pv[3]=FLIP(pv[3],pv[5],v); ・・・(12)
その後、ステップA8に移行して図10(A)に示した2×2個の制御点間について、u方向およびv方向に関してそれぞれ(13)式を順次演算し、図10(B)に示すような2×2個の新たな制御点pp0〜pp3の座標値が求められる。
pp[0]=FLIP(pv[0],pv[1],u);
pp[1]=FLIP(pv[2],pv[3],u);
pp[2]=FLIP(pv[0],pv[2],v);
pp[3]=FLIP(pv[1],pv[3],v); ・・・(13)
そして、図10(B)に示した2×2個の新たな制御点pp0〜pp3の座標値をステップA9に移行してu方向およびv方向に関してそれぞれ(14)式を順次演算し、図10(C)に示すような頂点P0の座標値が求められる。
P0=FLIP(pp[0],pp[1],v) ・・・(14)
なお、上式(9)〜(14)はいずれもC言語で記述したものである。その後、ステップA10に移行してv方向の補間処理の粗さを調整するv=v+dvが演算される。ここでdvはベジエ曲面を表現するv方向のパッチ面の分割数を粗くするか細かくするかを設定するための演算子である。dvはたとえば16,8などの整数で与えられ、ここではパッチ面の分割数を細かくするために16(粗)を8(密)に減ずるようなv=v+dvを演算した後に、ステップA6に戻る。
ステップA6では同様な補間演算をv=0〜128の場合について行うために、V座標についてv=128になったか否かが検出される。つまり、1つの頂点の座標値の生成についてu方向を1つ変化させる毎に、このv方向に関して9回の補間処理がなされる。従って、v方向に関して9回の補間処理が終わると、ステップA6でv=128となった場合に、ステップA11に移行して、u方向の補間処理の粗さを調整するu=u+duが演算される。
ここでduはu方向のパッチ面の分割数を粗くするか細かくするかを設定するための演算子である。ここではパッチ面の分割数を細かくするために16を8に減ずるようなu=u+duを演算した後に、ステップA3に戻る。ステップA3では同様な補間演算をu=0〜128の場合について行うために、U座標についてu=128になったか否かが検出される。u=128になった場合には、9×9=81回の補間処理を経て4×4個の制御点p0〜p15による3次のベジエ曲面の1つの頂点座標値が得られ、その部分の補間演算を終了する。
その後、ステップA12に移行して与えられた制御点について全て頂点座標値を生成したかが検出される。たとえば、制御装置4からの線形補間器1へ終了コマンドが発行されることで、頂点座標値の生成処理を終了する。終了コマンド検出されない場合には、ステップA1に戻って次の4×4個の制御点が入力され、上述した処理が繰り返される。これにより、他の3次のベジエ曲面の頂点座標値をハードウエアにより得ることができる。
[法線ベクトルの生成例]
図12(A)〜図12(C)は図形情報生成装置10における法線算出部17による法線ベクトルの生成例を示す遷移図である。
この例では、図10(B)に示した2×2個の新たな制御点pp0〜pp3の座標値から頂点P0のu方向の接線ベクトルu(上矢印を省略する)およびv方向の接線ベクトルv(上矢印を省略する)が抽出され、この2つの接線ベクトルu,vに基づいて頂点P0における法線ベクトルzが求められる。
図12(A)に示すu方向の接線ベクトルuはU座標のx成分をuxとし、そのy成分をuyとし、そのz成分をuzとすると、(15)により演算される。
ux=pp[3].x−pp[2].x;
uy=pp[3].y−pp[2].y;
uz=pp[3].z−pp[2].z; ・・・・・(15)
同様にして、図12(B)に示すv方向の接線ベクトルvはV座標のx成分をvxとし、そのy成分をvyとし、そのz成分をvzとすると、(16)により演算される。
vx=pp[1].x−pp[0].x;
vy=pp[1].y−pp[0].y;
vz=pp[1].z−pp[0].z; ・・・・・(16)
図12(C)に示す頂点P0の法線ベクトルzは、これら2つの接線ベクトルu,vの外積を演算したものである。この法線ベクトルzは光色を算出するライティング処理に使用される。たとえば、光源から照射される光の向きを光源ベクトルとしたとき、この光源ベクトルと法線ベクトルの内積が演算される。そして、光源ベクトルと法線ベクトルとが一致したとき(cosθ=1)に、一番明るくなうように輝度が演算される。
なお、頂点P0の接線ベクトルu,vは4個の制御点の座標値が重なっていると、正確に接線ベクトルu,vを演算できないので、制御装置4内に比較器などを設け、4個の制御点の座標値が重なているか否かを判別するようにするとよい。たとえば、制御点の先頭の2つの座標値と最後の2つの座標値を比較して一致しているか否かを判別する。直線や球形に係る図形情報を生成する場合に座標値が一致するからである。
次に、例外的処理を含めた動作例を、図13〜図32に関連付けて説明する。
なお、図13〜図25は、本実施形態における例外的処理を含む補間処理の概念を段階的に示している。
図26は、補間処理におけるU方向接線ベクトル、V方向接線ベクトルの基本的な処理を概念的に示す図である。
図27は、補間処理におけるU方向接線ベクトル、V方向接線ベクトルが略ゼロとなる場合を概念的に示す図である。
図28は、補間処理におけるU方向接線ベクトル、V方向接線ベクトルが略ゼロとなる場合の例外処理の効果を概念的に示す図である。
図29は、補間処理におけるU方向接線ベクトル、V方向接線ベクトルが略平行となる場合を概念的に示す図である。
図30は、補間処理におけるU方向接線ベクトル、V方向接線ベクトルが略平行となる場合の例外処理の効果を概念的に示す図である。
図31は、頂点を境界線上で対称に共有する曲面同士を接続する場合を概念的に示す図である。
図32は、頂点を境界線上で対称に共有する曲面同士を接続する場合に対応した丸め制御の効果を概念的に示す図である。
ここでは、3次曲面の場合を示す。
図13の点は3次曲面の制御点であり、v方向に補間する場合を示している。線分は補間される頂点の対応を表わし、線分に添えられた値はその係数を示す。
図14の点はこの処理により得られた補間点を示し、これらをv方向に補間する場合の頂点の対応と補間係数を示している。
図15の点はこの処理により得られた補間点を示し、これらをu方向に補間する場合の頂点の対応と補間係数を示している。
図16の点はこの処理で得られた補間点を示し、これらをu方向に補間する場合の頂点の対応と補間係数を示している。
図17はこの処理により得られた補間点を示し、これらをu方向に補間する場合の頂点の対応と補間係数を示している。
図18はこの処理により得られた補間点を示し、これらを図18の係数で補間することで求める曲面上の点が得られる。
以上の補間処理において、たとえば図27に示すように、補間される2つの点が同値と判断され、かつ補間係数が 0 もしくは 1 の場合に式2に示されるように例外処理が行われる。
図19はこの例を示す。また、例外処理において補間結果とされる点が存在しない場合にはその例外処理は行われない。
図18の頂点は最終補間処理の入力となるものであり法線計算で使用する点対の1つであり、もう一つの点対は図7の補間点を図20のように補間することで得られる。
図21に示すそれぞれの点対を結ぶベクトルの外積を計算し、その要素値のどれかがしきい値より大きい場合にはそのベクトルが求める法線となる。
そうでない場合には、最終補間の係数に応じて図23〜図25のベクトルの外積ベクトルを求める法線とする。
より具体的には、補間係数 0.5 を軸として丸め誤差が対称となるように補間係数を有限精度に丸める。
また、再帰的補間処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする。
この場合、対点の算出における各補間係数を 0.5 より大きい値を 0 に、0.5 より小さい値を 1 に、0.5 の場合には 0, 1 のどちらかに固定的に置き換えたもので対点の算出および外積計算を行った結果を法線する。
そして、外積ベクトルの要素毎にしきい値比較を行い全ての要素がしきい値よりも小さい場合に代替法線を使用する。
以上説明したように、本実施形態の図形情報生成装置10によれば、i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について式5に示す再帰的補間処理(例外的補間処理)を行うことにより算出し、補間係数 0.5 を軸として丸め誤差が対称となるように補間係数を有限精度に丸め、再帰的補間処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とし、この場合、対点の算出における各補間係数を 0.5 より大きい値を 0 に、0.5 より小さい値を 1 に、0.5 の場合には 0, 1 のどちらかに固定的に置き換えたもので対点の算出および外積計算を行った結果を法線とし、また、外積ベクトルの要素毎にしきい値比較を行い全ての要素がしきい値よりも小さい場合に代替法線を使用することから、以下の効果を得ることができる。
補間処理におけるU方向接線ベクトル、V方向接線ベクトルが略ゼロとなる場合、あるいは略平行となる場合、あるいは頂点を境界線上で対称に共有する曲面同士を接続する場合、すなわち、n次のベジエ曲面やスプライス曲面などを隣接評価点を結ぶ平面で近似描画する場合に、制御点を共有し、数学的に接続する隣接曲面の接続点について、演算誤差を制御でき、同一の座標値を生成し、曲面の接続性を保証することができる利点がある。
また、第1の実施形態としての図形情報生成装置10によれば、u方向に4個の制御点およびv方向に4個の制御点を線形補間器1に与えると、ソフトウエアに依存することなく、ハードウエアによりこの制御点p0〜p15から3次のベジエ曲面を表現する頂点P0の座標値を生成することができる。しかも、2×2個の新たな制御点pp0〜pp3の座標値から頂点P0の接線ベクトルu,vを抽出できるので、ライティング処理に必要な法線ベクトルzを生成することができる。
また、桁合わせ部1511、乗算器1512,1513、加算器1515および正規化部1516といった小規模な回路構成によって線形補間器1を実現できるので、高性能かつ低消費電力動作が可能な図形情報生成装置10を提供することができる。これにより、図形情報生成装置10をベジエ曲面やスプライス曲面などの画像処理を行う画像処理装置、特に消費電力が制限される携帯端末装置などの情報処理装置に十分応用することができる。
この例では制御点の座標値A,Bに関して各々浮動小数点の場合について説明したが、これに限られることはなく、これらの座標値A,Bを固定小数点で線形補間器1に与えてもよい。また、頂点の座標値は2次元のU−V座標系で処理する場合について説明したが、もちろん、3次以上でも本発明を適用することができる。頂点の座標値もこの限りではない。ベジエ曲面に限らずベジエ曲線や、3次だけでなくそれ以外の次数のベジエ曲面に適用することができる。
[第1の画像処理装置]
図33は本発明に係る実施形態としての第1の画像処理装置100の構成例を示すブロック図である。
この実施形態に係る第1の画像処理装置100では、上述した図形情報生成装置10が応用され、ソフトウエアに依存することなく、ハードウエアにより生成された上位所定ビット幅の頂点の座標値を用いてn次のベジエ曲線やベジエ曲面、スプライン曲面を画像処理する。
図33に示す画像処理装置100は、図形情報生成装置10の主要部の一例となるベジエ分割装置101を有しており、その図形情報生成部10Aによって生成されたn次の曲面図形を画像処理する。
この画像処理装置100は、ベジエ分割装置101の他に制御装置102、操作部103、ROM104、メインメモリ105などを有している。
メインメモリ105にはたとえば3次のベジエ曲線やベジエ曲面、スプライン曲面を画像処理するための4×4個の制御点の座標値A,Bが記憶されている。この制御点の座標値A,Bは外部から書き換え可能になされる。
メインメモリ105の記録内容例については図34において説明をする。
このメインメモリ105には制御装置102が接続されると共に、この制御装置102には操作部103が接続されている。
この操作部103は、メインメモリ105の読出し制御をするための操作情報D3を入力するように操作される。制御装置102では操作情報D3に基づいてメインメモリ105に書込み読出し信号S4を出力する。メインメモリ105では3次のベジエ曲線やベジエ曲面を画像処理するための4×4個の制御点の座標値A,Bが書込み読出し信号S4に基づいて図形情報生成部6に読み出される。
このメインメモリ105に接続された図形情報生成部10Aでは、操作情報D3に基づいて読み出された制御点の座標値A,Bに関して、u方向に(n+1[ただし、n≧2])個の制御点およびv方向に(n+1)個の制御点を格子状に与え、この格子状の制御点からn次の曲面図形に係る頂点座標値を生成するようになされる。この例では3次の曲面図形を表現するための頂点の座標値が生成される。ここで生成された頂点の座標値は頂点情報Coutとして後段の処理回路へ出力される。
もちろん、図形情報生成部10Aは、図5に示した線形補間器を有しており、浮動小数点または固定小数点で示される、23ビット幅の制御点の座標値A,Bと、8ビット幅で0≦t≦1の値をとる補間係数tとに基づき、制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算する。さらに、図形情報生成部10Aは、2×2個の新たな制御点の座標値から頂点のu方向に接線ベクトルおよびv方向に接線ベクトルを抽出する。
この図形情報生成部10Aには演算器106が接続され、2×2個の新たな制御点の座標値から抽出された頂点P0のu方向の接線ベクトル情報Uinとv方向の接線ベクトル情報Vinとを入力し、演算器106は、この情報Uinと情報Vinの外積を演算してその頂点P0の法線ベクトル情報Houtを出力する。
制御装置102に接続されたROM104には、制御点の座標値A,Bの指数部の大きい方に桁を合わせ、この桁合わせ後の座標値Aと補間係数(1−t)とを乗算すると共に、桁合わせ後の座標値Bと補正係数tとを乗算し、その後、乗算結果を加算した後の加算値を浮動小数点で示される所定のビット幅の座標値に正規化するような制御手順や、頂点P0のu方向の接線ベクトル情報Uinとv方向の接線ベクトル情報Vinとを所定のタイミングで外積を演算して出力するような制御手順が記述されている。
続いて、メインメモリ105の記録内容例について説明する。
図34はメインメモリ105の記録内容例を示すイメージ図である。
この例では、1Mバイトのメモリ領域に、その格納アドレス0x00000〜0xFFFFFによって指定される番地にプログラム情報、描画リスト、形状データ、テクスチャデータID=1、およびID=2が記録されている。これらのデータは外部から転送されたゲームデータや、電子アニメーション用のデータであってもよい。
図34に示す記録内容例によれば、n次のベジエ曲面などを生成するアプリケーション本体、このアプリケーションのサブルーチンなどのモジュール群およびライブラリ群から成るプログラム情報がメモリ領域の先頭に記述されている。このアプリケーションにはたとえば、n次のベジエ曲面を生成操作するモードを設定するか、または他の操作モードを設定するかを選択させるようなプログラムデータも含まれる。プログラム情報の後には、1ポリゴンの形状データを複数繋げるための制御命令(以下でポリゴン描画命令ともいう)などの描画リストが記述されている。
この描画リストの後には映像素材情報となる形状データが記述されている。たとえばゲーム情報や広告情報などを2次元または3次元映像表示するような動画データを含むグラフィックモデルデータ群が記述されている。動画データはDCT(離散コサイン変換)により画像圧縮されている。形状データの後には、グラフィックテクスチャデータ群が記述されている。テクスチャデータは76バイトで1ポリゴンの形状データを構成するようになされ、この例では三角形と四角形の2つのIDを持つテクスチャデータが記述される。テクスチャデータの内容については後で説明する。この他にサウンドシーケンスデータ群およびサウンドウエーブデータ群が記述される場合もある。ユーザーの操作と、サウンドシーケンスに応じてサウンドウエーブデータを処理するためである。
このように、本発明に係る実施形態としての第1の画像処理装置100によれば、上述した図形情報生成装置10の主要部がベジエ分割装置101に応用されるので、ソフトウエアに依存するところが少なくなり、n次のベジエ曲線やベジエ曲面、スプライン曲面を表現する上位所定ビット幅の頂点P0の座標値を用いてハードウエアにより高速に画像処理を行うことができる。したがって、ベジエ分割装置101を構成する線形補間器を小規模な回路構成によって実現できるので、高性能かつ低消費電力動作が可能な画像処理装置100を提供することができる。
また、本発明に係るROM104によれば、このROM104に記録された制御手順に基づいてベジエ分割装置101に内蔵される補間処理部の線形補間器を再現性良く制御できるので、n次のベジエ曲線やベジエ曲面を表現する上位所定ビット幅の頂点の座標値をハードウエアにより発生させることができる。
(2)第2の実施形態
図35は、本発明に係る第2の実施形態としての図形情報変換装置20の構成例を示すブロック図である。
本第2の実施形態の図形情報変換装置20では、第1の実施形態の図形情報生成装置10の機能を有し、さらに、n次の曲面図形を表現するための頂点情報を多角形情報に並び換える場合にメモリ制御部を備え、m個の頂点情報を1ライン目のメモリに書き込むと共に、次のm個の頂点情報を2ライン目のメモリに書き込み、その後、1ライン目のメモリで各々隣接する2個ずつの頂点情報と、2ライン目のメモリで各々隣接する2個ずつの頂点情報とにより形成される(m−1)個の四角形の頂点情報をそのまま、もしくは、その四角形を斜めに分割した2(m−1)個の三角形の頂点情報を順次読み出すようにして、ソフトウエアに依存することなく、n次のベジエ曲線やベジエ曲面を表現する頂点情報をハードウエアにより多角形情報に変換できるようにしたものである。
図35に示す図形情報変換装置20は、n次の曲線図形および曲面図形を表現するための頂点情報Cinをライン走査のための多角形(以下でポリゴンともいう)情報に並び換えるものである。
この図形情報変換装置20は、少なくとも、2ライン分のメモリ21A,21Bを有した記憶装置21が設けられ、1ライン毎に頂点情報Cinを記憶する。
記憶装置21にはラインメモリ21A,21Bを有したスタックメモリ21’などを使用するとよい。
記憶装置21にはメモリ制御部22が接続され、当該記憶装置21の書込み読出しを制御するようになされる。たとえば、メモリ制御部22はm個の頂点情報Cinを1ライン目のメモリ21Aに書き込むと共に、次のm個の頂点情報Cinを2ライン目のメモリ21Bに書き込み、その後、1ライン目のメモリ21Aで各々隣接する2個ずつの頂点情報Cinと2ライン目のメモリ21Bで各々隣接する2個ずつの頂点情報Cinとにより形成される(m−1)個の四角形の頂点情報Cinをそのまま、もしくは、その四角形を斜めに分割した2(m−1)個の三角形の頂点情報Coutを順次読み出すようになされる。以下で四角形または三角形の頂点情報を多角形情報Coutともいう。
この例では2ライン目のメモリ21Bに書き込んだm個の頂点情報Cinは、次の第3ライン目に相当するm個の頂点情報Cinの並び換えに使用するので、1ライン目のメモリ21Aに順次シフトするようになされる。第3ライン目に相当するm個の頂点情報Cinを常に2ライン目のメモリ21Bに書き込むようにするためである。
この例ではさらに、予め四角形動作モードまたは三角形動作モードのいずれかを選択するための設定情報D4が入力される。ここで四角形動作モードとは四角形の頂点情報Cinを生成する図形変換制御をいい、三角形動作モードとは三角形の頂点情報Cinを生成する図形変換制御をいうものとする。たとえば、設定情報D4が「1」のときは、四角形動作モードが選択され、それが「0」のときは三角形動作モードが選択される。多角形情報Coutは少なくとも、多角形の頂点の座標値、色テクスチャ情報およびクリップ情報を含むものである。色テクスチャ情報はn次の曲面図形を表示する背景の色情報である。クリップ情報は多角形情報Coutに基づいて三次元映像加工(以下でレンダリングという)処理するか否かを判断するためのコードであり、多角形の各頂点毎に付加される。
ここで、多角形情報Coutによって表現される奥行きを含む表示領域(モニタなどの有効表示領域に等しい)に関して視認可能な範囲をクリップ領域としたとき、このクリップ領域から外れる多角形の頂点にクリップ情報「1」が付加され、このクリップ領域内に入っている多角形の頂点にはクリップ情報「0」が付加される。クリップ情報の付加については後で説明する。
このメモリ制御部22には判定部23が接続され、判定部23は、上述のクリップ領域から外れる多角形情報Coutを判別する。判定部23では、予め多角形の各々の頂点毎に付加されたクリップ情報を入力し、この多角形の頂点が1つでもクリップ領域内にある場合には、当該多角形情報Coutをレンダリング処理に含められる。n次のベジエ曲面などの一部がモニタなどの有効表示領域にかかっていて表示が必要であることによる。
反対に、この多角形の全ての頂点がクリップ領域外にある場合には、当該多角形情報Coutをレンダリング処理から除外するようになされる。n次のベジエ曲面などがモニタなどの有効表示領域から外れてしまい、レンダリング処理を施してモニタ画面上に現れないことによる。この判定部23は三角形情報Coutを判定する場合には三入力NAND回路や三入力AND回路などから構成され、四角形情報を判定する場合には四入力NAND回路や四入力AND回路などから構成される。NAND回路を使用する場合にはインバータが接続され、入力または出力論理を反転するようになされる。
図36は、m=8における図形情報変換例を示すイメージ図である。図37(A)および(B)は、三角形情報Coutおよび四角形情報Cout'の出力例を示すイメージ図である。
図36に示すベジエ曲面は8個の頂点情報Cinを走査ライン毎に同一平面に並べたものである。
この例では、三角形動作モードでm=8の場合に、図37(A)に示す三角形の各頂点が「1,2,9」、「2,9,10」、「2,3,10」、「3,10,11」、「3,4,11」・・・・の三角形情報Coutがメモリ制御部22から判定部23へ出力される。もちろん、各三角形の各頂点毎にクリップ情報「1」または「0」が付加される。
四角形動作モードでm=8の場合に、図37(B)に示す四角形の各頂点が「1,2,9,10」、「2,3,10,11」、「3,4,11,12」・・・・の四角形情報Cout'がメモリ制御部22から判定部23へ出力される。もちろん、各四角形の各頂点毎にクリップ情報「1」または「0」が付加される。
図38は、液晶表示モニタなどのクリップ領域例を示す仮想表示空間のイメージ図である。図39は、スクリーン座標系xs,ysにおけるクリップ領域CLと4ビットのクリップコードの関係例を示す対応図である。この例では図17に示す仮想表示空間上にスクリーン座標系xs、ys、zsが定義され、奥行きはzs座標に関してZ=±1に入る多角形情報Coutのみをレンダリング処理に移行するようになされる。多角形情報Coutは上述した判別部23で判定される。
図38に示すクリップ領域CLは、多角形情報Coutによって表現される奥行きを含む表示領域に関してビューポイントから視認可能な範囲を定義したものである。このクリップ領域CLは液晶表示モニタなどの480ライン×640画素の有効表示領域に等しい。このクリップ領域CLから外れる多角形の頂点に予めクリップ情報「1」が付加され、このクリップ領域CL内に入っている多角形の頂点にはクリップ情報「0」が付加される。
つまり、図39に示す対応図はスクリーン座標系xs,ysにおいて、仮想表示面を井桁に分割したものである。この図の中央部はクリップ領域CLであり、この領域内に含まれる頂点情報Cinには各多角形の頂点P0毎にクリップ情報の一例となる4ビットのクリップコード「0000」が付加される。また、クリップ領域CLの左上部領域<1>に含まれる頂点情報Cinには各頂点毎にクリップコード「1001」が付加される。
同様にして、その上部領域<2>に含まれる頂点情報Cinには各頂点毎にクリップコード「1000」が付加され、その右上部領域<3>に含まれる頂点情報Cinには各頂点毎にクリップコード「1010」が付加される。さらに、その左横領域<4>に含まれる頂点情報Cinには各頂点毎にクリップコード「0001」が付加され、その右横領域<5>に含まれる頂点情報Cinには各頂点毎にクリップコード「0010」が付加される。
クリップ領域CLの左下部領域<6>に含まれる頂点情報Cinには各頂点毎にクリップコード「0101」が付加され、その下部領域<7>に含まれる頂点情報Cinには各頂点毎にクリップコード「0100」が付加され、その右下部領域<8>に含まれる頂点情報Cinには各頂点毎にクリップコード「0110」がそれぞれ付加される。これらのクリップコード(クリップ情報)は図形情報生成後の座標変換処理の際に頂点情報Cinに付加される。このクリップ情報を図形情報変換後に判定するようにしたのは、図36で説明したようにたとえば、ベジエ曲面を同一平面に並べて始めて、変換後の多角形情報Coutがクリップ領域CLに含まれるか否かが判定できることによる。
図40は、クリップコードによる判定結果例を示すイメージ図である。図40に示す斜線の三角形はレンダリング処理がなされないものであり、白抜きの三角形はレンダリング処理に移行されるものである。
つまり、図19に示す領域<1>、<3>、<4>および<5>のみに含まれる三角形「A」と、三角形「C」〜「E」と、領域<1>、<2>および<3>にかかっているがクリップ領域CLにかかっていない三角形「B」とは判定部23により「レンダリング処理しない」と判定される。これらはレンダリング処理をしても液晶表示モニタには表示されないので、判定部23によってこの三角形情報Coutを除外するようになされる。
これに対して、クリップ領域CLにかかっている三角形「G」と、領域<2>および<4>〜<8>にかかっているものの、クリップ領域CLにその大部分がかかっている三角形「F」とは判定部23により「レンダリング処理をする」と判別される。クリップ領域CLに一部でもかかっている三角形「G」などは液晶表示モニタの有効表示領域で表示されるからである。
図41は、スクリーン座標系ys,zsにおける奥行きを考慮したクリップ領域CL’と6ビットのクリップコードの関係例を示す対応図である。
この例では、図41に示す仮想表示空間の奥行きにスクリーン座標系ys、zsが対応され、zs座標に関してZ=±1に入る三角形情報Coutのみをレンダリング処理に移行するようになされる。三角形情報Coutは上述した判別部23で判定される。
図41に示す対応図はスクリーン座標系ys,zsにおいて、仮想空間を井桁に分割したものである。この対応図の中央部は奥行きを考慮したクリップ領域CL’であり、この領域内に含まれる頂点情報Cinには各三角形の頂点P0毎にクリップ情報の他の一例となる6ビットのクリップコード「0000XX」が付加される。また、クリップ領域CL’の前上部領域<1>’に含まれる頂点情報Cinには各頂点毎にクリップコード「0110XX」が付加される。
同様にして、クリップ上部領域<2>’に含まれる頂点情報Cinには各頂点毎にクリップコード「0010XX」が付加され、その後上部領域<3>’に含まれる頂点情報Cinには各頂点毎にクリップコード「1010XX」が付加される。さらに、その前中央領域<4>’に含まれる頂点情報Cinには各頂点毎にクリップコード「0100XX」が付加され、クリップ領域CLの後中央領域<5>’に含まれる頂点情報Cinには各頂点毎にクリップコード「1000XX」が付加される。
クリップ領域CLの前下部領域<6>’に含まれる頂点情報Cinには各頂点毎にクリップコード「0101XX」が付加され、クリップ下部領域<7>’に含まれる頂点情報Cinには各頂点毎にクリップコード「0001XX」が付加され、その後下部領域<8>’に含まれる頂点情報Cinには各頂点毎にクリップコード「1001XX」がそれぞれ付加される。これらのクリップコード(クリップ情報)は図形情報生成後の座標変換処理の際に頂点情報Cinに付加される。
続いて、本発明に係る実施形態としての図形情報変換方法について図形情報変換装置20の動作例を説明する。
図42は、本発明に係る実施形態としての図形情報変換装置20の動作例を示すフローチャートである。
この例では3次の曲線図形および曲面図形を表現するための、m=128の頂点情報Cinをライン走査のための三角形情報Coutに並び換える場合を想定する。
少なくとも、U−V座標系で3次の曲面図形を表現したとき、その制御点の先端から最終端に至る長さ分(m=128)の頂点情報Cinが書き込める、2ライン分のメモリ領域を展開できるスタックメモリ21’などを準備する。
この例で頂点情報Cinは多角形の頂点P0の座標値、色テクスチャ情報およびクリップ情報を含むものとし、多角形の各頂点毎に図39で説明したようなクリップコードが付加されているものとする。
これを前提にして、図42に示すフローチャートのステップB1で頂点情報Cinに関してポリゴン形状を設定する。ここで、たとえば設定情報D4=「0」を設定して三角形動作モードが選択される。その後、ステップB2で128個の頂点情報Cinを1ライン目のメモリ領域に書き込む。
そして、ステップB3で次の128個の頂点情報Cinを2ライン目のメモリ領域に書き込む。その後、予め設定された動作モードに基づいてステップB4で制御を切り換える。
この例では三角形動作モードが選択されているので、ステップB5に移行して1ライン目のメモリ領域で各々隣接する2個ずつの頂点情報Cinと2ライン目のメモリ領域で各々隣接する2個ずつの頂点情報Cinとにより形成される127個の四角形を斜めに分割した254個の三角形の頂点情報Cinを順次読み出す(図37(A)参照)。
なお、予め設定された動作モードが四角形動作モードの場合には、ステップB6に移行して1ライン目のメモリ領域と2ライン目のメモリ領域の各々の頂点情報Cinとにより形成される127個の四角形の頂点情報Cinをそのまま順次読み出すようになされる(図37(B)参照)。
その後、ステップB7に移行してクリップ領域CLから外れる三角形情報Coutが判別部23によって判別される。
この三角形情報Coutの判別の際に、図40で説明した三角形「G」、「G」のように頂点が1つでもクリップ領域CL内にある場合には、当該三角形情報Coutをレンダリング処理に含め、三角形「A」〜「E」のように、全ての頂点がクリップ領域CL外にある場合には、この三角形情報Coutをレンダリング処理から除外する。
そして、ステップB8に移行して、全ての三角形情報Coutの判別が終了したか否かがチェックされる。判別が全部終了していない場合にはステップB2に戻って上述した処理を繰り返すようになされる。判別が全部完了した場合には図形情報変換処理を終了する。
このように、本発明に係る第2の実施形態としての図形情報変換装置20によれば、3次の曲線図形および曲面図形を表現するための頂点情報Cinを三角形情報Coutに並び換える場合に、1ライン目のメモリ領域と2ライン目のメモリ領域の各々の頂点情報Cinとにより形成される127個の四角形の頂点情報Cinをそのまま、もしくは、その四角形を斜めに分割した254個の三角形の頂点情報Cinを記憶装置21から順次読み出す。
したがって、ソフトウエアに依存することなく、n次のベジエ曲線やベジエ曲面を表現する頂点情報Cinをハードウエアにより三角形情報Coutに並び換えることができる。しかも、メモリ21A,21Bといった小規模なメモリ構成によってスタックメモリなどを実現できるので、高性能かつ低消費電力動作が可能な図形情報変換装置20を提供することができる。
[第2の画像処理装置]
図43は、本発明に係る実施形態としての第2の画像処理装置200の構成例を示すブロック図である。
この例では図35で説明した図形情報変換装置の一例となる頂点並換え装置201を備え、図33で説明した第1の画像処理装置100から出力される多角形の頂点P0の法線ベクトルHoutおよび各々の多角形の頂点情報(テクスチャデータ)Cinを座標変換した後に、ソフトウエアに依存することなくその頂点情報Cinを並び換え、その後、ライン走査のための画像処理をするようにしたものである。
図43に示す第2の画像処理装置200は、第1の実施形態で生成されたn次の曲面図形を画像処理するものである。
この画像処理装置200には第1の画像処理装置100が設けられ、n次の曲面図形を表現するための頂点の座標値を生成するよう構成される。画像処理装置100には、前述したように、第1の実施形態で説明した図形情報生成装置が使用される。その内部構成例については図1および図33で説明しているのでその説明を省略する。
この画像処理装置100にはライティング処理部25と座標変換&クリップコード付加部24とが接続されている。
ライティング処理部25では図33に示した演算器(外積)7から得られる頂点P0の法線ベクトルzと、予め設定された光源ベクトルとの内積(cosθ)を演算して光色を算出するようになされる。たとえば、n次のベジエ曲面の頂点P0の法線ベクトルと光源ベクトルとが一致(θ=0または180°)したときに、その頂点P0が一番明るくなうような輝度を演算するようになされる。
また、座標変換&クリップコード付加部24では、画像処理装置100によるポリゴン描画命令に基づいて頂点P0の座標値がスクリーン座標(映像表示)系の座標値に変換されると共に、図39および図41で説明したクリップコードが付加される。
この例では、頂点情報Cinは76バイトで1ポリゴンの形状データを構成するようになされる(図44参照)。座標変換&クリップコード付加部24には頂点並換え装置201が接続されている。頂点並換え装置201はメモリ制御部22の一例となる書込みスタック22Aおよび読出しスタック22Bと、スタックメモリ(記憶装置)21’と、クリップ判定器(判定部)23’とを有している。
なお、ライティング処理部25の出力は頂点並換え装置201をスルーしてラスタライズ処理部26に至るようになされる。
スタックメモリ21’には、少なくとも、図35に示したような2ライン分のメモリ21A,21Bを有して頂点情報Cinが記憶される。書込みスタック22Aでは座標変換されたm個の頂点情報Cinを順次スタックメモリ21’の1ライン目に書き込むと共に、次のm個の頂点情報Cinを2ライン目に書き込む。
読出しスタック22Bでは1ライン目で各々隣接する2個ずつの頂点情報Cinと2ライン目で各々隣接する2個ずつの頂点情報Cinとにより形成されるm−1個の四角形を斜めに分割した、図37で説明したような2(m−1)個の三角形情報Coutをスタックメモリ21’から順次読み出す。
スタック読出し器22Bにはクリップ判定器23’が接続され、図40で説明したようなクリップ領域CLから外れる三角形情報Coutを判定する。
クリップ判定器23’は、予め三角形の各々の頂点毎に付加されたクリップコードが入力され、これらのクリップコードの三入力AND論理が演算され、三角形の頂点P0が1つでもクリップ領域CL内にある場合には、当該三角形情報Coutをレンダリング処理に含め、これら三角形の全ての頂点がクリップ領域CL外にある場合には、当該三角形情報Coutをレンダリング処理から除外する。
上述したライティング処理部25およびクリップ判定器23’にはラスタライズ処理部26が接続され、座標変換後の頂点情報Cinが1ポリゴン毎にラスタライズ処理され、1画素のカラーテクスチャアドレス(U,V)が算出される。スクリーン座標系においてライン走査するためである。
続いて、図44〜図47を参照しながら、第2の画像処理装置200の動作例について説明をする。
図44は、ポリゴン(三角形)の形状データの記録内容例を示すデータフォーマットを示す図である。
この例で図44に示す頂点情報Cinは、図45に示すような三角形の1ポリゴンの形状データを76バイトで構成するようになされる。つまり、1ポリゴンは図45に示す3つの頂点1,2,3を有する三角形により表現され、形状データの先頭には図44に示すテクスチャIDが記述され、その後には、三角形の第1頂点のX、Y、Z座標が各々記述されると共に、第1頂点のカラー値、テクスチャU、V座標が記述される。
これに続いて第2頂点のX、Y、Z座標が各々記述されると共に、第2頂点のカラー値、テクスチャU、V座標が記述される。さらに、第3頂点のX、Y、Z座標が各々記述されると共に、第3頂点のカラー値、テクスチャU、V座標が記述される。これらの頂点情報Cinはユーザーの操作に応じて図37で説明したような三角形状の頂点1,2,3を繋ぎ合わせるように連続される。
この例では、一方で、第1の画像処理装置100から出力される、n次の曲面図形を表現するための多角形の頂点P0の法線ベクトルHoutをライティング処理し、他方で各々の多角形の頂点情報Cinを座標変換した後に、ソフトウエアに依存することなく、その頂点情報Cinを並び換え、その後、ライン走査のための画像処理をする場合を想定する。
つまり、連続された頂点情報Cinは1頂点毎に座標変換される。座標変換後の頂点情報Cinは、図46に示す1ポリゴン毎にラスタライズ処理を行って1画素毎にカラーテクスチャアドレス(U,V)が算出される。その後、テクスチャIDにより指示される頂点情報CinからU,V座標のテクスチャカラーが読み出され、各々の画素のカラー値が決定され、このカラー値に基づいて液晶表示モニタなどに3次元映像画像が表示される。
なお、n次の曲面図形の各々の頂点の座標値は第1の画像処理装置100によって生成されるものとする。
これを前提にして、図47に示すフローチャートのステップE1で第1の画像処理装置100から座標変換&クリップコード付加部24へ描画リストD2が転送される。その後、座標変換&クリップコード付加部24ではステップE2で描画リストD2に基づいて1頂点毎に頂点情報Cinがスクリーン座標系の座標値に変換される。この座標変換&クリップコード付加部24により座標変換された頂点情報Cinは、上述した頂点並換え装置201により、ライン走査のための三角形情報Coutに並び換えられる。
そして、ステップE3で1ポリゴン毎にラスタライズ処理部26へ転送される。このラスタライズ処理部26では、1ピクセル(X,Y)毎のZ値、カラー値(Rf,Gf,Bf)、テクスチャアドレス(U,V)が算出される。その後、U,V座標系のテクスチャカラー値(Rt,Gt,Bt)が読み出される。そして、スクリーン座標系のカラー値RGBが(17)式により求められる。
R=Rf×Rt,G=Gf×Gt,B=Bf×Bt・・・・(17)
その後、ステップE7に移行して奥行き情報であるZ値が比較される。
Z値が図41に示したようにクリップ領域の手前にある場合には三角形情報Coutの書込みを行う。Z値がクリップ領域の後方にある場合には液晶表示モニタに表示されないので、その書込みを行わない。
その後、ステップE9に移行して三角形情報Coutの書込みが全部終了したか否かがチェックされる。全部書込みを終了した場合には、当該画像処理を終了する。当該三角形情報Coutの書込みを全部終了していない場合にはステップE1に戻って上述した処理を繰り返す。
このように、本発明に係る実施形態としての第2の画像処理装置200によれば、ソフトウエアに依存することなく、スタック書込み器22Aによってm個の頂点情報Cinが1ライン目のメモリ領域に書き込まれると共に、次のm個の頂点情報Cinが2ライン目のメモリに書き込まれ、その後、1ライン目のメモリで各々隣接する2個ずつの頂点情報Cinと2ライン目のメモリで各々隣接する2個ずつの頂点情報Cinとにより形成される(m−1)個の四角形を斜めに分割した2(m−1)個の三角形の頂点情報Cinがスタックメモリ部21’からスタック読出し器22Bにより順次読み出すようになされる。
これにより、ハードウエアにより並び換えられた三角形情報Coutに基づいてn次のベジエ曲線やベジエ曲面を表現するような画像処理をすることができる。
しかも、小規模な回路構成によって頂点並換え装置201などを実現できるので、高性能かつ低消費電力動作が可能な画像処理装置200を提供することができる。また、当該画像処理装置200を組み込んだエンタテインメント装置や、携帯端末装置および携帯電話機などを構成することができる。
(3)実施例
図48は、本発明に係る実施例としての携帯端末装置300の構成例を示すブロック図である。
この例では上述した第1の画像処理装置100と第2の画像処理装置200とを組み合わせ、情報処理装置の一例となる携帯端末装置300を構成したものである。第1および第2の実施形態で説明した同じ符号のものは同じ機能を有するためその説明を省略する。
つまり、図48に示す携帯端末装置300は、図12に示した第1の画像処理装置100と図33に示した第2の画像処理装置200とを1チップ化したLSI回路を主要部と成し、n次の曲面図形を外部操作に基づいて情報処理をするものである。
図48において、一点鎖線で囲んだ第1の画像処理装置100はベジエ分割装置101、メインメモリ106、操作ボタン39、CPU40、入力コントローラ43およびROM(Read Only Memory)45などから構成され、二点鎖線で囲んだ第2の画像処理装置200は座標変換&クリップコード付加部24、ライティング処理部25、頂点並換え装置201およびラスタライズ処理部26から構成されている。
これらの構成要素の他に携帯端末装置300には、メモリコントローラ27、フレームメモリ28、液晶表示コントローラ(LCDC)29、インタフェース42、サウンドプロセスユニット(以下で単にSPUという)44などが設けられている。この例で波線で囲んだ部分が1チップに集積化されるものである。もちろん、ベジエ分割装置101や、頂点並換え装置201、SPU44などは個別にICチップ化して同一プリント基板上に実装してもよい。
図48に示すバス41にはベジエ分割装置101、メインメモリ105、CPU40、インタフェース42、入力コントローラ43、SPU44およびROM45などが接続されている。ROM45は第1および第2の実施形態で接続した制御手順や、メインメモリ105、SPU44等の管理を行ういわゆるオペレーティングシステム等のプログラム情報を格納したものである。
この例で、インタフェース42にはメモリカートリッジ30などが装着されて使用される。メモリカートリッジ30はゲームデータや、電子アニメーションなどの電子コンテンツを記録したものである。
メモリカートリッジ30はたとえば、バス34を有しており、このバス34にインタフェース31、読出しコントロール用のマスクROM32およびコンテンツ記録用のEEPROM33などが接続されている。EEPROM33にはゲームデータなどのプログラム情報や映像素材情報が記録されている。
このメモリカートリッジ30の内容はインタフェース42およびバス41を通してメインメモリ105に転送される。
メモリカートリッジ30から転送されてきたゲームキャラタの、たとえば、第1の実施形態で説明したn次のベジエ曲面やベジエ曲線などを生成するための制御点の座標値が記憶される(図34参照)。
メインメモリ105は、ランダムアクセスメモリ(RAM:Random Access Memory)からなる。ここでいうメインメモリ105は、そのメモリ上でプログラムを実行できるものをいう。
このメインメモリ105にはバス41を通してベジエ分割装置17が接続され、メインメモリ105から読み出した制御点の座標値に基づいてn次の曲面図形を画像処理するようになされる。ベジエ分割装置17は第1の実施形態で説明した浮動小数点の線形補間器を有しており、23ビット幅の制御点の座標値A,Bと、8ビット幅で0≦t≦1の値をとる補間係数tとに基づき、これらの制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算するようになされる。線形補間器の内部構成例およびその機能については図4で説明した通りであるのでその説明を省略する。これらの制御手順はROM45に記述されており、アプリケーション実行時にCPU40によって読み出される。
上述のバス41にはベジエ分割装置17を制御するために入力コントローラ(INTC)43が接続され、この入力コントローラ43には操作ボタン39が装備されている。この操作ボタン39はユーザによって操作される。操作ボタン39を操作すると入力コントローラ43で操作情報D3が発生され、この操作情報D3はバス41を通してCPU40に入力するようになされる。
CPU40は操作情報D3に基づいてメインメモリ18から頂点情報Cinを読み出すと共に、この頂点情報Cinに関して、その曲線図形および曲面図形を変化させるような表示制御を実行する。
CPU40はROM45に記憶されているオペレーティングシステムを実行することにより、この携帯端末装置300の全体を制御するもので、たとえば、32ビットのRISC−CPUから構成される。
そして、この携帯端末装置300は電源が投入されると、ゲームモードまたは番組再生モードに応じてCPU40がROM45に記憶されているオペレーティングシステムを実行することにより、CPU40がベジエ分割装置17や、SPU44等の制御を行うようになっている。
このCPU40は割込み制御を行うので、制御負担を軽減するために、ダイレクトメモリアクセス(DMA:Direct Memory Access)転送用の制御装置を別に設けるようにしてもよい。
このベジエ分割装置101にはライティング処理部25と座標変換&クリップコード付加部24とが接続されている。
ライティング処理部25ではCPU40からの演算要求に応じて、図33に示した演算器(外積)106から得られる頂点P0の法線ベクトルzと、予め設定された光源ベクトルとの内積(cosθ)を演算して光色を算出するようになされる(光源計算)。
また、座標変換&クリップコード付加部24では、ポリゴン描画命令に基づいて頂点P0の座標値がスクリーン座標(映像表示)系の座標値に変換されると共に、図39および図41で説明したクリップコードが頂点情報Cinに付加される。この例でも、頂点情報Cinは76バイトで1ポリゴンの形状データを構成するようになされる(図44参照)。
この座標変換&クリップコード付加部24にはジオメトリトランスファエンジン(GTE:Geometry Transfer Engine)などの並列演算器が用いられ、CPU40からの演算要求に応じて座標変換、行列あるいはベクトル等の演算処理が高速に行われる。
具体的には、この並列演算器により、たとえば1つの三角形状のポリゴンに同じ色で描画するフラットシェーディングを行う演算の場合では、1秒間に最大150万程度のポリゴンの座標演算を行うことができ、これによって、この携帯端末装置300では、CPU40の負荷を低減するとともに、高速な座標演算を行うことができる。
この座標変換&クリップコード付加部24には頂点並換え装置201が接続され、少なくとも、図35に示したような2ライン分のメモリ21A,21Bを有して頂点情報Cinが記憶される。
頂点並換え装置201にはグラフィックプロセッサユニット(GPU:Graphic Processing Unit )などが使用され、CPU40からの描画指示に従って頂点並び換えが行われる。
頂点並換え装置201は、座標変換されたm個の頂点情報Cinを順次1ライン目のメモリ領域に書き込むと共に、次のm個の頂点情報Cinを2ライン目のメモリ領域に書き込む。
その後、1ライン目で各々隣接する2個ずつの頂点情報Cinと2ライン目で各々隣接する2個ずつの頂点情報Cinとにより形成されるm−1個の四角形を斜めに分割した2(m−1)個の三角形情報Coutを順次読み出す。
さらに、頂点並換え装置201は、図409で説明したようなクリップ領域CLから外れる三角形情報Coutを判定する。頂点並換え装置201は、三角形の頂点P0が1つでもクリップ領域CL内にある場合には、三角形情報Coutをレンダリング処理に含め、これら三角形の全ての頂点がクリップ領域CL外にある場合には、この三角形情報Coutをレンダリング処理から除外する。
この頂点並換え装置201にはラスタライズ処理部26が接続され、座標変換後の頂点情報Cinが1ポリゴン毎にラスタライズ処理され、1画素のカラーテクスチャアドレス(U,V)が算出される。このラスタライズ処理部26にはメモリコントローラ27を通してフレームメモリ28が接続され、このメモリコントローラ27にはLCDC29を通して液晶表示モニタ36が接続されている。
メモリコントローラ27ではラスタライズ処理部26からフレームメモリ28へ液晶表示モニタ36の1画面分の表示データが書き込まれる。たとえば、メモリコントローラ27は、CPU40からの描画命令に従って、フレームメモリ28に対して多角形(ポリゴン)等の描画を行う。
このメモリコントローラ27は、1秒間に最大36万程度のポリゴンの描画を行うことができるようになっている。さらに、このフレームメモリ28は、いわゆるデュアルポートRAMからなり、メモリコントローラ27からの描画処理と、表示のための読み出しとを同時に行うことができるようになっている。
このフレームメモリ28は、たとえば1Mバイトの容量を有し、それぞれ16ビットの、横が1024画素、縦が512画素からなるマトリックスとして扱われる。
また、このフレームメモリ28には、映像出力として展開される表示領域の他に、メモリコントローラ27がポリゴン等の描画を行う際に参照するカラールックアップテーブル(CLUT:Color Look Up Table )が記憶されるCLUT領域と、描画時に座標変換されてメモリコントローラ27によって描画されるポリゴン等の中に挿入(マッピング)される素材(テクスチャ)が記憶されるテクスチャ領域が設けられている。これらのCLUT領域とテクスチャ領域は、表示領域の変更等に従って動的に変更されるようになっている。
なお、このメモリコントローラ27はラスタライズ処理部26と共に、上述のフラットシェーディングの他にポリゴンの頂点の色から補完してポリゴン内の色を決めるグーローシェーディングと、このテクスチャ領域に記憶されているテクスチャをポリゴンに張り付けるテクスチャマッピングを行うことができるようになっている。これらのグーローシェーディングまたはテクスチャマッピングを行う場合には、この座標変換&クリップコード付加部24は、1秒間に最大50万程度のポリゴンの座標演算を行うようになされる。
上述のメモリコントローラ27からの表示データはLCDC29で映像出力信号φvに変換され、この映像出力信号φvが液晶表示モニタ36に出力される。液晶表示モニタ36ではたとえば、3次のベジエ曲面やスプライン曲面から成るゲームキャラクタを3次元表示するようになされる。
また、SPU44ではCPU40からの指示に基づいて、ゲームや電子アニメーションに係る音声情報を再生し増幅などが行われてその音声信号がスピーカー37に出力される。
SPU44内に波形データ等を記録したサウンドバッファなどを設け、楽音、効果音等を発生するようにしてもよい。サウンドバッファを設けた場合には、SPU44で、たとえば16ビットの音声データを4ビットの差分信号として適応予測符号化(ADPCM:Adaptive Differential PCM )された音声データを再生(ADPCM復号機能)したり、サウンドバッファに記憶されている波形データを再生することにより、効果音等を発生(再生機能)したり、サウンドバッファに記憶されている波形データを変調させて再生(変調機能)することもできるようになる。
このような機能を備えることによって、このSPU44は、CPU40からの指示によって記録された波形データに基づいて楽音、効果音等を発生するいわゆるサンプリング音源として使用することができる。
続いて、携帯端末装置300の動作例について説明をする。
図49は、携帯端末装置300における処理例を示すフローチャートである。この例では、ゲーム用のメモリカートリッジ30を装着してゲームモードを実行することを想定する。ゲームデータには3次のベジエ曲面により構成されるキャラクタが準備され、ベジエ分割装置17では線形補間器により制御点の座標値が分割され、頂点並換え装置では三角形動作モードにより頂点情報Cinが並び換えられることを前提とする。
これを前提にして、図49のフローチャートのステップF1でユーザは当該携帯端末装置300にメモリカートリッジ30を装着した後に、ステップF2で電源をオンする。ここで電源が投入されると、CPU40がROM45に記憶されているオペレーティングシステムを実行することにより、ベジエ分割装置17や、SPU44等の制御を行うようになされる。この例ではユーザはステップF3でゲームモードを選択する。このアプリケーション実行時にCPU40によってROM45から第1および第2の実施形態で説明した制御手順が読み出される。
そして、一方で、ユーザはステップF4で操作ボタン39を操作する。操作ボタン39が操作されると、入力コントローラ43およびバス41を通してCPU40に操作情報D3が入力される。この操作情報D3はゲームキャラタを構成する3次のベジエ曲面やベジエ曲線などを変形させたり、キャラクタを移動させたりするために使用される。
この操作情報D3の入力に並行して、CPU40はステップF5〜ステップF10で操作情報D3に基づいてメインメモリ18から頂点情報Cinを読み出すと共に、この頂点情報Cinに関して、その3次の曲線図形および曲面図形を変化させるような表示制御を実行するようになされる。
つまり、ステップF5ではメモリカートリッジ30からプログラム情報および映像素材情報から成るゲームデータが読み出され、メインメモリ105に転送される。この映像素材情報には、ゲームキャラタを構成する3次のベジエ曲面やベジエ曲線などを生成するための制御点の座標値が含まれている(図34参照)。
このゲームデータがメインメモリ105に転送されると、ステップF6に移行してベジエ分割装置101では操作情報D3に基づいてメインメモリ105から読み出した制御点の座標値に基づいて3次の曲面図形を画像処理するようになされる。たとえば、ベジエ分割装置101の浮動小数点の線形補間器により、23ビット幅の制御点の座標値A,Bと、8ビット幅で0≦t≦1の値をとる補間係数tとに基づき、これらの制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算するようになされる。
そして、ステップF7ではCPU40からのポリゴン描画命令に基づいて頂点P0の座標値が座標変換&クリップコード付加部24により、スクリーン座標(映像表示)系の座標値に変換されると共に、図39および図41で説明したクリップコードが頂点情報Cinに付加される。たとえば、フラットシェーディングの場合に、1秒間に最大150万程度のポリゴンの座標演算が行われる。
これに並行してステップF8ではCPU40からの演算要求に応じてライティング処理部25により、図33に示した演算器(外積)106から得られる頂点P0の法線ベクトルzと、予め設定された光源ベクトルとの内積(cosθ)を演算して光色を算出する(光源計算)。
その後、ステップF9に移行してCPU40からの描画命令に応じて頂点並換え装置201では、座標変換されたm個の頂点情報Cinを順次1ライン目のメモリ領域に書き込むと共に、次のm個の頂点情報Cinを2ライン目のメモリ領域に書き込む。
その後、1ライン目で各々隣接する2個ずつの頂点情報Cinと2ライン目で各々隣接する2個ずつの頂点情報Cinとにより形成されるm−1個の四角形を斜めに分割した2(m−1)個の三角形情報Coutを順次読み出す。
さらに、頂点並換え装置201は、図40で説明したようなクリップ領域CLから外れる三角形情報Coutを判定する。頂点並換え装置201は、三角形の頂点P0が1つでもクリップ領域CL内にある場合には、当該三角形情報Coutをレンダリング処理に含め、これら三角形の全ての頂点がクリップ領域CL外にある場合には、当該三角形情報Coutをレンダリング処理から除外する。
その後、ステップF10では座標変換後の頂点情報Cinがラスタライズ処理部26により、1ポリゴン毎にラスタライズ処理され、1画素のカラーテクスチャアドレス(U,V)が算出される。
そして、ステップF11に移行してメモリコントローラ27ではラスタライズ処理部26からフレームメモリ28へ液晶表示モニタ36の1画面分の表示データが書き込まれる。たとえば、メモリコントローラ27は、CPU40からの描画命令に従って、フレームメモリ28に対して1秒間に最大36万程度のポリゴンの多角形(ポリゴン)等の描画が行われる。
ここで、メモリコントローラ27がポリゴン等の描画を行う際に、テクスチャ領域やカラールックアップテーブルなどが参照され、フラットシェーディング処理、グーローシェーディング処理、テクスチャマッピング処理等を行う。
この映像表示処理による表示データはLCDC29で映像出力信号φvに変換され、この映像出力信号φvが液晶表示モニタ36に出力される。液晶表示モニタ36ではたとえば、3次のベジエ曲面から成るゲームキャラクタを3次元表示するようになされる。この映像表示処理に伴う音声情報はCPU40からの指示に基づいて、SPU44により再生され増幅され、その音声信号がスピーカー37に出力される。これにより、ユーザは携帯端末装置300でゲームを楽しむことができる。
なお、ゲームが終わると、ステップF12に移行してゲームモードを終了するか否かがCPU40により判断される。ゲームモードを終了する場合には、電源オフ情報などがCPU40により検出されるので、これらの情報処理を終了する。ユーザがゲームモードの繰り返しなどを操作ボタン39を操作してCPU40に指示した場合には、ステップF4およびステップF5に戻って、上述したステップF4〜ステップF11が繰り返される。
これにより、ユーザは携帯端末装置300で何度もゲームを楽しむことができる。
このように、本発明に係る実施例としての携帯端末装置300によれば、第1および第2の画像処理装置100、200が応用されるので、ソフトウエアに依存することなく、外部からの操作情報D3とハードウエアにより処理された三角形情報Coutとに基づいてゲームキャラクタなどのベジエ曲面を高速に情報処理することができる。
このベジエ曲面を小規模なハードウエアによって処理することができるだけではなく、同時に後段のライティング処理部25で必要な法線ベクトルも算出することができる。また、クリップ判定を頂点並び換えと同時に簡単に行うことができ、クリップ領域CLに一部でも入る可能性のない三角形情報Coutを除去できる。
従って、無駄な三角形情報Coutをレンダリング処理しなくても済み、当該携帯端末装置300の性能を向上させることができる。これにより、今まで、曲面処理が困難であった携帯端末装置300等でベジエ曲面処理を導入することができる。
しかも、ベジエ分割装置101を構成する線形補間器を小規模な回路構成によって実現できるし、小規模なメモリ構成によって頂点並換え装置201を実現できる。従って、高性能かつ低消費電力動作が可能な携帯端末装置300や、ゲーム機能付きの携帯電話機を提供することができる。
また、本実施例に係るROM45によれば、ベジエ分割装置101や頂点並換え装置201を制御手順に基づいてタイミング良く制御できるので、n次の曲面図形を全てハードウエアで処理・描画することが可能となる。ソフトウエアによるオーバーヘッドが無くなるので、非常に高性能な携帯端末装置300を構成することができる。
この発明は、ベジエ曲線やベジエ曲面などの図形情報を取り扱うCADおよびCAMシステムを導入したエンタテインメント装置や、携帯用ゲーム機、携帯端末装置および携帯電話機などに適用して極めて好適である。
本発明に係る第1の実施形態としての図形情報生成装置の構成例を示すブロック図である。 頂点の座標値生成時の(n+1)×(n+1)個の制御点p0〜pn(n+2)の配置例を示す図である。 図1の補間処理部の構成例を示す図である。 浮動小数点による座標値のデータフォーマット例を示す図である。 線形補間器の内部構成例を示すブロック図である。 U−V座標系における4×4個の制御点p0〜p15の配置例を示す図である。 3次のベジエ曲面の図形例を示すイメージ図である。 (A)および(B)は3次のベジエ曲面図形の頂点の座標値の生成例(その1)を示す遷移図である。 (A)および(B)は3次のベジエ曲面図形の頂点の座標値の生成例(その2)を示す遷移図である。 (A)〜(C)は3次のベジエ曲面図形の頂点の座標値の生成例(その3)を示す遷移図である。 図形情報生成装置における動作例を示すフローチャートである。 (A)〜(C)は3次のベジエ曲面図形の頂点P0の法線ベクトルの生成例を示す遷移図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図であって、3次曲面の制御点であり、v 方向に補間する場合を示している。線分は補間される頂点の対応を表わし、線分に添えられた値はその係数を示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図であって、処理により得られた補間点を示し、これらを v 方向に補間する場合の頂点の対応と補間係数を示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図であって、処理により得られた補間点を示し、これらを u 方向に補間する場合の頂点の対応と補間係数を示図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図であって、処理で得られた補間点を示し、これらをu方向に補間する場合の頂点の対応と補間係数を示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図であって、処理により得られた補間点を示し、これらをu方向に補間する場合の頂点の対応と補間係数を示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図であって、処理により得られた補間点を示し、係数で補間することで求める曲面上の点が得られることを示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図であって、補間処理において、補間される2つの点が同値と判断され、かつ補間係数が 0 もしくは 1 の場合に式5に示されるように例外処理が行われることを示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図である。 本実施形態における例外的処理を含む補間処理の概念を段階的に示す図である。 補間処理におけるU方向接線ベクトル、V方向接線ベクトルの基本的な処理を概念的に示す図である。 補間処理におけるU方向接線ベクトル、V方向接線ベクトルが略ゼロとなる場合を概念的に示す図である。 補間処理におけるU方向接線ベクトル、V方向接線ベクトルが略ゼロとなる場合の例外処理の効果を概念的に示す図である。 補間処理におけるU方向接線ベクトル、V方向接線ベクトルが略平行となる場合を概念的に示す図である。 補間処理におけるU方向接線ベクトル、V方向接線ベクトルが略平行となる場合の例外処理の効果を概念的に示す図である。 頂点を境界線上で対称に共有する曲面同士を接続する場合を概念的に示す図である。 頂点を境界線上で対称に共有する曲面同士を接続する場合に対応した丸め制御の効果を概念的に示す図である。 本発明に係る実施形態としての第1の画像処理装置の構成例を示すブロック図である。 メインメモリの記録内容例を示すイメージ図である。 本発明に係る第2の実施形態としての図形情報変換装置の構成例を示すブロック図である。 m=8における図形情報変換例を示すイメージ図である。 (A)および(B)は三角形情報Coutおよび四角形情報Cout'の出力例を示すイメージ図である。 液晶表示モニタなどのクリップ領域例を示す仮想表示空間のイメージ図である。 スクリーン座標系xs,ysにおけるクリップ領域と4ビットのクリップコードの関係例を示す対応図である。 クリップコードによる判定結果例を示すイメージ図である。 スクリーン座標系ys,zsにおけるクリップ領域と奥行きコードを含めた6ビットのクリップコードの関係例を示す対応図である。 本発明に係る実施形態としての図形情報変換装置における動作例を示すフローチャートである。 本発明に係る実施形態としての第2の画像処理装置の構成例を示すブロック図である。 1ポリゴン(三角形)の形状データの記録内容例を示すデータフォーマットである。 三角形状のポリゴンの構成例を示すイメージ図である。 三角形情報Coutのラスタライズ処理例を示すイメージ図である。 第2の画像処理装置における処理例を示すフローチャートである。 本発明に係る実施例としての携帯端末装置の構成例を示すブロック図である。 携帯端末装置における処理例を示すフローチャートである。 一般的な3次のベジエ曲線の例(その1)を示す図である。 3次のベジエ曲線の例(その2)を示す図である。 3次のベジエ曲面の例(その1)を示す図である。 3次のベジエ曲面の例(その2)を示す図である。
符号の説明
10…図形情報生成装置、11…制御頂点メモリ部、12…補間係数メモリ部、13…補間入力選択部、14…補間係数選択部、15…補間処理部、16…補間結果メモリ部、17…法線算出部、20…図形情報変換装置、100…第1の画像処理装置、200…第2の画像処理装置、300…携帯端末装置(情報処理装置)

Claims (19)

  1. 水平方向に(n+1[ただし、n≧2])個の制御点および垂直方向に(n+1)個の制御点を格子状に与え、この格子状の制御点からn次の曲面図形を表現するための頂点の座標値を生成する図形情報生成装置であって、
    所定のビット幅の制御点の座標値A,Bと、所定のビット幅で0≦t≦1の値をとる補間係数tとに基づき、前記制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算する補間処理部と
    前記補間処理部の補間結果に基づいて法線を算出する法線算出部と、を有し、
    前記補間処理部は、
    i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により所定の式で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について所定の式に基づく再帰的補間処理を行うことにより算出し、
    前記法線算出部は、
    前記補間処理部の処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算し、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする
    図形情報生成装置。
  2. 前記補間処理部は、補間係数 0.5 を軸として丸め誤差が対称となるように補間係数を有限精度に丸める処理を行う
    請求項1記載の図形情報生成装置。
  3. 前記法線算出部は、
    対点の算出における各補間係数を 0.5 より大きい値を 0 に、0.5 より小さい値を 1 に、0.5 の場合には 0, 1 のどちらかに固定的に置き換えたもので対点の算出および外積計算を行った結果を法線とする
    請求項1記載の図形情報生成装置。
  4. 前記法線算出部は、外積ベクトルの要素毎にしきい値比較を行い全ての要素がしきい値よりも小さい場合に代替法線を採用する
    請求項記載の図形情報生成装置。
  5. 前記法線算出部は、
    ×2個の新たな制御点の座標値から前記頂点の水平方向に接線ベクトルおよび垂直方向に接線ベクトルを抽出し、
    水平方向および垂直方向接線ベクトルに基づいて前記頂点における法線ベクトルを求める
    請求項記載の図形情報生成装置。
  6. 水平方向に(n+1[ただし、n≧2])個の制御点および垂直方向に(n+1)個の制御点を格子状に与え、この格子状の制御点から生成されたn次の曲面図形を画像処理する画像処理装置であって、
    前記制御点の座標値を記憶する記憶装置と、
    前記記憶装置から読み出した制御点の座標値に基づいて前記n次の曲線図形および曲面図形を表現するための頂点の座標値を生成する図形情報生成装置と、を有し、
    前記図形情報生成装置は、
    所定のビット幅の制御点の座標値A,Bと、所定のビット幅で0≦t≦1の値をとる補間係数tとに基づき、前記制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算する補間処理部と、
    前記補間処理部の補間結果に基づいて法線を算出する法線算出部と、を有し、
    前記補間処理部は、
    i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により所定の式で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について所定の式に基づく再帰的補間処理を行うことにより算出し、
    前記法線算出部は、
    前記補間処理部の処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算し、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする
    画像処理装置。
  7. 前記補間処理部は、補間係数 0.5 を軸として丸め誤差が対称となるように補間係数を有限精度に丸める処理を行う
    請求項記載の画像処理装置。
  8. 前記法線算出部は、
    対点の算出における各補間係数を0.5より大きい値を0に、0.5より小さい値を1に、0.5の場合には 0, 1 のどちらかに固定的に置き換えたもので対点の算出および外積計算を行った結果を法線とする
    請求項記載の画像処理装置。
  9. 前記法線算出部は、外積ベクトルの要素毎にしきい値比較を行い全ての要素がしきい値よりも小さい場合に代替法線を採用する
    請求項記載の画像処理装置。
  10. 前記法線算出部は、
    ×2個の新たな制御点の座標値から前記頂点の水平方向に接線ベクトルおよび垂直方向に接線ベクトルを抽出し、
    水平方向および垂直方向接線ベクトルに基づいて前記頂点における法線ベクトルを求める
    請求項記載の画像処理装置。
  11. 水平方向に(n+1[ただし、n≧2])個の制御点および垂直方向に(n+1)個の制御点を格子状に与え、この格子状の制御点から生成されたn次の曲面図形を外部からの操作情報に基づいて情報処理をする情報処理装置であって、
    前記制御点の座標値を記憶する記憶装置と、
    前記記憶装置から読み出した制御点の座標値に基づいて前記n次の曲面図形を画像処理する画像処理装置と、
    前記画像処理装置を制御するための操作情報を入力するように操作される操作部と、
    前記操作部による操作情報に基づいて前記記憶装置から読み出した曲面図形を変化させるように表示制御する制御装置と、を有し、
    前記画像処理装置は、
    所定のビット幅の制御点の座標値A,Bと、所定のビット幅で0≦t≦1の値をとる補間係数tとに基づき、前記制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算する補間処理部と、
    前記補間処理部の補間結果に基づいて法線を算出する法線算出部と、を有し、
    前記補間処理部は、
    i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により所定の式で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について所定の式に基づく再帰的補間処理を行うことにより算出し、
    前記法線算出部は、
    前記補間処理部の処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算し、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする
    情報処理装置。
  12. 前記補間処理部は、補間係数 0.5 を軸として丸め誤差が対称となるように補間係数を有限精度に丸める処理を行う
    請求項11記載の情報処理装置。
  13. 前記法線算出部は、
    対点の算出における各補間係数を 0.5 より大きい値を 0 に、0.5 より小さい値を 1 に、0.5 の場合には 0, 1 のどちらかに固定的に置き換えたもので対点の算出および外積計算を行った結果を法線とする
    請求項11記載の情報処理装置。
  14. 前記法線算出部は、外積ベクトルの要素毎にしきい値比較を行い全ての要素がしきい値よりも小さい場合に代替法線を採用する
    請求項11記載の情報処理装置。
  15. 前記法線算出部は、
    ×2個の新たな制御点の座標値から前記頂点の水平方向に接線ベクトルおよび垂直方向に接線ベクトルを抽出し、
    水平方向および垂直方向接線ベクトルに基づいて前記頂点における法線ベクトルを求める
    請求項11記載の情報処理装置。
  16. 水平方向に(n+1[ただし、n≧2])個の制御点および垂直方向に(n+1)個の制御点を格子状に与え、この格子状の制御点からn次の曲面図形を表現するための頂点の座標値を生成する図形情報生成方法であって、
    選択部により補間処理部に対して、所定のビット幅の(n+1)×(n+1)個の制御点の座標値を入力すると共に、所定のビット幅で0≦t≦1の値をとる補間係数(1−t)を入力し、
    上記補間処理部において、隣接する各々2つの前記制御点の座標値をA,Bとしたとき、
    前記水平方向で隣接する各々2つの制御点間について、それぞれA×(1−t)+B×tを順次演算してn×(n+1)個の新たな制御点の座標値を求め、さらに前記水平方向で隣接する新たな各々2つの制御点間についてそれぞれA×(1−t)+B×tを順次演算することにより、最終的に2×(n+1)個の新たな制御点の座標値を求め、
    その後、前記垂直方向で隣接する各々2つの制御点間についてそれぞれA×(1−t)+B×tを順次演算して2×n個の新たな制御点の座標値を求め、さらに前記垂直方向で隣接する新たな各々2つの制御点間についてそれぞれA×(1−t)+B×tを順次演算することにより、最終的に2×2個の新たな制御点の座標値を求め、
    その後、前記水平方向および垂直方向に関して前記2×2個の制御点間について、それぞれA×(1−t)+B×tを順次演算し、前記頂点の座標値を求め、
    i, j が 0 から N の整数で定義される制御点 Pi,j、および制御変数 u, v それぞれの関数として [0,1] で定義される補間係数 Um,n, Vm,n により所定の式で表現されるn次曲面について、u, v に対応する曲面上の点の座標値を i, j それぞれの方向の隣接点について所定の式に基づく再帰的補間処理を行い、
    法線算出部において、前記補間処理部における補間結果に基づいて法線を算出するに際し、
    前記補間処理に伴い、最終補間処理の入力となり得る i, j それぞれの方向の対点を結ぶベクトルの外積を計算し、その長さがしきい値以上である場合にはこれを法線とし、そうでない場合には、対点の算出における各補間係数を 0, 1 の任意の値に置き換えたもので対点の算出および外積計算を行った結果を代替法線とする
    図形情報生成方法。
  17. 前記補間処理部において、補間係数 0.5 を軸として丸め誤差が対称となるように補間係数を有限精度に丸める処理を行う
    請求項16記載の図形情報生成方法。
  18. 前記法線算出部において、対点の算出における各補間係数を0.5より大きい値を0に、0.5より小さい値を1に、0.5の場合には0, 1のどちらかに固定的に置き換えたもので対点の算出および外積計算を行った結果を法線とする
    請求項16記載の図形情報生成方法。
  19. 前記法線算出部において、外積ベクトルの要素毎にしきい値比較を行い全ての要素がしきい値よりも小さい場合に代替法線を採用する
    請求項16記載の図形情報生成方法。
JP2004350381A 2004-12-02 2004-12-02 図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法 Expired - Fee Related JP4556646B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004350381A JP4556646B2 (ja) 2004-12-02 2004-12-02 図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004350381A JP4556646B2 (ja) 2004-12-02 2004-12-02 図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法

Publications (2)

Publication Number Publication Date
JP2006163532A JP2006163532A (ja) 2006-06-22
JP4556646B2 true JP4556646B2 (ja) 2010-10-06

Family

ID=36665514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004350381A Expired - Fee Related JP4556646B2 (ja) 2004-12-02 2004-12-02 図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法

Country Status (1)

Country Link
JP (1) JP4556646B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2893729C (en) 2012-12-04 2019-03-12 Samsung Electronics Co., Ltd. Audio providing apparatus and audio providing method
CN112017114B (zh) * 2020-06-08 2023-08-04 武汉精视遥测科技有限公司 一种隧道检测半幅图像拼接全幅图像的方法及系统
CN114266148B (zh) * 2021-12-15 2024-09-10 成都飞机工业(集团)有限责任公司 一种用于航空结构件曲面群孔加工的patch设计方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331812A (ja) * 2000-05-18 2001-11-30 Sony Corp 図形情報生成装置、画像処理装置、情報処理装置、図形情報生成方法及び記録媒体
JP2002152498A (ja) * 2000-10-11 2002-05-24 Neucore Technol Inc 画像処理方法および装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05342311A (ja) * 1992-06-05 1993-12-24 Fujitsu Ltd 曲面の空間分割方式
JPH07311858A (ja) * 1994-05-18 1995-11-28 Sony Corp 自由曲面作成方法及び自由曲面作成装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331812A (ja) * 2000-05-18 2001-11-30 Sony Corp 図形情報生成装置、画像処理装置、情報処理装置、図形情報生成方法及び記録媒体
JP2002152498A (ja) * 2000-10-11 2002-05-24 Neucore Technol Inc 画像処理方法および装置

Also Published As

Publication number Publication date
JP2006163532A (ja) 2006-06-22

Similar Documents

Publication Publication Date Title
US6600485B1 (en) Polygon data generation method and image display apparatus using same
JP3021368B2 (ja) 画素の法線ベクトルを用いたバンプマッピングレンダリング方法及びそれを具現するレンダリング装置
US8217962B2 (en) Single-pass bounding box calculation
US7903112B2 (en) Drawing processing apparatus, texture processing apparatus, and tessellation method
JP4046233B2 (ja) 情報処理装置
US8471852B1 (en) Method and system for tessellation of subdivision surfaces
US20140071124A1 (en) Image processing apparatus
US6791544B1 (en) Shadow rendering system and method
JP3604312B2 (ja) ビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体、ビデオゲームにおけるオブジェクト描画方法及びビデオゲーム装置
JP4483025B2 (ja) 画像処理装置、情報処理装置
US7015930B2 (en) Method and apparatus for interpolating pixel parameters based on a plurality of vertex values
US7068273B2 (en) Recording medium which stores 3D image processing program, 3D image processor, 3D image processing method, and video game machine
JP4556646B2 (ja) 図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法
JP3985321B2 (ja) 演算装置および画像処理装置
US7015917B2 (en) Curved surface subdivision apparatus
US20040046764A1 (en) Pixel delta interpolation method and apparatus
JP4483026B2 (ja) 図形情報変換装置、図形情報変換方法及び記録媒体
US20100302259A1 (en) Drawing data processing method, graphics drawing system and graphics drawing data generation program
JP4581261B2 (ja) 演算装置、演算処理方法及び画像処理装置
JP3979162B2 (ja) 画像処理装置およびその方法
US6940520B2 (en) Anisotropic texture filtering method and apparatus using area coverage weight of sub-texel precision
JP4468974B2 (ja) 画像生成装置、画像生成方法ならびに、プログラム
JP3268484B2 (ja) シェーディング方法およびシェーディング装置
JP2002541600A (ja) 透視変換する装置及び方法
JP4479957B2 (ja) 曲面細分割装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100518

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100629

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100712

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees