(57)【特許請求の範囲】
【請求項１】
与えられた多角形平面の各頂点の色に応じて、各頂点の色が与えられた頂点の色となり、かつ、前記多角形平面内において空間的に色が滑らかに変化するように、前記多角形平面内に色を与える画像処理装置であって、
色が空間的に滑らかに変化する２次元画像であるソース画像を記憶するソース画像記憶手段と、
与えられた多角形平面の各頂点の色を求め、求めた色に相当する色の、前記ソース画像内の位置を演算する演算手段と、
演算したソース画像内の位置を頂点とするソース画像内の多角形の領域内の画像を、テクスチャ画像として、前記多角形平面にテクスチャマッピングするテクスチャマッピング手段とを有することを特徴とする画像処理装置。
【請求項２】
与えられた三角形平面の各頂点の色に応じて、各頂点の色が与えられた頂点の色となり、かつ、前記三角形平面内において空間的に色が滑らかに変化するように、前記三角形平面内に色を与える画像処理装置であって、
色が空間的に滑らかに変化する２次元画像であるソース画像を記憶するソース画像記憶手段と、
与えられた三角形平面の各頂点の色を求め、求めた色に相当する色の、前記ソース画像内の位置を演算する演算手段と、
演算したソース画像内の位置を頂点とする三角形に外接するソース画像内の矩形形領域内の画像を、テクスチャ画像として、前記三角形平面にテクスチャマッピングするテクスチャマッピング手段とを有することを特徴とする画像処理装置。
【請求項３】
与えられた多角形平面の各頂点の色に応じて、各頂点の色が与えられた頂点の色となり、かつ、前記多角形平面内において空間的に色が滑らかに変化するように、前記多角形平面内に色を与える画像処理装置であって、
色が空間的に滑らかに変化する２次元画像であるソース画像を記憶するソース画像記憶手段と、
与えられた多角形平面を、多角形の対角線によって分割して生成した各三角形平面について、当該多角形平面の各頂点の色を求め、求めた色に相当する色の、前記ソース画像内の位置を演算する位置演算手段と、
前記各三角形平面について、当該多角形平面について演算したソース画像内の位置を頂点とするソース画像内の三角形領域内の画像を抽出する抽出手段と、
各三角形平面について抽出した前記三角形領域内の画像を組み合わせて、各三角形領域内の画像の頂点を、頂点ととして持つ多角形のテクスチャ画像を生成するテクスチャ画像生成手段と、
生成したテクスチャ画像を、前記多角形平面にマッピングするテクスチャマッピング手段とを有することを特徴とする画像処理装置。
【請求項４】
請求項１、２または３記載の画像処理装置であって、
前記画像処理装置は、所定の色表現方式に従って、色を複数の色パラメータの組み合わせで取り扱い、
前記ソース画像は、一方向に一つの色パラメータが滑らかに変化する二次元画像であることを特徴とする画像処理装置。
【請求項５】
請求項１、２または３記載の画像処理装置であって、
前記画像処理装置は、所定の色表現方式に従って、色を複数の色パラメータの組み合わせで取り扱い、
前記ソース画像は、一方向に特定の一つの色パラメータが滑らかに変化し、前記一方向と直交する方向に、前記特定の一つの色パラメータと異なる一つの色パラメータが滑らかに変化する画像であることを特徴とする画像処理装置。
【請求項６】
請求項１、２、３、４または５記載の画像処理装置であって、
前記ソース画像は、ディザ法によって色を表現した画像領域を含むことを特徴とする画像処理装置。
【請求項７】
請求項１、２、３、４、５または６記載の画像処理装置であって、
前記ソース画像記憶手段は、あらかじめ、異なる複数のソース画像を記憶し、前記位置演算手段は、与えられた多角形平面の各頂点の色を含むソース画像を選択し、与えられた多角形平面の各頂点の色に相当する色の、選択したソース画像内の位置を演算することを特徴とする画像処理装置。
【請求項８】
請求項１、２、３、４、５または６記載の画像処理装置であって、
与えられた多角形平面の各頂点の色に応じて、与えられた多角形平面の各頂点の色を含むソース画像を生成し、前記ソース画像記憶手段に記憶するソース画像生成手段を有することを特徴とする画像処理装置。
【請求項９】
与えられた多角形平面の各頂点の色に応じて、各頂点の色が与えられた頂点の色となり、かつ、前記多角形平面内において空間的に色が滑らかに変化するように、前記多角形平面内に色を与える画像処理方法であって、
色が空間的に滑らかに変化する２次元画像であるソース画像を生成し、
与えられた多角形平面の各頂点の色を求め、求めた色に相当する色の、前記ソース画像内の位置を演算し、
演算したソース画像内の位置を頂点とするソース画像内の多角形の領域内もしくは当該多角形の領域に外接する多角形の領域内の画像を、テクスチャ画像として、前記多角形平面にテクスチャマッピングすることを特徴とする画像処理方法。
【請求項１０】
仮想的な三次元物体を形成する各ポリゴンに陰影づけを施す画像処理装置であって、
陰影づけを施すポリゴンの各頂点の色を、前記仮想的な三次元物体が配置された仮想的な三次元世界と同じ性質を持つ現実の世界に前記仮想的な三次元物体と同じ性質を持つ現実の三次元物体が配置された場合に、前記現実の三次元物体の前記ポリゴンの頂点に対応する点がとる色を模倣して定める手段と、
滑らかに色が空間的に変化する２次元画像であるソース画像を記憶するソース画像記憶手段と、
陰影づけを施すポリゴンの各頂点の色に相当する色の、前記ソース画像内の位置を演算する演算手段と、
演算したソース画像内の位置を頂点とするソース画像内の多角形の領域内の画像もしくは当該多角形の領域に外接する多角形の領域内の画像を、テクスチャ画像とするテクスチャマッピングを、前記陰影づけを施すポリゴンに施しながら、テクスチャマッピングをポリゴンに施した三次元物体を二次元平面に投影した投影画像の生成を行うレンダリングプロセッサとを有することを特徴とする画像処理装置。
【請求項１１】
仮想的な三次元物体を形成する各ポリゴンに陰影づけを施す画像処理装置であって、
各ポリゴンにテクスチャマッピングを施しながら、テクスチャマッピングをポリゴンに施した三次元物体を二次元平面に投影した投影画像の生成を行うレンダリングプロセッサと、
レンダリングプロセッサに命令を与える処理プロセッサとを有し、
前記処理プロセッサは、
陰影づけを施すポリゴンの各頂点の色を、前記仮想的な三次元物体が配置された仮想的な三次元世界と同じ性質を持つ現実の世界に前記仮想的な三次元物体と同じ性質を持つ現実の三次元物体が配置された場合に、前記現実の三次元物体の前記ポリゴンの頂点に対応する点がとる色を模倣して定める手段と、
色が空間的に滑らかに変化する２次元画像であるソース画像を生成する命令を前記レンダリングプロセッサに与える手段と、
陰影づけを施すポリゴンの各頂点の色に相当する色の、前記ソース画像内の位置を演算する演算手段と、
演算したソース画像内の位置を頂点とするソース画像内の多角形の領域内の画像もしくは当該多角形の領域に外接する多角形の領域内の画像を、テクスチャ画像として、前記陰影づけを施すポリゴンにテクスチャマッピングした前記投影画像の生成を指示する命令を前記レンダリングプロセッサに与える手段とを有することを特徴とする画像処理装置。
【請求項１２】
請求項１０または１１に記載の画像処理装置であって、
ポリゴンの各頂点の色を定める前記手段は、
前記仮想的な三次元物体が地形である場合には、陰影づけを施すポリゴンの各頂点の色を、地形が存在する前記仮想的な三次元世界における標高値に応じて定める、ことを特徴とする画像処理装置。
【請求項１３】
請求項２に記載の画像処理装置であって、
前記テクスチャマッピング手段は、
前記矩形領域内の画像を、平行四辺形のテクスチャ画像に変形し、前記平行四辺形の領域から前記三角形平面に対応する三角形領域を抽出してテクスチャマッピングする、ことを特徴とする画像処理装置。
【請求項１４】
請求項２に記載の画像処理装置であって、
前記テクスチャマッピング手段は、
前記矩形領域内の画像を、平行四辺形のテクスチャ画像に変形し、前記平行四辺形の領域から一部の領域をマスクしてテクスチャマッピングする、ことを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、図形内部に空間的に滑らかに変化する色を与える技術に関し、特に、３次元グラフィックスにおいて、３次元物体の陰影を滑らかに表現する技術に関するものである。
【０００２】
【従来の技術】
３次元グラフィックスにおける仮想的な３次元物体を表現する技術として、３次元物体の表面を小さなポリゴン（一般には三角形が用いられる）と呼ばれる平面の集合によって近似し、各ポリゴンを各々描画することにより、３次元オブジェクトを描画する技術が知られている。
【０００３】
また、ここで、各ポリゴンを描画する手法としては、フラットシェーディング、スムースシェーディング、テクスチャマッピング等の手法が知られている。
【０００４】
フラットシェーディングは、陰影付けの手法の一つであり、所定のアルゴリズムにより定めた一色でポリゴン内部を塗りつぶすものである。フラットシェーディングは、高速な処理が可能であるが、ポリゴン内を同一色で塗りつぶすため、隣り合うポリゴンとの境界に色の段差が発生し、滑らかな陰影づけを施すことができない。
【０００５】
スムースシェーディングも陰影付けの手法の一つであり、所定のアルゴリズムにより、ポリゴンの各頂点に個別に色を与え、ポリゴン内部の各点を各頂点の色を補間した色で描画する。スムースシェーディングは、隣り合うポリゴンとの境界に色の段差は発生しないため、滑らかに陰影づけされた高品質の描画が可能となるが、補間処理を行う必要などより、フラットシェーディングに比べ多くの処理時間を要する。
【０００６】
テクスチャマッピングは、模様づけなどに利用される手法の一つであり、平面的なイメージ（テクスチャ）を、与えられたポリゴン上に所定のアルゴリズムによって貼り付ける技術であるである。ここで、テクスチャマッピングを高速に行う処理装置（IC)は既に実用化されており、テクスチャマッピングを行う画像処理装置には、このような処理装置が設けられることが多い。
【０００７】
【発明が解決しようとする課題】
前述したスムースシェーディングには、ポリゴンの各頂点の色を補間しポリゴン内画素の表示色を決定する処理が必要となる。具体的には、まず、各頂点間を結ぶ直線が占有するボクセル色を直線の両端の頂点色の直線補間で演算し、次に、ポリゴン内部の各ボクセル色を、当該ボクセルを通る直線が交わる、頂点間の直線上のボクセル色の直線補間で演算する必要がある。
【０００８】
このように、スムースシェーディングでは、ポリゴン内の少なくとも設定された視点に現れる全てのボクセルについて直線補間処理が必要なことや、かつ直線補間演算は演算に時間を要する割算処理が必須となることなどより、スムースシェーディングには、高速に描画を行うことができないという課題があった。
【０００９】
そこで、本発明は、より高速に、図形内において空間的に各頂点色から頂点色に色が滑らかに変化するように、図形内に色を与えることのできる画像処理装置を提供することを課題とする。また、特に、このような画像処理装置によって、より高速な三次元物体の滑らかな陰影づけを実現することを課題とする。
【００１０】
【課題を解決するための手段】
前記課題達成のために、本発明は、たとえば、与えられた多角形平面の各頂点の色に応じて、各頂点の色が与えられた頂点の色となり、かつ、前記多角形平面内において空間的に色が滑らかに変化するように、前記多角形平面内に色を与える画像処理方法であって、
色が空間的に滑らかに変化する２次元画像であるソース画像を生成し、
与えられた多角形平面の各頂点の色に相当する色の、前記ソース画像内の位置を演算し、
演算したソース画像内の位置を頂点とするソース画像内の多角形の領域内もしくは当該多角形の領域に外接する多角形の領域内の画像を、テクスチャ画像として、前記多角形平面にテクスチャマッピングすることを特徴とする画像処理方法を提供する。
【００１１】
このような画像処理方法によれば、テクスチャマッピングによって、前記多角形平面内において空間的に各頂点色から頂点色に色が滑らかに変化するように、多角形平面内に色を与えることができる。したがって、たとえば、これを陰影づけに適用すれば、高速にテクスチャマッピングを行うことのできる処理装置を利用して、高速かつ、滑らかな、陰影付けを実現することができる。
【００１２】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【００１３】
まず、第一の実施形態について説明する。
【００１４】
図１に、本実施形態に係る画像処理装置の構成を示す。
【００１５】
図示するように、画像処理装置は、数値演算や描画プロセッサの制御といった様々な処理を実行するCPU11、描画データ等を格納するRAM12、処理プログラムやデータを格納するROM13、描画命令（コマンド）を解析しUGM15に画素データを高速に展開するとともに、UGM15から画素データを読み出し表示する描画プロセッサ14、描画命令を蓄えるコマンドバッファや描画したデータを蓄えるフレームバッファが使用する記憶領域を備えるUGM15、描画プロセッサ15が読み出した画素データ情報をRGB輝度情報に変換するカラーパレット16、RGB輝度情報をディジタル信号からアナログ信号に変換するD/A変換器17、CRTや液晶で構成されアナログRGB信号を表示するディスプレイ18、CPU11、RAM12、ROM13、描画プロセッサ１４を相互接続するメインバス１９で構成される。
【００１６】
次に、描画プロセッサ１４とUGM15の内部構成を図２に示す。
【００１７】
図示するように、描画プロセッサ14は、描画プロセッサ全体を制御するコントロールCPU100、テクスチャマッピングを初めとする各種描画処理を行うレンダリングプロセッサ101、カラーパレット16やＤ／Ａ変換器17やディスプレイ18等で構成される表示機能部に画像を表示するために、所定のタイミング信号を生成しつつ表示データを転送する表示プロセッサ102、コントロールCPU100やレンダリングプロセッサ101や表示プロセッサ102と、UGM15等との間のデータの転送制御を行うメモリコントローラ103とで構成される。
【００１８】
また、UGM15は、グラフィックス処理等で使用するメモリを統合したメモリで、CPU11が使用する主記憶113、描画のためのコマンドを保持するコマンドバッファ114、後述する描画処理において使用するソース画像を保持するソース画像バッファ115、表示のためのデータを保持するフレームバッファ116とで構成される。なおUGM15は、また複数のメモリに分割して構成するようにしてもよい。
【００１９】
また、描画プロセッサ１４において、レンダリングプロセッサ101は、UGM15内のコマンドバッファ114に対するアクセスを制御するコマンドバッファ制御部110と、UGM15内のソース画像バッファ115に対するアクセスを制御するソース画像バッファ制御部111と、UGM15内のフレームバッファ116に対する制御を管理するフレームバッファ制御部112とを含んでいる。
【００２０】
以下、このような画像処理装置において、ＣＰＵ１１が行う描画処理について説明する。
【００２１】
図3に、描画処理の手順を示す。
【００２２】
まず、描画すべきポリゴンの各頂点の座標と色が求まると、ＣＰＵ１１は、ソース画像生成処理1001において、滑らかに色変化したソース画像を描画するコマンドを生成し、コマンドバッファ114に蓄える。コマンドバッファ114に蓄えたコマンドに従い、後に、描画プロセッサ１４によってソース画像バッファ１１５にソース画像が描画される。
【００２３】
さて、描画すべきポリゴンの各頂点の色は、たとえば、最も単純には、その頂点を共有する複数のポリゴンの法線方向と、設定された視点の方向と、設定された光源の方向との関係により求める。また、処理対象の３次元物体が地形であるような場合には、頂点の、地形が存在する仮想的な３次元世界における標高値に応じて定める。
【００２４】
なお、滑らかに色変化したソース画像を生成するコマンドは、少しづつ異なる色に対応した、微少矩形内を対応する色で塗りつぶす複数のコマンドとしてもよい。
【００２５】
さて、CPU11は、コマンドによって描画を指示するソース画像を、各頂点の色に応じて定める。
【００２６】
図４に、コマンドによって描画を指示するソース画像の例を示す。
【００２７】
CPU11は、たとえば色表現として、色相、彩度、明度の３つのパラメータを用いる場合に、描画するポリゴンの各頂点の色の間で変化しているパラメータが一つだけの場合は、２次元画像の座標を定める直交する２座標軸のうちの１軸方向にこの一つのパラメータだけが滑らかに変化し、残り２つのパラメータは画像全体に渡って各頂点共通の値で変化しない２次元画像を１次元パラメータソース画像1110として描画するようコマンドによって指示する。また、同様に、描画するポリゴンの各頂点の色の間で変化しているパラメータが２つだけの場合は、１軸方向に、この２つのパラメータのうちの一方のパラメータが滑らかに変化し、他軸方向に、この２つのパラメータのうちの他方のパラメータが滑らかに変化し、残り１つのパラメータは画像全体に渡って各頂点共通の値で変化しない２次元画像を２次元パラメータソース画像1120を描画するようコマンドによって指示する。
【００２８】
ただし、このように描画するポリゴンの各頂点の色情報から定まるソース画像が、以前に処理を行ったポリゴンに対して既に作成されている場合には、新たなソース画像の生成を指示するコマンドを生成せずに、コマンドで描画を指示したソース画像に代えて、これを以降の処理において用いるようにしてよい。
【００２９】
また、色表現として、色相、彩度、明度の３つのパラメータではなく、他の色表現方式によるパラメータを用いるようにしてもよい。
【００３０】
なお、フレームバッファ116、ないしカラーパレット16の制約等によりディスプレイ18に表示できる色数が制限されるとき、制限色以上の色を表示するためには、図５に示すように、ディザー法を用いたソース画像を生成するようにしてもよい。これは、図５の例えばディザー無ソース画像1131における色境界にディザー有ソース画像1132に示したディザー領域を設けることで実現できる。ディザー領域では、画素単位で隣り合う色を混合して配置することにより中間色を表現する。これにより、画素単位で発色可能な色の倍以上の色を作り出すことができる。
【００３１】
また、ＣＰＵ１１は、ソース画像を予め作成しておくようにしてもよい。この場合は、特定の１つのパラメータだけが変化し、残り２つのパラメータが所定値で固定となる陰影付けを行う可能性がある場合には、残り２つのパラメータが取り得る値の組毎に、特定の１つのパラメータを滑らかに変化させた一次元パラメータソース画像を生成し、また、特定の２つのパラメータが変化し、残り１つのパラメータが所定値で固定となる陰影付けを行う可能性がある場合には、残り１つのパラメータが取り得る値毎に、特定の２つのパラメータを滑らかに変化させた２次元パラメータソース画像を生成しておくようにする。
【００３２】
そして、描画するポリゴンの各頂点の色の間で、変化していないパラメータが２つの場合には、この変化していない２つのパラメータの組について作成しておいた一次元パラメータソース画像を、陰影付けに使用するソース画像として図３の処理１００１で選択し、以降の処理においてポリゴンの陰影付け用のソース画像として用いるようにする。また、描画するポリゴンの各頂点の色の間で変化していないパラメータが一つの場合には、この一つのパラメータについて作成しておいた二次元パラメータ画像を、陰影付けに使用するソース画像として図３の処理１００１で選択し、以降の処理においてポリゴンの陰影付け用のソース画像として用いるようにする。
【００３３】
さて、図３に戻り、次の、ソース位置演算１００２では、描画すべきポリゴンの各頂点の色から、コマンドによって描画を指示したソース画像中において各頂点色と同一色ないし最も近い色の画素の存在する位置座標を演算する。
【００３４】
次の、コマンド生成処理1003では、コマンドによって描画を指示したソース画像中の前記ソース位置演算処理1002で演算した座標点を結ぶ直線を境界線とする領域内の画像をテクスチャ画像として、与えられた描画すべきポリゴン座標位置にテクスチャマッピングするよう指示するコマンドを生成し、コマンドバッファ114に蓄える。
【００３５】
描画開始命令処理1004では、コマンドバッファ114に蓄えたコマンド先頭から描画を開始するようにレンダリングプロセッサ101内のレジスタを設定する。これにより、コマンドバッファ制御部110はコマンドを解析し、ソース画像バッファ制御部111及びフレームバッファ制御部112は、解析されたコマンドに従い、それぞれソース画像バッファ115にソース画像を展開し、フレームバッファ116に表示画像を展開する。この結果、与えられたポリゴンをに滑らかな陰影づけを施した画像がフレームバッファ１１６上に展開される。
【００３６】
以下に、以上の各処理で行われる画像処理の具体例を示す。
【００３７】
まず、第１の具体例を示す。
【００３８】
この具体例では、ポリゴンの各頂点色間で、前記３つのパラメータ中１つのパラメータのみが変化している場合を例にとる。
【００３９】
いま、図６、１２０に示すように、描画すべき三角形ポリゴンの座標値をP1、P2、P3、対応するそれぞれの頂点色をC1、C2、C3とする。
【００４０】
この場合、ソース画像生成処理1001では、三角形ポリゴンの頂点色の色変化から、ソース画像バッファ115に１次元形状ソース画像141を描画するコマンドを生成し、コマンドバッファ114に蓄える。
【００４１】
そして、ソース位置演算処理1002では、１４０に示すように、三角形ポリゴンの各頂点色C1、C2、C3と、同一色ないし最も近い色の画素のソース画像141内の座標位置S1、S2、S3を演算する。なお、S1、S2、S3は、いずれか２頂点と残り１頂点を上下方向に分離し、かつソース画像境界に一致するように座標位置を演算するとよい。これにより、テクスチャ画像が大きくなるためテクスチャマッピングでの表示品質が向上する。
【００４２】
また、コマンド生成処理1003では、座標位置S1、S2、S3で与えられる三角形のテクスチャ画像を、図中１５０に示すように、それぞれP1、P2、P3にテクスチャマップするコマンドを生成し、コマンドバッファ114に蓄える。
【００４３】
次に、描画開始処理1004では、コマンドバッファ１１４に蓄えたコマンドを実行するよう描画プロセッサ１４のレンダリングプロセッサ１９１に指示する。
【００４４】
これにより、レンダリングプロセッサ１９１は、コマンドバッファ１１４に蓄えられたコマンドを順次実行し、ソース画像バッファ１１５上へのソース画像の描画、指定されたテクスチャ画像のポリゴンへのテクスチャマッピングを行いながらテクスチャマッピングしたポリゴンを設定された視点方向へ投影した画像のフレームバッファ１１６上への生成を行う。なお、テクスチャ画像をマッピングするポリゴンの形状と、前述のように定めたテクスチャ画像の形状は必ずしも一致しないが、レンダリングプロセッサ１０１は、テクスチャ画像をポリゴンの形状に整合するように変形し、テクスチャ画像のポリゴンへの張り付けを行う。すなわち、レンダリングプロセッサ１０１は、任意の形状、大きさのテクスチャ画像を、ポリゴンにマッピングする機能を有する。
【００４５】
以上の処理の結果、各頂点間の色を滑らかに補間した陰影づけを施された三角形ポリゴン142を、設定された視点方向へ投影した画像がフレームバッファ116に展開される。
【００４６】
以上の処理により、描画専用ハードウエアである描画プロセッサの高速なテクスチャマップ機能を活用して、ポリゴンの滑らかな陰影づけを高速に行うことができる。
【００４７】
以下、第２の具体例を示す。
【００４８】
この具体例では、ポリゴンの各頂点色間で、前記３つのパラメータ中２つのパラメータのみが変化している場合を例にとる。
【００４９】
いま、図７、１２０に示すように、描画すべき三角形ポリゴンの座標値をP1、P2、P3で、対応するそれぞれの頂点色をC1、C2、C3とする。
【００５０】
この場合、ソース画像生成処理1001では、三角形ポリゴンの頂点色の色変化から、ソース画像バッファ115に２次元形状ソース画像143を描画するコマンドを生成し、コマンドバッファ114に蓄える。
【００５１】
また、ソース位置演算処理1002は、図中１４０に示すように、三角形ポリゴンの各頂点色C1、C2、C3から、各頂点色C1、C2、C3と同一色ないし最も近い色の画素のソース画像143内の座標位置S1、S2、S3を演算する。
【００５２】
そして、コマンド生成処理1003は、座標位置S1、S2、S3で与えられる三角形のテクスチャを画像を、図中１５０に示すようにそれぞれP1、P2、P3にテクスチャマップするコマンドを生成し、コマンドバッファ114に蓄える。
【００５３】
次に、描画開始処理1004では、コマンドバッファ１１４に蓄えたコマンドを実行するよう描画プロセッサ１４のレンダリングプロセッサ１９１に指示する。
【００５４】
これにより、レンダリングプロセッサ１９１は、第１の具体例同様に動作し、各頂点間の色を滑らかに補間した陰影づけを施された三角形ポリゴン142を、設定された視点方向へ投影した画像がフレームバッファ116に展開される。
【００５５】
以上の処理により、描画専用ハードウエアである描画プロセッサの高速なテクスチャマップ機能を活用して、ポリゴンの滑らかな陰影づけを高速に行うことができる。
【００５６】
以下、本発明の第２の実施形態について説明する。
【００５７】
本第２実施形態は、描画プロセッサが任意の形状、大きさのテクスチャ画像を、ポリゴンにマッピングする機能を備えておらず、矩形のテクスチャ画像のマッピングしか行えない場合についてのものである。すなわち、レンダリングプロセッサ101が備えているテクスチャマッピングの機能が、不要領域をマスクしながら矩形形状のテクスチャ画像を変形しポリゴンにマッピングするものである場合についてのものである。
【００５８】
本第２実施形態では、前記第１実施形態における図３に示した処理を次のように行う。
【００５９】
いま、前記３つのパラメータ中１つのパラメータがポリゴンの頂点間で変化している場合を例にとり説明する。
【００６０】
いま、図８、１２０に示すように描画すべき三角形ポリゴンの座標値がP1、P2、P3で、対応するそれぞれの頂点色がC1、C2、C3とすると、まず、図３のソース画像生成処理1001では、三角形ポリゴンの頂点色間の色変化に基づき、ソース画像バッファ115に１次元形状ソース画像145を描画するコマンドを生成し、コマンドバッファ114に蓄える。
【００６１】
また、ソース位置演算処理1002では、図中１４０に示すように三角形ポリゴンの各頂点色C1、C2、C3と、同一色ないし最も近い色のソース画像145内の画素情報の座標位置S1、S2、S3を演算する。なお、S1、S2、S3は、いずれか２頂点と残りの１頂点が上下方向に分離し、かつソース画像境界に一致するように座標位置を演算する。これにより、テクスチャ画像が大きくなるためテクスチャマッピングでの表示品質が向上する。そして、次に、座標位置S1、S2、S3に外接する矩形を演算する。その結果、座標位置S1、S4、S5、S3が外接矩形として求められる。
【００６２】
次の、コマンド生成処理1003では、座標位置S1、S4、S5、S3で与えられる矩形テクスチャ画像を、図中、１５０に示すように、それぞれP1、P4、P5、P3で与えられる平行四辺形のテクスチャ画像に変形しポリゴンにテクスチャマップさせるコマンドを生成し、コマンドバッファ114に蓄える。
【００６３】
ここで、頂点座標P4及びP5の描画位置は、以下のアルゴリズムで演算する。最初に頂点P1-P3が構成する直線に平行で、かつ頂点P2を通る直線を計算する。次に、頂点S2-S4間の距離と頂点S5-S2間の距離から比率を求め、その比率が頂点P2-P4間の距離と頂点P5-P2間の距離の比率と一致し、かつ頂点P5-P4間の距離が頂点P3-P1間の距離に等しくなる座標P4、P5を計算することで頂点座標P4及びP5の位置を演算する。
【００６４】
この場合、前記コマンドとしては、P1、P4、P2がなす三角形、及びP2、P5、P3がなす三角形領域をマスクし、P1、P2、P3の頂点で構成する三角形領域のみ描画がなされるようなコマンドが生成され、コマンドバッファ114に蓄えられる。
【００６５】
描画開始処理1004は、コマンドバッファに蓄えられたコマンドを実行する。これにより、各頂点間の色を滑らかに補間した三角形ポリゴン146がフレームバッファ116に展開される。
【００６６】
上記処理により、矩形のテクスチャ画像しか受け付けない描画プロセッサを用いる場合にも、前記第１実施形態と同様の効果を得ることができる。
【００６７】
なお、２つのパラメータが変化する場合も、三角形ポリゴンの各頂点色C1、C2、C3と、同一色ないし最も近い色のソース画像145内の画素情報の座標位置S1、S2、S3による三角形に外接する矩形テクスチャ画像を生成し、これを変形してマッピングさせることにより、矩形のテクスチャ画像しか受け付けない描画プロセッサを用いる場合に、前記第１実施形態と同様の効果を得ることができる。
【００６８】
以下、本発明の第３の実施形態について説明する。
【００６９】
本第３実施形態は、４角形のポリゴンを取り扱う場合についてのものである。
【００７０】
以下、レンダリングプロセッサ101が備えているテクスチャマッピングの機能が、矩形形状のテクスチャ画像を変形し四角形ポリゴンにマッピングするものである場合を例にとり、本第３実施形態を説明する。
【００７１】
いま、各頂点色間で、前記３つのパラメータ中１つのパラメータが変化しているものとする。また、図９、１２０に示すように、描画すべき四角形ポリゴンの座標値がP1、P2、P3、P4で、対応するそれぞれの頂点色がC1、C2、C3、C4とする。
【００７２】
ここで、このような場合に、前記第１、第２実施形態をそのまま適用して、四角形ポリゴンの頂点色C1、C2、C3、C4と同一色ないし最も近い色のソース画像147内の画素の座標位置を演算すると、ソース画像147内の画素の座標位置S1、S2、S3、S4の位置関係が、四角形ポリゴンの頂点のP1、P2、P3、P4位置関係と異なる関係になってしまう場合、すなわち、四角形ポリゴンの輪郭線上の頂点の並び順P1、P2、P4、P3に従って、座標位置S1、S2、S４、S３を順に結んでも、その輪郭が描く図形が輪郭線が交差するために四角形とならないことがある。そして、このような場合には、前記第１、第２実施形態の処理では正常な陰影づけを施すことができない。
【００７３】
そこで、本第３実施形態では、四角形ポリゴンを２つの三角形ポリゴンに分割し、各三角形ポリゴンに対する３角形のテクスチャ画像をワークバッファ１１６に展開して合成して矩形のテクスチャ画像を生成し、ワークバッファ１１６に展開された矩形のテクスチャ画像を四角形ポリゴンにマッピングすることにより、四角形ポリゴンの滑らかな陰影付けを行う。
【００７４】
本第３実施形態では、四角形ポリゴンを複数の三角形に分割し、前記第１実施形態における図３に示した処理を、四角形ポリゴンを分割した各三角形について以下のように行う。
【００７５】
まず、図９、１２０に示すように四角形ポリゴンP1、P2、P3、P4を分割して得られた頂点位置P1、P2、P3で構成される三角形について行う処理について説明する。
【００７６】
図３のソース画像生成処理1001は、三角形ポリゴンの頂点色間の色変化から、ソース画像バッファ115に１次元形状ソース画像147を描画するコマンドを生成し、コマンドバッファ114に蓄える。
【００７７】
ソース位置演算処理1002では、図９、１４０に示すように三角形ポリゴンの各頂点色C1、C2、C3と同一色ないし最も近い色のソース画像147内の画素の座標位置S1、S2、S3をそれぞれ演算する。なお、S1、S2、S3は、いずれか２頂点と残りの１頂点が上下方向に分離し、かつソース画像境界に一致するように座標位置を演算する。これにより、ソース画像が大きくなるためテクスチャマッピングでの表示品質が向上する。そして、座標位置S1、S2、S3に外接する矩形を演算する。その結果、座標位置S1、S4、S5、S3が外接矩形として求まる。
【００７８】
次に、コマンド生成処理1003では、座標位置S1、S4、S5、S3で与えられる矩形テクスチャを、ワークバッファ１３０内の、それぞれW1、W4、W5、W3で与えられる平行四辺形に変形し、S1、S2、S3に対応して求めた点W1,W2,W3で構成される三角形部分にテクスチャマップするコマンドを生成し、コマンドバッファ114に蓄える。
【００７９】
ここで、W１からW5の位置は、以下のアルゴリズムで演算する。
【００８０】
すなわち、最初に頂点W1を中心として、頂点W3と頂点W2が直角になるように座標W1、W2、W3を設定する。なお、頂点W3-W1間の距離と頂点W2-W1間の距離を等しくするとよい。次に、頂点W1-W3が構成する直線に平行で、かつ頂点W2を通る直線を計算する。さらに、頂点S2-S4間の距離と頂点S5-S2間の距離から比率を求め、その比率が頂点W2-W4間の距離と頂点W5-W2間の距離の比率と一致し、かつ頂点5-W4間の距離が頂点W3-W1間の距離に等しくなる座標W4、W5を計算することで頂点座標W4及びW5の位置を決定する。
【００８１】
このような場合、前記コマンドとしては、頂点W1、W4、W2が構成する三角形、及び頂点W2、W5、W3が構成する三角形領域をマスクし、頂点W1、W2、W3が構成する三角形領域のみ描画がなされるようなコマンドが生成され、コマンドバッファ114に蓄えられる。
【００８２】
次に、図１０、１２０に示すように四角形ポリゴンP1、P2、P3、P4を分割して得られた頂点位置P2、P4、P3で構成される三角形について行う処理について説明する。
【００８３】
まず、ソース位置演算処理1002は、図１０、１４０に示すように三角形ポリゴンの各頂点色C2、C4、C3と同一色ないし最も近い色のソース画像147内の画素の座標位置S7、S8、S6をそれぞれ演算する。なお、S7、S8、S6は、いずれか２頂点と残りの１頂点が上下方向に分離し、かつソース画像境界に一致するように座標位置を演算する。これにより、ソース画像が大きくなるためテクスチャマッピングでの表示品質が向上する。そして、座標位置S7、S8、S6に外接する矩形を演算する。その結果、座標位置S7、S8、S10、S9が外接矩形として求まる。
【００８４】
次に、コマンド生成処理1003では、座標位置S7、S8、S10、S9で与えられる矩形テクスチャを、ソースバッファ１３０内の、それぞれW7、W8、W10、W9で与えられる平行四辺形領域の、S7、S8、S6に対応して求めた三角形領域Ｗ7、Ｗ8、Ｗ6にテクスチャマップするコマンドを生成し、コマンドバッファ114に蓄える。
【００８５】
頂点座標W６からW10の位置は、以下のアルゴリズムで演算する。
【００８６】
すなわち、最初に頂点W8を中心として、頂点W7と頂点W6が直角になるように座標W7、W8、W6を設定する。なお、頂点W7-W8間の距離と頂点W8-W6間の距離を、図９におけるW3-W1間の距離とW2-W1間の距離と等しくするとよい。これによって、頂点W7、W8、W6が構成する三角形と、図９内の頂点W1、W2、W3が構成する三角形が対で矩形を構成する関係となる。次に、頂点W7-W8が構成する直線に平行で、かつ頂点W6を通る直線を計算する。さらに、頂点S9-S6間の距離と頂点S6-S10間の距離から比率を求め、その比率が頂点W9-W6間の距離と頂点W6-W10間の距離の比率と一致し、かつ頂点W9-W10間の距離が頂点W7-W8間の距離に等しくなる座標W9、W10を計算することで頂点座標W9及びW10の位置を決定する。
【００８７】
このような場合、前記コマンドとしては、頂点W7、W6、W9が構成する三角形、及びW8、W10、W6が構成する三角形領域をマスクし、頂点W7、W8、W6が構成する三角形領域のみ描画がなされるようなコマンが生成され、コマンドバッファ114に蓄えられる。
【００８８】
さて、以上のようにして、描画すべき四角形ポリゴンを構成する各三角形の処理が終了したならば、本第３実施形態において、CPU11は、さらに、コマンド生成処理１１０３において、次の処理を行う。
【００８９】
すなわち、図１１、１３０に示すように前述の処理によってコマンドバッファ１１４に蓄積されたコマンドによって形成される頂点W1、W2、W3が構成する直角三角形148と、頂点W7、W8、W6が構成する直角三角形149は対の関係にあり、たコマンドを実行することでワークバッファに矩形150が描画されることになる。この矩形は、各頂点W1、W2/W7、W8、W3/W6の頂点色がC1、C2、C4、C3に等しく、かつ矩形内部は滑らかに色変化する矩形となる。
【００９０】
そこで、CPU11は、コマンド生成処理１１０３において、座標位置W1、W2/W7、W8、W3/W6で与えられる矩形テクスチャを、それぞれP1、P2、P4、P3で与えられる四角形領域にテクスチャマップするコマンドを生成し、コマンドバッファ114に蓄える。
【００９１】
そして、CPU11は、描画開始処理1004において、コマンドバッファに蓄えられたコマンドをレンダリングプロセッサ１０１に実行させる。
【００９２】
これにより、図１１、１５０に示すように各頂点間の色を滑らかに補間した四角形ポリゴン151が滑らかに陰影づけされる。
【００９３】
以上の処理により、描画すべきポリゴンが四角形の場合でも、前記第１実施形態と同様の効果を達成することができる。
【００９４】
なお、本第３実施形態のポリゴンを複数の三角形に分割して処理する手法は、四角形以外の多角形にも同様に拡張可能である。また、前記第２実施形態と同様にして、２つのパラメータが変化する場合にも適用することができる。
【００９５】
以上、本発明に係る画像処理装置の実施形態について説明した。
【００９６】
なお、以上では、３次元グラフィックスにおける陰影づけについて説明したが、各実施形態は、図形の頂点色間を補間するように図形の内部を塗りつぶす各種描画処理、たとえば、グラディエーション塗りつぶし処理にも適用可能である。
【００９７】
【発明の効果】
以上のように、本発明によれば、より高速に、図形内において空間的に各頂点色から頂点色に色が滑らかに変化するように、図形内に色を与えることのできる画像処理装置を提供することができる。また、このような画像処理装置によって、より高速な三次元物体の滑らかな陰影づけを実現することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る画像処理装置の構成を示すブロック図である。
【図２】本発明の実施形態に係る描画プロセッサとUGMの内部構成を示す図である。
【図３】本発明の実施形態において行う処理の手順を示したフローチャートである。
【図４】本発明実施形態に係るソース画像を示す図である。
【図５】本発明実施形態に係るディザ法を用いて形成したソース画像を示す図である。
【図６】本発明の第１実施形態に係る画像処理のようすを示した図である。
【図７】本発明の第１実施形態に係る画像処理のようすを示した図である。
【図８】本発明の第２実施形態に係る画像処理のようすを示した図である。
【図９】本発明の第３実施形態に係る画像処理のようすを示した図である。
【図１０】本発明の第３実施形態に係る画像処理のようすを示した図である。
【図１１】本発明の第３実施形態に係る画像処理のようすを示した図である。
【符号の説明】
10…図形処理装置、11…CPU (Central Processing Unit)、12…RAM (Random Access Memory)、13…ROM (Read Only Memory)、14…描画プロセッサ、15…UGM (Unified Graphics Memory)、16…カラーパレット、17…D/A変換器、18…ディスプレイ、19…メインバス、処理100…コントロールCPU、101…レンダリングプロセッサ、102…表示プロセッサ、103…メモリコントローラ、110…コマンドバッファ制御部、111…ソース画像バッファ制御、112…フレームバッファ制御部、113…主記憶、114…コマンドバッファ、115…ソース画像バッファ、116…フレームバッファ、130…ワークバッファ
【図１】
0004056118.tif 000002
【図２】
0004056118.tif 000003
【図３】
0004056118.tif 000004
【図４】
0004056118.tif 000005
【図５】
0004056118.tif 000006
【図６】
0004056118.tif 000007
【図７】
0004056118.tif 000008
【図８】
0004056118.tif 000009
【図９】
0004056118.tif 000010
【図１０】
0004056118.tif 000011
【図１１】
0004056118.tif 000012