説明

描画制御装置、描画制御方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体

【課題】2次元イメージデータの3次元的回転表示を高速に行なうことが可能な描画制御装置を提供すること。
【解決手段】座標変換部22は、2次元イメージの座標を3次元座標に変換する。透視変換部24は、座標変換部22によって3次元座標に変換された3次元形状を2次元座標に透視変換する。領域算出部26は、透視変換部24によって透視変換された後の2次元形状を分割した複数の矩形領域それぞれを転送先領域とし、それに対応する2次元イメージの矩形領域を転送元領域として算出する。そして、BitBlt処理部27は、領域算出部26によって算出された転送元領域と転送先領域とに基づいてビットブロック転送を順次行なうことにより、擬似3次元イメージを描画する。したがって、3Dアクセラレータを搭載しない組み込み環境においても、2次元イメージデータの3次元的回転表示を高速に行なうことが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、図形や文字などを描画する描画処理技術に関し、特に、グラフィックス機能として搭載された2D(2次元)エンジンを用いて、3D(3次元)空間でイメージデータを回転させた場合のイメージを擬似的に生成する描画制御装置、描画制御方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータ、携帯端末などの情報処理装置の高機能化、多機能化が進んでおり、表示画面における描画処理にも高い処理能力が要求されるようになってきている。このような情報処理装置において、描画処理速度を向上させるために、2Dエンジンや3Dエンジンを搭載することが多い。
【0003】
情報処理装置に3Dアクセラレータを搭載している場合、BMP(ビットマップ)などの2次元イメージデータを3次元的に回転表示させるには、テクスチャマッピングを用いてこれを行なうことが可能である。また、3Dアクセラレータを搭載していない場合には、3次元処理を全てソフトウェアで実現するソフトウェア・レンダリングを用いるのが一般的である。
【0004】
これに関連する技術として、下記の特許文献1〜4に開示された発明がある。
特許文献1は、1次元アクセスの通常の小型のメモリ回路と単純な変換回路およびプログラムだけで、ほぼ同等の処理速度で、2値画像のアフィン変換を実行できる方法および装置を提供することを目的とする。画像のアフィン変換処理方法は、直交座標系で記憶されている画像データに対し、それぞれx軸方向へずれた平行四辺形に変換(斜交軸変換)する第1のステップと、y軸方向への拡大または縮小を実行する第2のステップと、90度回転する第3のステップとを交互に所定回数実行するものである。
【0005】
特許文献2は、ガマットマッピングにより得られたある表色系における色立体を、他の表色系に簡易な操作で変換して表示する手段を提供することを目的とする。階層ツリーウィンドウには、表示されている第1の表色系に対応するウィンドウ、第2の表色系に対応するウィンドウそれぞれに対応するノードと、それぞれのウィンドウ内に表示されている、ガマットマッピングにより得られた各表色系の色立体に対応するノードがツリー構造で表示される。操作者が、色立体に相当するオブジェクトを選択してドラッグし、いずれかのウィンドウに相当するオブジェクト上にドロップすると、移動された色立体は、ドロップされたウィンドウの表色系に座標変換されて、そのウィンドウに色立体として表示される。
【0006】
特許文献3は、ビットブリット処理過程で、αブレンディングなどの画像処理を行うことが可能な画像処理装置を提供することを目的とする。第1のセレクタが、プリミティブデータ、ホスト・ローカル転送用の画像データおよびディスティネーションデータの中から一つを選択してαブレンド回路に出力する。αブレンド回路は、制御信号に基づいて、入力した画像データのαブレンディング処理をオン/オフする。第2のセレクタは、2つの画像データのうち一方を選択して、DRAMに書き込む。
【0007】
特許文献4は、変化する領域でのみレンダリングが実行されるグラフィック画像のレンダリング方法を開示する。好ましい形態において、その画像は、複数のオブジェクトを含む。そのレンダリング方法は、各々のオブジェクトが、次のフレームにおいて異なって表示される必要があるように変化したかどうかを判断する第1の判断ステップと、次のフレームにおいて、各々の変化したオブジェクトの境界域を判断する第2の判断ステップと、次のフレームの前のフレームにおいて変化した各々のオブジェクトの境界域を判断する第3の判断ステップと、境界域を結合して、集合領域を形成し、画像を集合領域内でのみレンダリングするレンダリングステップとを備える。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平1−131971号公報
【特許文献2】特開2005−196472号公報
【特許文献3】特開2003−242519号公報
【特許文献4】特表2005−504363号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
テレビ画面やカメラのディスプレイなどのような、3Dアクセラレータを搭載しない組み込み環境において、2次元イメージデータの3次元的回転表示の要求がある。しかしながら、ソフトウェア・レンダリング処理となってしまうため処理性能が低下するといった問題があった。
【0010】
本発明は、上記問題点を解決するためになされたものであり、その目的は、2次元イメージデータの3次元的回転表示を高速に行なうことが可能な描画制御装置、描画制御方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体を提供することである。
【課題を解決するための手段】
【0011】
本発明の一実施例によれば、2次元イメージを3次元空間で回転させた擬似3次元イメージを生成して描画する描画制御装置が提供される。座標変換部は、2次元イメージの座標を3次元座標に変換する。透視変換部は、座標変換部によって3次元座標に変換された3次元形状を2次元座標に透視変換する。領域算出部は、透視変換部によって透視変換された後の2次元形状を分割した複数の矩形領域それぞれを転送先領域とし、それに対応する2次元イメージの矩形領域を転送元領域として算出する。そして、BitBlt処理部は、領域算出部によって算出された転送元領域と転送先領域とに基づいてビットブロック転送を順次行なうことにより、擬似3次元イメージを描画する。
【発明の効果】
【0012】
この実施例によれば、BitBlt処理部が、領域算出部によって算出された転送元領域と転送先領域とに基づいてビットブロック転送を順次行なうことにより、擬似3次元イメージを描画するので、3Dアクセラレータを搭載しない組み込み環境においても、2次元イメージデータの3次元的回転表示を高速に行なうことが可能となる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1の実施の形態における描画制御装置の構成例を示すブロック図である。
【図2】擬似3Dパラメータ生成器の機能的構成を示すブロック図である。
【図3】本発明の第1の実施の形態における描画制御装置の処理手順を説明するためのフローチャートである。
【図4】本発明の第1の実施の形態における描画制御装置が2次元矩形イメージから擬似3次元イメージを生成するときの概要を説明するための図である。
【図5】3次元座標変換の一例を示す図である。
【図6】クリップが必要な場合の回転後の矩形イメージの座標を説明するための図である。
【図7】透視変換後の2次元形状の座標を説明するための図である。
【図8】転送元形状および転送先形状に設定された短冊状の矩形領域を説明するための図である。
【図9】本発明の第2の実施の形態における描画制御装置の処理手順を説明するためのフローチャートである。
【図10】本発明の第2の実施の形態における描画制御装置が2次元矩形イメージから擬似3次元イメージを生成するときの概要を説明するための図である。
【図11】3次元座標変換の一例を示す図である。
【図12】クリップが必要な場合の回転後の矩形イメージの座標を説明するための図である。
【図13】透視変換後の2次元形状の座標を説明するための図である。
【図14】転送元形状および転送先形状に設定された短冊状の矩形領域を説明するための図である。
【図15】本発明の第3の実施の形態における描画制御装置の処理手順を説明するためのフローチャートである。
【図16】転送先形状にクリップ領域が設定された場合の転送元形状および転送先形状に設定された短冊状の矩形領域を説明するための図である。
【図17】本発明の第4の実施の形態における描画制御装置の処理手順を説明するためのフローチャートである。
【図18】転送先形状にクリップ領域が設定された場合の転送元形状および転送先形状に設定された短冊状の矩形領域を説明するための図である。
【発明を実施するための形態】
【0014】
(第1の実施の形態)
図1は、本発明の第1の実施の形態における描画制御装置の構成例を示すブロック図である。この描画制御装置は、演算プロセッサ11と、システムメモリ12と、2D描画プロセッサ13と、描画メモリ14とを含み、これらがシステムバス15を介して接続されている。
【0015】
演算プロセッサ11はCPU(Central Processing Unit)などによって構成され、システムメモリ12に記憶される命令コード(プログラム)やデータを用いて演算処理を行なう。また、演算プロセッサ11は内部メモリ16を有しており、システムメモリ12などに記憶される描画プログラムなどのアプリケーションプログラムや擬似3Dパラメータ生成プログラムを内部メモリ16にロードして実行する。
【0016】
演算プロセッサ11が擬似3Dパラメータ生成プログラムを実行することによって、後述の擬似3Dパラメータ生成器の機能が実現され、描画プログラムによって指定された描画モードに応じて、2D描画プロセッサ13を制御するための擬似3Dパラメータを生成する。なお、擬似3Dパラメータ生成器は、ハードウェアによって実現されてもよく、またソフトウェアとハードウェアとの組み合わせによって実現されてもよい。
【0017】
2D描画プロセッサ13は、アクセラレータ、グラフィックスエンジン、GPU(Graphic Processing Unit)などと呼ばれる画像データ処理に特化した集積回路であり、描画メモリ14を用いて文字や図形を描画する機能の他に、BitBlt(Bit Block Transfer)機能も有している。なお、擬似3Dパラメータ生成器は、2D描画プロセッサ13内にハードウェアとして実装されてもよい。
【0018】
図2は、擬似3Dパラメータ生成器の機能的構成を示すブロック図である。上述のように、演算プロセッサ11が内部メモリ16に記憶される擬似3Dパラメータ生成プログラムを実行することによってこの機能が実現されてもよいし、ハードウェアによって実現されてもよい。
【0019】
擬似3Dパラメータ生成器は、パラメータ設定部21と、座標変換部22と、クリップ処理部23と、透視変換部24と、補間データ作成部25と、領域算出部26と、BitBlt処理部27とを含む。第1の実施の形態において、擬似3Dパラメータ生成器は、2DイメージデータをY軸と平行な回転軸を中心として回転する場合の擬似3Dパラメータを生成するものである。
【0020】
パラメータ設定部21は、2Dイメージデータの回転パラメータとして、回転軸、回転角が0度の場合の画像の位置、回転角度、奥行き、透視具合を取得して座標変換部22に設定する。パラメータ設定部は、描画プログラムからの指示によってこれらの回転パラメータを設定するようにしてもよいし、予めシステムメモリ12や内部メモリ16に格納されているものを取得して設定するようにしてもよい。
【0021】
座標変換部22は、パラメータ設定部21によって設定されたパラメータに基づいて3次元座標変換を行ない、2Dイメージデータを回転したときの座標を3次元座標に変換してクリップ処理部23に出力する。
【0022】
クリップ処理部23は、座標変換部22によって回転された後の3次元形状に対して、奥行き(Z軸)方向のクリップ処理を行なう。
【0023】
透視変換部24は、クリップ処理部23によってクリップ処理された後の形状の3次元座標を2次元座標に透視変換する。
【0024】
補間データ作成部25は、透視変換部24によって透視変換された後の2次元形状の上端エッジおよび下端エッジのY座標を計算するのに必要となる補間データと、奥行き情報としてZ値を計算するのに必要となる補間データとを生成する。
【0025】
補間データ作成部25は、上端エッジのY座標の補間データとして、上端エッジの左側からX軸方向に1ドットずつ移動した場合の上端エッジのY座標の補間値を計算する。同様に、補間データ作成部25は、下端エッジのY座標の補間データとして、下端エッジの左側からX軸方向に1ドットずつ移動した場合の下端エッジのY座標の補間値を計算する。
【0026】
また、補間データ作成部25は、奥行き情報としてZ値をX軸の左側から右側に移動する場合の補間値を計算する。さらに、補間データ作成部25は、転送先形状の補間間隔に対応する転送元形状のX方向の補間値を計算する。
【0027】
領域算出部26は、転送先形状のX軸方向の1ピクセルを幅とし、Y軸方向における上端エッジと下端エッジとの間を高さとした領域を設定する。そして、その領域に対応する転送元形状の矩形領域を算出する。
【0028】
BitBlt処理部27は、領域算出部26によって決定された転送元形状の矩形領域を、転送先形状の矩形領域として転送するBitBlt処理を2D描画プロセッサ13に実行させる。
【0029】
図3は、本発明の第1の実施の形態における描画制御装置の処理手順を説明するためのフローチャートである。図4〜図8を適宜参照しながら、本実施の形態における描画制御装置の処理手順を説明する。
【0030】
図4は、本発明の第1の実施の形態における描画制御装置が2次元矩形イメージから擬似3次元イメージを生成するときの概要を説明するための図である。図4(a)は、転送元形状の一例として2次元矩形イメージ(格子模様)の場合を示している。この2次元矩形イメージは、幅がImageWであり、高さがImageHである。
【0031】
図4(b)は、図4(a)に示す2次元矩形イメージを3次元空間に配置したところを示している。図4(b)において、2次元矩形イメージを回転するときの回転軸(Xrot)と、水平軸(Yv)とが設定される。なお、2次元矩形イメージの左上座標を(0x,0y)とする。
【0032】
図4(c)は、図4(b)に示す2次元矩形イメージを3次元空間で回転軸を中心にθxだけ回転させたところを示している。図4(d)は、図4(c)に示す3次元空間で2次元矩形イメージを回転させた回転形状を2次元に投影したところを示している。
【0033】
本実施の形態における描画制御装置は、図4(a)に示す2次元ソースイメージを転送元イメージとし、図4(d)に示す回転した座標変換後の2次元イメージ(擬似3次元イメージ)を転送先イメージとして2D描画プロセッサ13にBitBlt処理を行なわせるものである。
【0034】
まず、パラメータ設定部21は、図4に示す転送元の2次元矩形イメージのパラメータを設定する(S11)。このパラメータとして、2次元矩形イメージの幅(ImageW=w)、2次元矩形イメージの高さ(ImageH=h)、転送元の2次元矩形イメージの回転角度0°における左上座標(0x,0y)、回転軸のX座標(Xrot)、回転角度(θx)、水平軸のY座標(Yver)、奥行きオフセット(pers)などが設定される。
【0035】
次に、座標変換部22は、パラメータ設定部21によって設定されたパラメータに基づいて、3次元座標変換を行なう(S12)。
【0036】
図5は、3次元座標変換の一例を示す図である。図5(a)は、転送元の2次元矩形イメージを示しており、回転軸と矩形の左端との間の距離をxl、回転軸と矩形の右端との間の距離をxr、水平軸と矩形の上端との間の距離をyt、水平軸と下端との間の距離をybとしている。
【0037】
図5(b)は、図5(a)に示す矩形イメージを3次元的に回転させてY軸方向から見たところを示している。図5(b)においては、奥行き方向のオフセット(pers)分だけ奥行きにシフトし、回転軸を中心にθxだけ回転させた場合を示している。座標変換部22は、回転後の矩形の形状を示す座標xl’、zl’、xr’、zr’を次式によって計算する。
【0038】
xl’=xl×cos(θx) ・・・(1)
zl’=xl×sin(θx)+pers ・・・(2)
xr’=xr×cos(θx) ・・・(3)
zr’=xr×sin(θx)+pers ・・・(4)
また、奥行きZ軸方向にクリップが必要な場合、クリップ処理部23は、クリップ後の座標xl’、zl’、xr’、zr’を計算する(S13)。
【0039】
図6は、クリップが必要な場合の回転後の矩形イメージの座標を説明するための図である。図6においては、奥行きfarClipでクリップしたところを示しており、クリップ処理部23は、zr’をfarClipとし、それに対応するxr’を計算する。なお、図6は、奥の図形をクリップする場合であるが、手前側をクリップする場合にはその奥行きnearClipをzl’とし、それに対応するxl’が計算される。
【0040】
次に、透視変換部24は、3次元座標変換された後の形状を2次元に透視投影変換を行なう(S14)。
【0041】
図7は、透視変換後の2次元形状の座標を説明するための図である。図7に示すように、左端エッジのX座標がxl”、右端エッジのX座標がxr”として表され、上端エッジの左端のY座標がytl、上端エッジの右端のY座標がytr、下端エッジの左端のY座標がybl、下端エッジの右端のY座標がybrとして表される。
【0042】
透視変換部24は、xl”、xr”、ytl、ytr、ybl、ybrを次式によって計算する。
【0043】
xl”=xl’/zl’ ・・・(5)
xr”=xr’/zl’ ・・・(6)
ytl=yt/zl’ ・・・(7)
ytr=yt/zr’ ・・・(8)
ybl=yb/zl’ ・・・(9)
ybr=yb/zr’ ・・・(10)
次に、補間データ作成部25は、透視変換部24によって2次元に投影された形状のY軸方向における上端エッジおよび下端エッジの補間データdytおよびdybを作成し、奥行きZ値の補間データdzを作成する(S15)。上端エッジのY座標の補間データdytは、上端エッジの左端から右端に向かって1ピクセルずつ移動するときのY座標の補間データである。下端エッジのY軸方向の補間データdybは、下端エッジの左端から右端に向かって1ピクセルずつ移動するときのY座標の補間データである。補間データ作成部25は、補間データdyt、dyb、dzを次式によって算出する。
【0044】
dyt=(ytr−ytl)/(xr”−xl”) ・・・(11)
dyb=(ybr−ybl)/(xr”−xl”) ・・・(12)
dz =(zr’−zl’)/(xr”−xl”) ・・・(13)
また、補間データ作成部25は、転送先形状の補間間隔に対応する転送元形状のX方向の補間データduを次式によって作成する(S16)。なお、この補間データduは、3次元グラフィックスのテクスチャマッピングで用いられる透視補正を実施するために、転送元形状のX方向の座標値を対応するZ座標で除算しておく。
【0045】
du=(w×zr’−0×zl’)/(xr”−xl”) ・・・(14)
次に、領域算出部26は、転送先形状となる座標変換後の形状を、左端から右方向に向かってX方向に1ピクセル単位とする短冊状の矩形を作成し、それに対応する転送元の矩形領域(X方向幅)を算出する(S17)。転送先形状の左端からnピクセル目の矩形の左上の座標(xdst,ydst)、幅wdst、高さhdstは、次式によって算出される。
【0046】
xdst=xl”+n ・・・(15)
ydst=ytl+dyt×n ・・・(16)
wdst=1 ・・・(17)
hdst=(ytl+dyt×n)−(ybl+dyb×n) ・・・(18)
また、転送元形状の矩形の左上の座標(xsrc,ysrc)、幅wsrc、高さhsrcは、次式によって算出される。
【0047】
xsrc=(du×n)/(zl”+dz×n) ・・・(19)
ysrc=0y ・・・(20)
wsrc=(du×(n+1))/(zl”+dz×(n+1))−(xsrc)
・・・(21)
hsrc=h ・・・(22)
図8は、転送元形状および転送先形状に設定された短冊状の矩形領域を説明するための図である。図8(a)は、転送元形状の短冊状の矩形領域を示しており、図8(b)に示す転送先形状の1ピクセル幅の短冊状の矩形領域に対応している。図8(b)に示す矩形領域を右方向に1ピクセルずつずらしながら、対応する転送元形状の短冊状の矩形領域が算出される。
【0048】
次に、BitBlt処理部27は、領域算出部26によって算出された矩形データを2D描画プロセッサ13に設定し、2D描画プロセッサ13にBitBltを用いた描画を行なわせる(S18)。
【0049】
最後に、矩形領域のBitBlt処理が右端エッジに達したか否かが判定される(S19)。右端エッジに達していなければ(S19,No)、ステップS17に戻って以降の処理が繰り返される。また、右端エッジに達した場合には(S19,Yes)、処理を終了する。
【0050】
なお、以上の説明においては、左端エッジから右端エッジに向かって矩形データを補間する場合について説明したが、右端エッジから左端エッジに向かって矩形データを補間するようにしてもよい。
【0051】
以上説明したように、本実施の形態における描画制御装置によれば、転送先形状のX方向における1ピクセル単位の短冊状の矩形領域を作成し、それに対応する転送元形状の短冊状の矩形領域を算出して順次BitBlt処理を行なうようにしたので、2Dエンジンのみを搭載し、3Dエンジンを搭載していない環境下においても、擬似的に3D空間でイメージデータを回転させた場合のイメージを高速に描画することが可能となった。
【0052】
(第2の実施の形態)
本発明の第2の実施の形態における描画制御装置の構成は、図1に示す第1の実施の形態における描画制御装置の構成と同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【0053】
なお、本発明の第2の実施の形態における擬似3Dパラメータ生成器の機能的構成は、図2に示す第1の実施の形態における擬似3Dパラメータ生成器の機能的構成と同様である。したがって、図2を用いて第2の実施の形態における擬似3Dパラメータ生成器の説明を行なうことにする。第2の実施の形態において、擬似3Dパラメータ生成器は、2DイメージデータをX軸と平行な回転軸を中心として回転する場合の擬似3Dパラメータを生成するものである。
【0054】
パラメータ設定部21は、2Dイメージデータの回転パラメータとして、回転軸、回転角が0度の場合の画像の位置、回転角度、奥行き、透視具合を取得して座標変換部22に設定する。パラメータ設定部は、描画プログラムからの指示によってこれらの回転パラメータを設定するようにしてもよいし、予めシステムメモリ12や内部メモリ16に格納されているものを取得して設定するようにしてもよい。
【0055】
座標変換部22は、パラメータ設定部21によって設定されたパラメータに基づいて3次元座標変換を行ない、2Dイメージデータを回転したときの座標を3次元座標に変換してクリップ処理部23に出力する。
【0056】
クリップ処理部23は、座標変換部22によって回転された後の3次元形状に対して、奥行き(Z軸)方向のクリップ処理を行なう。
【0057】
透視変換部24は、クリップ処理部23によってクリップ処理された後の形状の3次元座標を2次元座標に透視変換する。
【0058】
補間データ作成部25は、透視変換部24によって透視変換された後の2次元形状の左端エッジおよび右端エッジのX座標を計算するのに必要となる補間データと、奥行き情報としてZ値を計算するのに必要となる補間データとを生成する。
【0059】
補間データ作成部25は、左端エッジのX座標の補間データとして、左端エッジの上側からY軸方向に1ドットずつ移動した場合の左端エッジのX座標の補間値を計算する。同様に、補間データ作成部25は、右端エッジのX座標の補間データとして、右端エッジの上側からY軸方向に1ドットずつ移動した場合の右端エッジのX座標の補間値を計算する。
【0060】
また、補間データ作成部25は、奥行き情報としてZ値をY軸の上側から下側に移動する場合の補間値を計算する。さらに、補間データ作成部25は、転送先形状の補間間隔に対応する転送元形状のY方向の補間値を計算する。
【0061】
領域算出部26は、転送先形状のY軸方向の1ピクセルを高さとし、X軸方向における左端エッジと右端エッジとの間を幅とした領域を設定する。そして、その領域に対応する転送元形状の矩形領域を算出する。
【0062】
BitBlt処理部27は、領域算出部26によって決定された転送元形状の矩形領域を、転送先形状の矩形領域として転送するBitBlt処理を2D描画プロセッサ13に実行させる。
【0063】
図9は、本発明の第2の実施の形態における描画制御装置の処理手順を説明するためのフローチャートである。図10〜図14を適宜参照しながら、本実施の形態における描画制御装置の処理手順を説明する。
【0064】
図10は、本発明の第2の実施の形態における描画制御装置が2次元矩形イメージから擬似3次元イメージを生成するときの概要を説明するための図である。図10(a)は、転送元形状の一例として2次元矩形イメージ(格子模様)の場合を示している。この2次元矩形イメージは、幅がImageWであり、高さがImageHである。
【0065】
図10(b)は、図10(a)に示す2次元矩形イメージを3次元空間に配置したところを示している。図10(b)において、2次元矩形イメージを回転するときの回転軸(Yrot)と、垂直軸(Xh)とが設定される。なお、2次元矩形イメージの左上座標を(0x,0y)とする。
【0066】
図10(c)は、図10(b)に示す2次元矩形イメージを3次元空間で回転軸を中心にθyだけ回転させたところを示している。図10(d)は、図10(c)に示す3次元空間で2次元矩形イメージを回転させた回転形状を2次元に投影したところを示している。
【0067】
本実施の形態における描画制御装置は、図10(a)に示す2次元ソースイメージを転送元イメージとし、図10(d)に示す回転した座標変換後の2次元イメージ(擬似3次元イメージ)を転送先イメージとして2D描画プロセッサ13にBitBlt処理を行なわせるものである。
【0068】
まず、パラメータ設定部21は、図10に示す転送元の2次元矩形イメージのパラメータを設定する(S21)。このパラメータとして、2次元矩形イメージの幅(ImageW=w)、2次元矩形イメージの高さ(ImageH=h)、転送元の2次元矩形イメージの回転角度0°における左上座標(0x,0y)、回転軸のY座標(Yrot)、回転角度(θy)、垂直軸のX座標(Xh)、奥行きオフセット(pers)などが設定される。
【0069】
次に、座標変換部22は、パラメータ設定部21によって設定されたパラメータに基づいて、3次元座標変換を行なう(S22)。
【0070】
図11は、3次元座標変換の一例を示す図である。図11(a)は、転送元の2次元矩形イメージを示しており、回転軸と矩形の上端との間の距離をyr、回転軸と矩形の下端との間の距離をyl、垂直軸と矩形の左端との間の距離をxt、垂直軸と右端との間の距離をxbとしている。
【0071】
図11(b)は、図11(a)に示す矩形イメージを3次元的に回転させてX軸方向から見たところを示している。図11(b)においては、奥行き方向のオフセット(pers)分だけ奥行きにシフトし、回転軸を中心にθyだけ回転させた場合を示している。座標変換部22は、回転後の矩形の形状を示す座標yl’、zl’、yr’、zr’を次式によって計算する。
【0072】
yl’=yl×cos(θy) ・・・(23)
zl’=yl×sin(θy)+pers ・・・(24)
yr’=yr×cos(θy) ・・・(25)
zr’=yr×sin(θy)+pers ・・・(26)
また、奥行きZ軸方向にクリップが必要な場合、クリップ処理部23は、クリップ後の座標yl’、zl’、yr’、zr’を計算する(S23)。
【0073】
図12は、クリップが必要な場合の回転後の矩形イメージの座標を説明するための図である。図12においては、奥行きfarClipでクリップしたところを示しており、クリップ処理部23は、zl’をfarClipとし、それに対応するyl’を計算する。なお、図12は、奥の図形をクリップする場合であるが、手前側をクリップする場合にはその奥行きnearClipをzr’とし、それに対応するyr’が計算される。
【0074】
次に、透視変換部24は、3次元座標変換された後の形状を2次元に透視投影変換を行なう(S24)。
【0075】
図13は、透視変換後の2次元形状の座標を説明するための図である。図13に示すように、上端エッジのY座標がyl”、下端エッジのY座標がyr”として表され、左端エッジの上端のX座標がxtl、左端エッジの下端のX座標がxtr、右端エッジの上端のX座標がxbl、右端エッジの下端のX座標がxbrとして表される。
【0076】
透視変換部24は、yl”、yr”、xtl、xtr、xbl、xbrを次式によって計算する。
【0077】
yl”=yl’/zl’ ・・・(27)
yr”=yr’/zl’ ・・・(28)
xtl=xt/zl’ ・・・(29)
xtr=xt/zr’ ・・・(30)
xbl=xb/zl’ ・・・(31)
xbr=xb/zr’ ・・・(32)
次に、補間データ作成部25は、透視変換部24によって2次元に投影された形状のX軸方向における左端エッジおよび右端エッジの補間データdxtおよびdxbを作成し、奥行きZ値の補間データdzを作成する(S25)。左端エッジのX座標の補間データdxtは、左端エッジの上端から下端に向かって1ピクセルずつ移動するときのX座標の補間データである。右端エッジのX軸方向の補間データdxbは、右端エッジの上端から下端に向かって1ピクセルずつ移動するときのX座標の補間データである。補間データ作成部25は、補間データdxt、dxb、dzを次式によって算出する。
【0078】
dxt=(xtr−xtl)/(yr”−yl”) ・・・(33)
dxb=(xbr−xbl)/(yr”−yl”) ・・・(34)
dz =(zr’−zl’)/(yr”−yl”) ・・・(35)
また、補間データ作成部25は、転送先形状の補間間隔に対応する転送元形状のY方向の補間データduを次式によって作成する(S26)。なお、この補間データduは、3次元グラフィックスのテクスチャマッピングで用いられる透視補正を実施するために、転送元形状のY方向の座標値を対応するZ座標で除算しておく。
【0079】
du=(w×zr’−0×zl’)/(xr”−xl”) ・・・(36)
次に、領域算出部26は、転送先形状となる座標変換後の形状を、上端から下方向に向かってY方向に1ピクセル単位とする短冊状の矩形を作成し、それに対応する転送元の矩形領域(Y方向幅)を算出する(S27)。転送先形状の上端からnピクセル目の矩形の左上の座標(xdst,ydst)、幅wdst、高さhdstは、次式によって算出される。
【0080】
xdst=xtl+dxt×n ・・・(37)
ydst=yl”+n ・・・(38)
wdst=(xtl+dxt×n)−(xbl+dxb×n) ・・・(39)
hdst=1 ・・・(40)
また、転送元形状の矩形の左上の座標(xsrc,ysrc)、幅wsrc、高さhsrcは、次式によって算出される。
【0081】
xsrc=0x ・・・(41)
ysrc=(du×n)/(zl”+dz×n) ・・・(42)
wsrc=w ・・・(43)
hsrc=(du×(n+1))/(zl”+dz×(n+1))−(ysrc)
・・・(44)
図14は、転送元形状および転送先形状に設定された短冊状の矩形領域を説明するための図である。図14(a)は、転送元形状の短冊状の矩形領域を示しており、図14(b)に示す転送先形状の1ピクセル幅の短冊状の矩形領域に対応している。図14(b)に示す矩形領域を下方向に1ピクセルずつずらしながら、対応する転送元形状の短冊状の矩形領域が算出される。
【0082】
次に、BitBlt処理部27は、領域算出部26によって算出された矩形データを2D描画プロセッサ13に設定し、2D描画プロセッサ13にBitBltを用いた描画を行なわせる(S28)。
【0083】
最後に、矩形領域のBitBlt処理が下端エッジに達したか否かが判定される(S29)。下端エッジに達していなければ(S29,No)、ステップS27に戻って以降の処理が繰り返される。また、下端エッジに達した場合には(S29,Yes)、処理を終了する。
【0084】
なお、以上の説明においては、上端エッジから下端エッジに向かって矩形データを補間する場合について説明したが、下端エッジから上端エッジに向かって矩形データを補間するようにしてもよい。
【0085】
以上説明したように、本実施の形態における描画制御装置によれば、転送先形状のY方向における1ピクセル単位の短冊状の矩形領域を作成し、それに対応する転送元形状の短冊状の矩形領域を算出して順次BitBlt処理を行なうようにしたので、2Dエンジンのみを搭載し、3Dエンジンを搭載していない環境下においても、擬似的に3D空間でイメージデータを回転させた場合のイメージを高速に描画することが可能となった。
【0086】
(第3の実施の形態)
本発明の第3の実施の形態における描画制御装置の構成は、図1に示す第1の実施の形態における描画制御装置の構成と同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【0087】
なお、本発明の第3の実施の形態における擬似3Dパラメータ生成器の機能的構成は、図2に示す第1の実施の形態における擬似3Dパラメータ生成器の機能的構成と同様である。第3の実施の形態において、擬似3Dパラメータ生成器は、第1の実施の形態と同様に、2DイメージデータをY軸と平行な回転軸を中心として回転する場合の擬似3Dパラメータを生成するものであるが、さらに転送先形状に矩形クリップ領域が設定された場合の処理に関するものである。
【0088】
図15は、本発明の第3の実施の形態における描画制御装置の処理手順を説明するためのフローチャートである。図16を適宜参照しながら、本実施の形態における描画制御装置の処理手順を説明する。
【0089】
ステップS11〜S14において、第1の実施の形態において説明した処理と同様の処理が行なわれる。そして、クリップ処理部23は、X軸方向のクリップ処理を行なう(S31)。
【0090】
図16は、転送先形状にクリップ領域が設定された場合の転送元形状および転送先形状に設定された短冊状の矩形領域を説明するための図である。図16(a)は、転送元形状の短冊状の矩形領域を示しており、図16(b)に示す転送先形状の1ピクセル幅の短冊状の矩形領域に対応している。図16(b)に示す矩形領域を右方向に1ピクセルずつずらしながら、対応する転送元形状の短冊状の矩形領域が算出される。
【0091】
図16(b)に示すように、矩形クリップ領域を表す情報として、Xmax、Xmin、Ymax、Yminが指定される。2次元に投影された形状は、必ず左端と右端とがY軸と平行となっており、左端をXminの位置に、右端をXmaxの位置に変更することによってX軸方向のクリップ処理が行なえる。
【0092】
また、上端と下端とはX軸と平行ではないため、クリップ領域内に入る部分と入らない部分とが存在する。そのため、クリップ領域内に入らない場合には、転送先形状の上端エッジ部分をYmaxに、下端エッジ部分をYminに変更することによってY軸方向のクリップ処理が行なわれる。そして、YmaxおよびYminに対応する転送元形状のYmax’およびYmin’が算出される。
【0093】
ステップS31において、クリップ処理部23は、透視変換部24によって2次元に投影された形状のX軸方向のクリップ処理を行なう。上述のように、転送先形状の左端をXminの位置に、右端をXmaxの位置に変更する。そして、第1の実施の形態において説明したステップS15〜S17の処理が行なわれる。
【0094】
ステップS32において、クリップ処理部23は、領域算出部26によって算出された転送先形状の短冊状の矩形領域が矩形クリップ領域に入らない場合には、上端エッジ部分をYmaxに、下端エッジ部分をYminに変更する。そして、クリップ処理部23は、これに対応する転送元形状の上端エッジ部分をYmax’に、下端エッジ部分をYmin’に変更する。そして、ステップS18以降の処理が行なわれる。
【0095】
なお、矩形クリップ領域内に全ての転送先形状が入る場合には、クリップ処理が実質的には行なわれない。また、矩形クリップ領域内に転送先形状が全く入らない場合には、ステップS31またはS32において処理が終了する。
【0096】
以上説明したように、本実施の形態における描画制御装置によれば、転送先形状に対して矩形クリップ領域を設定し、それに対応する転送元形状のX軸座標およびY軸座標を変更してBitBlt処理を行なうようにしたので、矩形クリップ領域が指定された擬似3Dイメージに対する処理を高速に行なうことが可能となった。
【0097】
(第4の実施の形態)
本発明の第4の実施の形態における描画制御装置の構成は、図1に示す第1の実施の形態における描画制御装置の構成と同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【0098】
なお、本発明の第4の実施の形態における擬似3Dパラメータ生成器の機能的構成は、図2に示す第1の実施の形態における擬似3Dパラメータ生成器の機能的構成と同様である。第4の実施の形態において、擬似3Dパラメータ生成器は、第2の実施の形態と同様に、2DイメージデータをX軸と平行な回転軸を中心として回転する場合の擬似3Dパラメータを生成するものであるが、さらに転送先形状に矩形クリップ領域が設定された場合の処理に関するものである。
【0099】
図17は、本発明の第4の実施の形態における描画制御装置の処理手順を説明するためのフローチャートである。図18を適宜参照しながら、本実施の形態における描画制御装置の処理手順を説明する。
【0100】
ステップS21〜S24において、第2の実施の形態において説明した処理と同様の処理が行なわれる。そして、クリップ処理部23は、Y軸方向のクリップ処理を行なう(S41)。
【0101】
図18は、転送先形状にクリップ領域が設定された場合の転送元形状および転送先形状に設定された短冊状の矩形領域を説明するための図である。図18(a)は、転送元形状の短冊状の矩形領域を示しており、図18(b)に示す転送先形状の1ピクセル幅の短冊状の矩形領域に対応している。図18(b)に示す矩形領域を下方向に1ピクセルずつずらしながら、対応する転送元形状の短冊状の矩形領域が算出される。
【0102】
図18(b)に示すように、矩形クリップ領域を表す情報として、Xmax、Xmin、Ymax、Yminが指定される。2次元に投影された形状は、必ず上端と下端とがX軸と平行となっており、上端をYmaxの位置に、下端をYminの位置に変更することによってY軸方向のクリップ処理が行なえる。
【0103】
また、左端と右端とはY軸と平行ではないため、クリップ領域内に入る部分と入らない部分とが存在する。そのため、クリップ領域内に入らない場合には、転送先形状の左端エッジ部分をXminに、右端エッジ部分をXmaxに変更することによってX軸方向のクリップ処理が行なわれる。そして、XminおよびXmaxに対応する転送元形状のXmin’およびXmax’が算出される。
【0104】
ステップS41において、クリップ処理部23は、透視変換部24によって2次元に投影された形状のY軸方向のクリップ処理を行なう。上述のように、転送先形状の上端をYmaxの位置に、下端をYminの位置に変更する。そして、第2の実施の形態において説明したステップS25〜S27の処理が行なわれる。
【0105】
ステップS42において、クリップ処理部23は、領域算出部26によって算出された転送先形状の短冊状の矩形領域が矩形クリップ領域に入らない場合には、左端エッジ部分をXminに、右端エッジ部分をXmaxに変更する。そして、クリップ処理部23は、これに対応する転送元形状の左端エッジ部分をXmin’に、右端エッジ部分をXmax’に変更する。そして、ステップS28以降の処理が行なわれる。
【0106】
なお、矩形クリップ領域内に全ての転送先形状が入る場合には、クリップ処理が実質的には行なわれない。また、矩形クリップ領域内に転送先形状が全く入らない場合には、ステップS41またはS42において処理が終了する。
【0107】
以上説明したように、本実施の形態における描画制御装置によれば、転送先形状に対して矩形クリップ領域を設定し、それに対応する転送元形状のX軸座標およびY軸座標を変更してBitBlt処理を行なうようにしたので、矩形クリップ領域が指定された擬似3Dイメージに対する処理を高速に行なうことが可能となった。
【0108】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0109】
11 演算プロセッサ、12 システムメモリ、13 2D描画プロセッサ、14 描画メモリ、15 システムバス、16 内部メモリ、21 パラメータ設定部、22 座標変換部、23 クリップ処理部、24 透視変換部、25 補間データ作成部、26 領域算出部、27 BitBlt処理部。

【特許請求の範囲】
【請求項1】
2次元イメージを3次元空間で回転させた擬似3次元イメージを生成して描画する描画制御装置であって、
前記2次元イメージの座標を3次元座標に変換する座標変換手段と、
前記座標変換手段によって3次元座標に変換された3次元形状を2次元座標に透視変換する透視変換手段と、
前記透視変換手段によって透視変換された後の2次元形状を分割した複数の矩形領域それぞれを転送先領域とし、それに対応する前記2次元イメージの矩形領域を転送元領域として算出する領域算出手段と、
前記領域算出手段によって算出された転送元領域と転送先領域とに基づいてビットブロック転送を順次行なうことにより、前記擬似3次元イメージを描画する描画手段とを含む、描画制御装置。
【請求項2】
前記描画制御装置はさらに、前記透視変換手段によって透視変換された後の2次元形状に矩形クリップ領域を設定してクリップ処理を行ない、前記領域算出手段によって生成された転送元領域および転送先領域をクリップ処理後の転送元領域および転送先領域に変更するクリップ処理手段を含む、請求項1記載の描画制御装置。
【請求項3】
前記座標変換手段は、前記2次元イメージをY軸と平行な回転軸を中心として回転させたときの3次元座標を生成し、
前記領域算出手段は、前記透視変換手段によって透視変換された後の2次元形状をX軸方向に順次シフトしながらX方向の1ピクセルを単位とする矩形領域を算出して前記転送先領域とし、それに対応する前記2次元イメージの矩形領域を算出して前記転送元領域とする、請求項1または2記載の描画制御装置。
【請求項4】
前記描画制御装置はさらに、前記透視変換手段によって透視変換された後の2次元形状の上端エッジおよび下端エッジのY座標を計算するのに必要となる補間データと、奥行き情報としてZ値を算出するのに必要となる補間データとを作成する補間データ作成手段を含み、
前記領域算出手段は、前記補間データ作成手段によって作成された補間データに基づいて、前記転送元領域と前記転送先領域とを算出する、請求項3記載の描画制御装置。
【請求項5】
前記座標変換手段は、前記2次元イメージをX軸と平行な回転軸を中心として回転させたときの座標を生成し、
前記領域算出手段は、前記透視変換手段によって透視変換された後の2次元形状をY軸方向に順次シフトしながらY方向の1ピクセルを単位とする矩形領域を算出して前記転送先領域とし、それに対応する前記2次元イメージの矩形領域を算出して前記転送元領域とする、請求項1または2記載の描画制御装置。
【請求項6】
前記描画制御装置はさらに、前記透視変換手段によって透視変換された後の2次元形状の左端エッジおよび右端エッジのX座標を計算するのに必要となる補間データと、奥行き情報としてZ値を算出するのに必要となる補間データとを作成する補間データ作成手段を含み、
前記領域算出手段は、前記補間データ作成手段によって作成された補間データに基づいて、前記転送元領域と前記転送先領域とを算出する、請求項5記載の描画制御装置。
【請求項7】
演算手段が記憶手段に記憶されたプログラムを実行することにより、2次元イメージを3次元空間で回転させた擬似3次元イメージを生成して描画させる描画制御方法であって、
前記演算手段に、前記2次元イメージの座標を3次元座標に変換させるステップと、
前記3次元座標に変換された3次元形状を2次元座標に透視変換させるステップと、
前記透視変換された後の2次元形状を分割した複数の矩形領域それぞれを転送先領域とし、それに対応する前記2次元イメージの矩形領域を転送元領域として算出させるステップと、
前記算出された転送元領域と転送先領域とに基づいてビットブロック転送を順次行なうことにより、前記擬似3次元イメージを描画させるステップとを含む、描画制御方法。
【請求項8】
演算手段が記憶手段に記憶されたプログラムを実行することにより、2次元イメージを3次元空間で回転させた擬似3次元イメージを生成して描画させるコンピュータ・プログラムであって、
前記演算手段に、前記2次元イメージの座標を3次元座標に変換させるステップと、
前記3次元座標に変換された3次元形状を2次元座標に透視変換させるステップと、
前記透視変換された後の2次元形状を分割した複数の矩形領域それぞれを転送先領域とし、それに対応する前記2次元イメージの矩形領域を転送元領域として算出させるステップと、
前記算出された転送元領域と転送先領域とに基づいてビットブロック転送を順次行なうことにより、前記擬似3次元イメージを描画させるステップとを含む、コンピュータ・プログラム。
【請求項9】
演算手段が記憶手段に記憶されたプログラムを実行することにより、2次元イメージを3次元空間で回転させた擬似3次元イメージを生成して描画させる前記プログラムを記録したコンピュータで読取可能な記録媒体であって、
前記演算手段に、前記2次元イメージの座標を3次元座標に変換させるステップと、
前記3次元座標に変換された3次元形状を2次元座標に透視変換させるステップと、
前記透視変換された後の2次元形状を分割した複数の矩形領域それぞれを転送先領域とし、それに対応する前記2次元イメージの矩形領域を転送元領域として算出させるステップと、
前記算出された転送元領域と転送先領域とに基づいてビットブロック転送を順次行なうことにより、前記擬似3次元イメージを描画させるステップとを含む、コンピュータで読取可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−186930(P2011−186930A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−53434(P2010−53434)
【出願日】平成22年3月10日(2010.3.10)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】