(57)【特許請求の範囲】
【請求項１】
３次元空間におけるポリゴンの頂点のデータを、所定の表示領域に対応する座標系のデータに変換し、変換したデータに対応してポリゴンを描画する描画装置において、
所定の判定条件に対応して、３次元空間におけるポリゴンの頂点の座標データおよび色データから、所定の表示領域に対応する座標系における前記ポリゴンの頂点の座標データ、前記ポリゴンの表示位置のオフセット値、および、前記ポリゴンの頂点の色データを計算するか、あるいは、前記ポリゴンの表示位置のオフセット値だけを計算する第１の計算手段と、
前記第１の計算手段により計算された座標データと色データを記憶する記憶手段と、
前記第１の計算手段により計算された座標データと前記記憶手段に記憶されている座標データのうちのいずれかを選択する第１の選択手段と、
前記第１の計算手段により計算された色データと前記記憶手段に記憶されている色データのうちのいずれかを選択する第２の選択手段と、
前記第１の選択手段により選択された座標データと、前記第１の計算手段により計算されたオフセット値から、前記表示領域における前記ポリゴンの頂点の座標値を計算する第２の計算手段と、
前記第２の計算手段により計算された前記ポリゴンの頂点の座標値と、前記第２の選択手段により選択された色データに対応して前記ポリゴンを描画する描画手段と
を備えることを特徴とする描画装置。
【請求項２】
前記第１の選択手段は、３次元空間におけるポリゴンの頂点の座標データから算出されるその頂点の奥行き情報の値に対応して、前記第１の計算手段により計算された座標データと前記記憶手段に記憶されている座標データのうちのいずれかの座標データを選択し、
前記第２の選択手段は、前記奥行き情報の値に対応して、前記第１の計算手段により計算された色データと前記記憶手段に記憶されている色データのうちのいずれかの色データを選択する
ことを特徴とする請求項１に記載の描画装置。
【請求項３】
前記第１の選択手段は、３次元空間におけるポリゴンの頂点の移動量に対応して、前記第１の計算手段により計算された座標データと前記記憶手段に記憶されている座標データのうちのいずれかの座標データを選択し、
前記第２の選択手段は、前記移動量に対応して、前記第１の計算手段により計算された色データと前記記憶手段に記憶されている色データのうちのいずれかの色データを選択する
ことを特徴とする請求項１に記載の描画装置。
【請求項４】
前記記憶手段は、予め設定されているポリゴンの頂点の座標データと色データを記憶し、
前記第１の選択手段は、前記記憶手段に記憶されているその頂点に対応する座標データを選択し、
前記第２の選択手段は、前記記憶手段に記憶されているその頂点に対応する色データを選択する
ことを特徴とする請求項１に記載の描画装置。
【請求項５】
３次元空間におけるポリゴンの頂点のデータを、所定の表示領域に対応する座標系のデータに変換し、変換したデータに対応してポリゴンを描画する描画方法において、
所定の判定条件に対応して、３次元空間におけるポリゴンの頂点の座標データおよび色データから、所定の表示領域に対応する座標系における前記ポリゴンの頂点の座標データ、前記ポリゴンの表示位置のオフセット値、および、前記ポリゴンの頂点の色データを計算するか、あるいは、前記ポリゴンの表示位置のオフセット値だけを計算する第１の計算ステップと、
前記第１の計算ステップの処理により計算された座標データと記憶部に記憶されている座標データのうちのいずれかを選択する第１の選択ステップと、
前記第１の計算ステップの処理により計算された色データと前記記憶部に記憶されている色データのうちのいずれかを選択する第２の選択ステップと、
前記第１の選択ステップの処理により選択された座標データと、前記第１の計算ステップの処理により計算されたオフセット値から、前記表示領域における前記ポリゴンの頂点の座標値を計算する第２の計算ステップと、
所定の判定条件に対応して、前記第１の計算ステップの処理により計算された座標データと色データを所定の前記記憶部に記憶する記憶ステップと、
前記第２の計算ステップの処理により計算された前記ポリゴンの頂点の座標値と、前記第２の選択ステップの処理により選択された色データに対応して前記ポリゴンを描画する描画ステップと
を含むことを特徴とする描画方法。
【請求項６】
前記第１の選択ステップの処理は、３次元空間におけるポリゴンの頂点の座標データから算出されるその頂点の奥行き情報の値に対応して、前記第１の計算ステップの処理により計算された座標データと前記記憶部に記憶されている座標データのうちのいずれかの座標データを選択し、
前記第２の選択ステップの処理は、前記奥行き情報の値に対応して、前記第２の計算ステップの処理により計算された色データと前記記憶部に記憶されている色データのうちのいずれかの色データを選択する
ことを特徴とする請求項５に記載の描画方法。
【請求項７】
前記第１の選択ステップの処理は、３次元空間におけるポリゴンの頂点の移動量に対応して、前記第１の計算ステップの処理により計算された座標データと前記記憶部に記憶されている座標データのうちのいずれかの座標データを選択し、
前記第２の選択ステップの処理は、前記移動量に対応して、前記第１の計算ステップの処理により計算された色データと前記記憶部に記憶されている色データのうちのいずれかの色データを選択する
ことを特徴とする請求項５に記載の描画方法。
【請求項８】
前記記憶ステップの処理は、予め設定されているポリゴンの頂点の座標データと色データを前記記憶部に記憶し、
前記第１の選択ステップの処理は、前記記憶部に記憶されているその頂点に対応する座標データを選択し、
前記第２の選択ステップの処理は、前記記憶部に記憶されているその頂点に対応する色データを選択する
ことを特徴とする請求項５に記載の描画方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、描画装置および方法に関し、特に、３次元空間におけるポリゴンの頂点のデータを、所定の表示領域に対応する座標系のデータに変換し、変換したデータに対応してポリゴンを描画する描画装置および方法に関する。
【０００２】
【従来の技術】
最近の半導体技術の進歩に伴い、画像処理を行う演算装置の処理能力も向上している。
【０００３】
所謂コンピュータグラフィクスにおいて３次元の物体をディスプレイに表示させる場合、所定の基本形状（例えば３角形）の複数の２次元図形（ポリゴン）を利用して、３次元の物体を表現することがある。なお、このような３次元の物体は、図５（Ａ）に示すように、物体ごとに設定されるオブジェクト座標系において定義される。
【０００４】
そして、例えば所定の応用プログラムに従って、その物体の動作に対応して動画が作成される場合、１画面ごとに、その画面を構成する物体やその背景などが描画されていく。
【０００５】
このとき１画面ごとに、その画面を構成する物体に対応するポリゴンの３次元空間における各頂点のデータが、２次元の表示領域に対応するデバイス座標系におけるデータに変換された後、そのデータに基づいて、そのポリゴンがレンダリングされる。
【０００６】
このときの変換においては、最初に、３次元のワールド座標系（図５（Ｂ））における各頂点の座標は、視点を原点とした視線座標系（図５（Ｃ））における座標に変換（透視変換）される。
【０００７】
次に、表示領域に表示される視線座標系中の領域（空間）であるビューボリューム（View Volume）が設定される。このビューボリュームは、図６（Ａ）に示すように視点を頂点とした４角錘の一部を取り出した６面体である。
【０００８】
ここで、ポリゴンの各頂点がビューボリュームに位置するか否かの判定を簡単にするために、ビューボリュームを図６（Ｂ）に示すように直方体にする座標変換（クリップ変換）が行われる。
【０００９】
そして、この直方体のビューボリュームでクリップ処理が行われた後、各頂点の座標が、表示領域に対応する２次元のデバイス座標系に座標変換（ビューポート変換）される。
【００１０】
また、ポリゴンの各頂点の法線ベクトルが透視変換され、変換後のベクトルから、各頂点の色データが算出される。
【００１１】
このように、ポリゴンの頂点の座標に対して、透視変換、クリップ変換、ビューポート変換が行われ、頂点の法線ベクトルから、頂点の色データが算出される。
【００１２】
【発明が解決しようとする課題】
しかしながら、このように、１画面ごとにポリゴンの頂点のデータ（座標と色データ）が上述の演算により変換されるので、演算量が非常に多くなり、所定の処理速度で描画を行うようにする場合、その演算は描画処理の多くの部分を占めるので、それに対応した演算回路が必要となり、装置のコストの低減が困難であるという問題を有している。
【００１３】
本発明は、このような状況に鑑みてなされたものであり、例えば動きの少ないのポリゴンの座標変換後のデータを保存しておき、それ以降の画面においては、そのデータを利用することにより、デバイス座標系における座標および色データを算出するときの演算量を減少させるようにするものである。
【００１４】
【課題を解決するための手段】
請求項１に記載の描画装置は、所定の判定条件に対応して、３次元空間におけるポリゴンの頂点の座標データおよび色データから、所定の表示領域に対応する座標系におけるポリゴンの頂点の座標データ、ポリゴンの表示位置のオフセット値、および、ポリゴンの頂点の色データを計算するか、あるいは、ポリゴンの表示位置のオフセット値だけを計算する第１の計算手段と、第１の計算手段により計算された座標データと色データを記憶する記憶手段と、第１の計算手段により計算された座標データと記憶手段に記憶されている座標データのうちのいずれかを選択する第１の選択手段と、第１の計算手段により計算された色データと記憶手段に記憶されている色データのうちのいずれかを選択する第２の選択手段と、第１の選択手段により選択された座標データと、第１の計算手段により計算されたオフセット値から、表示領域におけるポリゴンの頂点の座標値を計算する第２の計算手段と、第２の計算手段により計算されたポリゴンの頂点の座標値と、第２の選択手段により選択された色データに対応してポリゴンを描画する描画手段とを備えることを特徴とする。
【００１５】
請求項５に記載の描画方法は、所定の判定条件に対応して、３次元空間におけるポリゴンの頂点の座標データおよび色データから、所定の表示領域に対応する座標系におけるポリゴンの頂点の座標データ、ポリゴンの表示位置のオフセット値、および、ポリゴンの頂点の色データを計算するか、あるいは、ポリゴンの表示位置のオフセット値だけを計算する第１の計算ステップと、第１の計算ステップの処理により計算された座標データと記憶部に記憶されている座標データのうちのいずれかを選択する第１の選択ステップと、第１の計算ステップの処理により計算された色データと記憶部に記憶されている色データのうちのいずれかを選択する第２の選択ステップと、第１の選択ステップの処理により選択された座標データと、第１の計算ステップの処理により計算されたオフセット値から、表示領域におけるポリゴンの頂点の座標値を計算する第２の計算ステップと、所定の判定条件に対応して、第１の計算ステップの処理により計算された座標データと色データを所定の記憶部に記憶する記憶ステップと、第２の計算ステップの処理により計算されたポリゴンの頂点の座標値と、第２の選択ステップの処理により選択された色データに対応してポリゴンを描画する描画ステップとを含むことを特徴とする。
【００１６】
請求項１に記載の描画装置においては、所定の判定条件に対応して、３次元空間におけるポリゴンの頂点の座標データおよび色データから、所定の表示領域に対応する座標系におけるポリゴンの頂点の座標データ、ポリゴンの表示位置のオフセット値、および、ポリゴンの頂点の色データが計算されるか、あるいは、ポリゴンの表示位置のオフセット値だけが計算され、計算された座標データと色データが記憶され、計算された座標データと記憶されている座標データのうちのいずれかが選択され、計算された色データと記憶されている色データのうちのいずれかが選択される。そして、選択された座標データと、計算されたオフセット値から、表示領域におけるポリゴンの頂点の座標値が計算され、計算されたポリゴンの頂点の座標値と、選択された色データに対応してポリゴンが描画される。
【００１７】
請求項５に記載の描画方法は、所定の判定条件に対応して、３次元空間におけるポリゴンの頂点の座標データおよび色データから、所定の表示領域に対応する座標系におけるポリゴンの頂点の座標データ、ポリゴンの表示位置のオフセット値、および、ポリゴンの頂点の色データが計算されるか、あるいは、ポリゴンの表示位置のオフセット値だけが計算され、計算された座標データと記憶部に記憶されている座標データのうちのいずれかが選択され、計算された色データと記憶部に記憶されている色データのうちのいずれかが選択される。そして、選択された座標データと、計算されたオフセット値から、表示領域におけるポリゴンの頂点の座標値が計算され、所定の判定条件に対応して、計算された座標データと色データが所定の記憶部に記憶され、計算されたポリゴンの頂点の座標値と、選択された色データに対応してポリゴンが描画される。
【００１８】
【発明の実施の形態】
図１は、本発明の描画装置の一実施の形態の構成を示している。メインプロセッサ１は、入出力部２を介して供給されるグラフィックスデータ、または、メインメモリ３に記憶されているポリゴンのグラフィックスデータをジオメトリ演算部４（第１の計算手段）に出力するようになされている。なお、このようなポリゴンのグラフィックスデータは、所定の応用プログラムに従って生成される。
【００１９】
また、メインプロセッサ１は、そのような応用プログラムに従って、ジオメトリ演算部４に供給するデータに対応するポリゴンが、既にジオメトリ演算部４により演算された座標値および色データ（メインメモリ３に記憶されている（後述））を使用して描画されるか否かを指定する第１の制御信号と、ジオメトリ演算部４に供給するデータに対応するポリゴンの、ジオメトリ演算部４により演算された座標値および色データを、メインメモリ３に記憶させるか否かを指定する第２の制御信号とをジオメトリ演算部４に供給するようになされている。
【００２０】
ジオメトリ演算部４は、メインプロセッサ１より供給された第１の制御信号に対応して、メインプロセッサ１より供給されたグラフィックスデータに対して座標変換、クリッピング処理、ライティング処理などを行い、処理後のグラフィックスデータ（ポリゴンレンダリングデータ）として、３角形のポリゴンの各頂点に対応する、座標データΔＸｄ，ΔＹｄ，ΔＺｄおよびオフセット値Ｘoffset，Ｙoffset，Ｚoffset（後述）、赤色、緑色、青色にそれぞれ対応する輝度値Ｃｒ，Ｃｇ，Ｃｂ、描画する画素の輝度値（ＲＧＢ値）とディスプレイバッファ１０に記憶されている画素の輝度値を混ぜ合わせる割合を表すブレンド係数α、テクスチャ座標値Ｓ，Ｔ，Ｑ、および、フォグ係数Ｆを、第１および第２の制御信号とともにデータ保存回路１４（第１の選択手段、第２の選択手段、第２の計算手段）に出力するようになされている。
【００２１】
なお、テクスチャ座標値として、同次座標系における値Ｓ，Ｔ，Ｑが出力されるが、Ｓ／Ｑ，Ｔ／Ｑにテクスチャサイズをそれぞれ乗じたものが、実際のテクスチャ座標として利用される。また、フォグ係数Ｆは、例えばＺが大きく、その点における表示を、霧がかかったように表現するときに、所定のフォグカラーを混合する度合いを示す係数である。
【００２２】
データ保存回路１４は、ジオメトリ演算部４より供給されたブレンド係数α、テクスチャ座標値Ｓ，Ｔ，Ｑ、および、フォグ係数ＦをそのままＤＤＡセットアップ部５に出力するとともに、ジオメトリ演算部４より供給された第２の制御信号に従って、ジオメトリ演算部４より供給された座標データΔＸｄ，ΔＹｄ，ΔＺｄおよび輝度値（色データ）Ｃｒ，Ｃｇ，Ｃｂを、バス１５を介してメインメモリ３に記憶させるようになされている。
【００２３】
さらに、データ保存回路１４は、ジオメトリ演算部４より供給された第１の制御信号に従って、ジオメトリ演算部４より供給された座標データΔＸｄ，ΔＹｄ，ΔＺｄ、および、メインメモリ３に記憶されている座標データΔＸｄ，ΔＹｄ，ΔＺｄのいずれかと、ジオメトリ演算部４より供給されたオフセット値Ｘoffset，Ｙoffset，Ｚoffsetとのそれぞれの和をデバイス座標系の座標値Ｘ，Ｙ，Ｚとして計算し、その座標値を、ジオメトリ演算部４より供給された輝度値Ｃｒ，Ｃｇ，Ｃｂまたはメインメモリ３に記憶されている輝度値Ｃｒ，Ｃｇ，ＣｂとともにＤＤＡセットアップ部５に出力するようになされている。
【００２４】
レンダリング回路２０（描画手段）は、供給された３角形の各頂点のポリゴンレンダリングデータＸ，Ｙ，Ｚ，Ｃｒ，Ｃｇ，Ｃｂ，α，Ｓ，Ｔ，Ｑ，Ｆから、そのポリゴンに対応するビデオ信号を生成し、出力するようになされている。
【００２５】
レンダリング回路２０のＤＤＡセットアップ部５は、供給された３角形の各頂点のポリゴンレンダリングデータＸ，Ｙ，Ｚ，Ｃｒ，Ｃｇ，Ｃｂ，α，Ｓ，Ｔ，Ｑ，Ｆから、Ｘ方向に対するポリゴンレンダリングデータの変分（ΔＺ／ΔＸ，ΔＣｒ／ΔＸ，ΔＣｇ／ΔＸ，ΔＣｂ／ΔＸ，Δα／ΔＸ，ΔＳ／ΔＸ，ΔＴ／ΔＸ，ΔＱ／ΔＸ，ΔＦ／ΔＸ）を算出するとともに、Ｙ方向に対するポリゴンレンダリングデータの変分（ΔＺ／ΔＹ，ΔＣｒ／ΔＹ，ΔＣｇ／ΔＹ，ΔＣｂ／ΔＹ，Δα／ΔＹ，ΔＳ／ΔＹ，ΔＴ／ΔＹ，ΔＱ／ΔＹ，ΔＦ／ΔＹ）を算出するようになされている。
【００２６】
また、ＤＤＡセットアップ部５は、３角形（ポリゴン）の頂点の座標値より３角形の形状の種類の判別を行うとともに、描画開始点（レンダリング開始点）における各ポリゴンレンダリングデータの初期値を算出するようになされている。
【００２７】
さらに、ＤＤＡセットアップ部５は、３角形のポリゴンの描画開始点に最も近いスパン（Ｘ方向に配列している画素の列）（後述）のＹ方向の座標値と同一の座標値を有する辺ＡＣ上の点に、ポリゴンの描画開始点の座標値を移動させた後、その座標値に対応する各ポリゴンレンダリングデータの初期値を算出し、Ｘ方向の各変分とともにＤＤＡ部６に出力するようになされている。
【００２８】
ＤＤＡ部６は、ＤＤＡ（Digital Differential Analyzer）演算を行い、ＤＤＡセットアップ５より供給された、各ポリゴンレンダリングデータのＸ方向の変分と、各ポリゴンレンダリングデータの初期値から、まず、そのスパンの開始点の画素に対応する各ポリゴンレンダリングデータの値を算出し、次に、そのスパンの各画素に対応する座標値Ｘ，Ｙと、その座標におけるポリゴンレンダリングデータＺ，Ｃｒ，Ｃｇ，Ｃｂ，α，Ｓ，Ｔ，Ｑ，Ｆの値を順次算出し、テクスチャプロセッサ７に出力するようになされている。
【００２９】
テクスチャプロセッサ７は、テクスチャバッファ９からテクスチャデータを読み出し、供給されたテクスチャ座標値Ｓ，ＴをＱで除算し、テクスチャサイズで乗算して実際のテクスチャ座標値を算出するとともに、読み出したテクスチャデータから、実際のテクスチャ座標値Ｓ，Ｔに対応したテクスチャアドレスにおける輝度値と、テクスチャデータの混合比を表す係数（テクスチャのα値）を算出し、その係数に対応して、ＤＤＡ部６より供給された輝度値と、テクスチャに対応する輝度値を混合するようになされている。
【００３０】
さらに、テクスチャプロセッサ７は、フォグ係数Ｆに対応して所定のフォグカラーを混合し、生成された輝度値を、ＤＤＡ部６より供給された座標値Ｘ，Ｙの画素に対応する輝度値として、座標値Ｘ，Ｙ，Ｚおよびブレンド係数αとともにメモリインタフェース８に出力するようになされている。
【００３１】
なお、テクスチャバッファ９は、ＭＩＰＭＡＰなどの各レベルに対応したテクスチャデータを予め記憶している。
【００３２】
メモリインタフェース８は、Ｚバッファ１１のＺ値を参照し、供給された画素が、以前に描画したものより手前にある場合、供給された座標値Ｚで、Ｚバッファ１１のＺ値を更新するとともに、供給された輝度値を、ディスプレイバッファ１０における、その座標値（Ｘ，Ｙ）に対応するアドレスに書き込むようになされている。
【００３３】
なお、メモリインタフェース８は、αブレンドを行うように設定されている場合、供給されたブレンド係数αに対応して、ディスプレイバッファ１０に記憶されている輝度値と、テクスチャプロセッサ７より供給された輝度値を混合して、生成された輝度値をディスプレイバッファ１０に書き込む。
【００３４】
ＣＲＴ制御部１２は、所定の水平および垂直同期周波数に同期して表示アドレスを発生し、メモリインタフェース８を制御して、その表示アドレスに対応する輝度値を、所定の数毎にまとめて転送させ、内蔵するＦＩＦＯ部（図示せず）にそれらの値を一旦記憶し、所定の間隔でそのデータのインデックス値をＲＡＭＤＡＣ１３に出力するようになされている。
【００３５】
ＲＡＭＤＡＣ１３は、図示せぬＲＡＭ部とＤＡＣ（Digital/Analog Converter）部を有し、インデックス値に対応した輝度値をＲＡＭ部に予め記憶しており、ＣＲＴ制御部１２より供給されたインデックス値に対応する輝度値を、ＲＡＭ部からＤＡＣ部に供給し、ＤＡＣ部において、その輝度値をＤ／Ａ変換し、アナログのビデオ信号（ＲＧＢ信号）を所定の装置（図示せず）に出力するようになされている。
【００３６】
次に、図１の描画装置の動作について説明する。
【００３７】
最初に、メインプロセッサ１が、所定の応用プログラムに従って、ジオメトリ演算部４にポリゴンのデータをジオメトリ演算部４に出力する。このとき、メインプロセッサ１は、所定の応用プログラムに従って、そのポリゴンが、既にジオメトリ演算部４により演算された座標値および色データを使用して描画されるか否かを指定する第１の制御信号と、そのポリゴンの、ジオメトリ演算部４により演算された座標値および色データを、メインメモリ３に記憶させるか否かを指定する第２の制御信号とをジオメトリ演算部４に供給する。
【００３８】
ここで、図２のフローチャートを参照して、ジオメトリ演算部４の動作を説明する。ステップＳ１において、ジオメトリ演算部４は、メインプロセッサ１より供給された第１の制御信号に応じて、供給されたデータに対応するポリゴンの各頂点の座標データΔＸｄ，ΔＹｄ，ΔＺｄと輝度値Ｃｒ，Ｃｇ，Ｃｂを算出するか否かを判断し、座標データΔＸｄ，ΔＹｄ，ΔＺｄと輝度値Ｃｒ，Ｃｇ，Ｃｂを算出すると判断した場合、ステップＳ２に進み、そうでない場合、ステップＳ１２に進む。
【００３９】
ステップＳ２において、ジオメトリ演算部４は、次式に従って、ワールド座標系におけるポリゴンの頂点の座標（Ｘｍ，Ｙｍ，Ｚｍ，１）（同次座標系）を、クリップ座標系における座標（Ｘｃ，Ｙｃ，Ｚｃ，Ｗｃ）（同次座標系）に変換（モデル−クリップ変換）する。なお、モデル−クリップ変換は、透視変換とクリップ変換を一度に行うものである。
【数１】
0003738924.tif 000002
【００４０】
そして、ステップＳ３において、ジオメトリ演算部４は、座標変換した頂点が、ビューボリュームの範囲内に位置するか否かを、次に示す６つの条件をすべて満足するか否かで判断する。
Ｗｃ＋Ｘｃ≧０
Ｗｃ−Ｘｃ≧０
Ｗｃ＋Ｙｃ≧０
Ｗｃ−Ｙｃ≧０
Ｗｃ＋Ｚｃ≧０
Ｗｃ−Ｚｃ≧０
【００４１】
これらの条件のいずれかが満足されない場合、その頂点はビューボリュームの範囲外にあるので、ステップＳ５において、ポリゴンがクリップされる。クリップされたポリゴンの形状は３角形ではなくなるので、そのポリゴンは、複数の３角形のポリゴンに分割される。
【００４２】
そして、このようにして生成されたクリップ座標系における座標（Ｘｃ，Ｙｃ，Ｚｃ，Ｗｃ）を、次式に従って、表示領域に対応する２次元のデバイス座標系における座標（Ｘ，Ｙ，Ｚ）に変換（ビューポート変換）することができる。
Ｘ＝Ｘscale×Ｘｃ／Ｗｃ＋Ｘoffset
Ｙ＝Ｙscale×Ｙｃ／Ｗｃ＋Ｙoffset
Ｚ＝Ｚscale×Ｚｃ／Ｗｃ＋Ｚoffset
【００４３】
ここで、Ｘoffset、Ｙoffset、および、Ｚoffsetは、それぞれＸ、Ｙ、および、Ｚ方向のオフセット値であり、Ｘscale、Ｙscale、および、Ｚscaleは、クリップ座標系におけるそれぞれの方向の長さとデバイス座標系におけるその方向の長さの比率を表している。
【００４４】
なお、このときのＺ座標は奥行き方向の情報を表しており、表示領域における頂点の表示位置は、座標値Ｘ，Ｙで指定される。
【００４５】
そこで、ステップＳ６において、ジオメトリ演算部４は、このオフセット値Ｘoffset，Ｙoffset，Ｚoffsetと、次式に示す座標データを算出する。
ΔＸｄ＝Ｘscale×Ｘｃ×ＩｎｖＷｃ
ΔＹｄ＝Ｙscale×Ｙｃ×ＩｎｖＷｃ
ΔＺｄ＝Ｚscale×Ｚｃ×ＩｎｖＷｃ
【００４６】
ここで、ＩｎｖＷｃは、Ｗｃの逆数であり、次に示すように、例えばニュートンラフソン（Newton-Raphson）法を利用して算出される。
【００４７】
まず、所定のルックアップテーブルを参照して、Ｗｃの値に対応するニュートンラフソン法における初期値Ｉｎｖ０が設定される。次に、ニュートンラフソン法における反復演算を、次に示す２つの式に従って行うことにより、ＩｎｖＷｃが算出される。なお、より精度の高い値を算出する場合においては、反復回数を増やせばよい。
Ｉｎｖ１  ＝Ｉｎｖ０×（２−Ｉｎｖ０×Ｗｃ）
ＩｎｖＷｃ＝Ｉｎｖ１×（２−Ｉｎｖ１×Ｗｃ）
【００４８】
そして、ステップＳ７において、ジオメトリ演算部４は、このようにして算出した座標データΔＸｄ，ΔＹｄ，ΔＺｄとオフセット値Ｘoffset，Ｙoffset，Ｚoffsetをデータ保存回路１４に出力する。
【００４９】
次に、ジオメトリ演算部４は、ステップＳ８において、ワールド座標系における、各頂点の法線ベクトル（Ｎｘｍ，Ｎｙｍ，Ｎｚｍ）を、次式に従って視線座標系のベクトル（Ｎｘｅ，Ｎｙｅ，Ｎｚｅ）に座標変換（モデルビューイング変換）する。
【数２】
0003738924.tif 000003
【００５０】
そして、ステップＳ９において、この視線座標系のベクトル（Ｎｘｅ，Ｎｙｅ，Ｎｚｅ）を正規化するために、この視線座標系のベクトル（Ｎｘｅ，Ｎｙｅ，Ｎｚｅ）の大きさ（｛（Ｎｘｅ，Ｎｙｅ，Ｎｚｅ）・（Ｎｘｅ，Ｎｙｅ，Ｎｚｅ）｝1/2）の逆数を計算する。
【００５１】
まず、ベクトル（Ｎｘｅ，Ｎｙｅ，Ｎｚｅ）の自分自身との内積Ｌｅｎ２を計算し、ルックアップテーブルを参照して、その値Ｌｅｎ２に対応する初期値ｎ0を設定して、ニュートンラフソン法による反復計算を、次式に従って行うことにより、ベクトル（Ｎｘｅ，Ｎｙｅ，Ｎｚｅ）の大きさの逆数ＩｎｖＬｅｎが計算される。
ｎ1         ＝０．５×ｎ0×（３−ｎ02×Ｌｅｎ２）
ＩｎｖＬｅｎ＝０．５×ｎ1×（３−ｎ12×Ｌｅｎ２）
【００５２】
そして、ステップＳ１０において、ジオメトリ演算部４は、ライティング処理として、拡散光に対する、座標変換に伴う係数ＮＶを次式に従って算出する。
ＮＶ＝（Ｎｘｅ，Ｎｙｅ，Ｎｚｅ）・（Ｖｌｘ，Ｖｌｙ，Ｖｌｚ）×ＩｎｖＬｅｎ
【００５３】
また、反射光に対する、座標変換に伴う係数ＮＨＳを算出するために、まず、次式に従って値ＮＨが算出される。
ＮＨ＝（Ｎｘｔ，Ｎｙｔ，Ｎｚｔ）・（Ｈｌｘ，Ｈｌｙ，Ｈｌｚ）×ＩｎｖＬｅｎ
【００５４】
そして、反射光に対する、座標変換に伴う係数ＮＨＳは、所定の整数ｋに対応してＮＨのｋ乗に設定される。このとき、それほど精度が必要とされないので、２つのルックアップテーブルを参照して、次式にように、ＮＨの値からＮＨＳの値が算出される。
ＮＨＳ＝ExpLookup(round(LogLookup(round(NH)))×ｋ)
【００５５】
ここで、ｒｏｕｎｄ（ｘ）は、ｘを所定の精度で丸める処理を表している。さらに、ＬｏｇＬｏｏｋｕｐ（ｘ）は、ｘに対応する自然対数（ｌｎ（ｘ））のルックアップテーブルの値を表し、ＥｘｐＬｏｏｋｕｐ（ｘ）は、ｘに対応する指数関数（ｅｘｐ（ｘ））のルックアップテーブルの値を表している。
【００５６】
そして、輝度値Ｃｒ，Ｃｇ，Ｃｂが、次式に従って算出される。
【数３】
0003738924.tif 000004
【００５７】
ここで、ベクトル（Ａｒ，Ａｇ，Ａｂ）は、環境光の各輝度値を表し、ベクトル（Ｄｍｒ，Ｄｍｇ，Ｄｍｂ）は、拡散光の各輝度値を表し、ベクトル（Ｓｒ，Ｓｇ，Ｓｂ）は、反射光の各輝度値を表している。
【００５８】
そして、ステップＳ１１において、ジオメトリ演算部４は、算出した輝度値Ｃｒ，Ｃｇ，Ｃｂをデータ保存回路１４に出力する。
【００５９】
このように、ステップＳ２乃至ステップＳ１１において、ジオメトリ演算部４は、メインプロセッサ１より供給された第１の制御信号に対応して、グラフィックスデータに対して、座標変換、クリッピング処理、ライティング処理などを行い、３角形のポリゴンの各頂点に対応する、座標データΔＸｄ，ΔＹｄ，ΔＺｄおよびオフセット値Ｘoffset，Ｙoffset，Ｚoffset、輝度値Ｃｒ，Ｃｇ，Ｃｂを、データ保存回路１４に出力する。なお、この他に、ブレンド係数α、テクスチャ座標値Ｓ，Ｔ，Ｑ、および、フォグ係数Ｆが、第１および第２の制御信号とともにデータ保存回路１４に出力される。
【００６０】
一方、ステップＳ１２においては、ジオメトリ演算部４は、描画する物体（即ち、ポリゴン）の移動量（座標データおよび輝度値を記憶したときの画面におけるポリゴンの位置から今回描画する位置までの距離）からオフセット値Ｘoffset，Ｙoffset，Ｚoffsetだけを算出し、オフセット値Ｘoffset，Ｙoffset，Ｚoffsetを、ブレンド係数α、テクスチャ座標値Ｓ，Ｔ，Ｑ、フォグ係数Ｆ、並びに、第１および第２の制御信号とともにデータ保存回路１４に出力する。この場合、メインプロセッサ１より供給されるデータ量が少ないので、バス１５の負荷が低減される。
【００６１】
このようにして、ジオメトリ演算部４は、第１の制御信号に対応して、座標データΔＸｄ，ΔＹｄ，ΔＺｄ、オフセット値Ｘoffset，Ｙoffset，Ｚoffset、および、輝度値Ｃｒ，Ｃｇ，Ｃｂ（ステップＳ２乃至ステップＳ１１）、または、オフセット値Ｘoffset，Ｙoffset，Ｚoffsetだけ（ステップＳ１２）を算出する。
【００６２】
次に、図３のフローチャートを参照して、データ保存回路１４の動作について説明する。ステップＳ２１において、データ保存回路１４は、ジオメトリ演算部４より供給された第１の制御信号に従って、メインメモリ３に記憶されている座標データΔＸｄ，ΔＹｄ，ΔＺｄおよび輝度値Ｃｒ，Ｃｇ，Ｃｂを使用するか否かを判断し、それらのデータを使用する場合、ステップＳ２２に進み、そうでない場合、ステップＳ２４に進む。
【００６３】
それらのデータを使用する場合、データ保存回路１４は、ステップＳ２２において、メインメモリ３に記憶されている座標データΔＸｄ，ΔＹｄ，ΔＺｄおよび輝度値Ｃｒ，Ｃｇ，Ｃｂを読み出し、ステップＳ２３において、ジオメトリ演算部４より供給されたオフセット値Ｘoffset，Ｙoffset，Ｚoffsetとのそれぞれの和（ΔＸｄ＋Ｘoffset、ΔＹｄ＋Ｙoffset、ΔＺｄ＋Ｚoffset）をデバイス座標系の座標値Ｘ，Ｙ，Ｚとして計算し、その座標値を、メインメモリ３から読み出した輝度値Ｃｒ，Ｃｇ，ＣｂとともにＤＤＡセットアップ部５に出力する。
【００６４】
一方、ステップＳ２４においては、データ保存回路１４は、ジオメトリ演算部４より供給された座標データΔＸｄ，ΔＹｄ，ΔＺｄと、オフセット値Ｘoffset，Ｙoffset，Ｚoffsetとのそれぞれの和をデバイス座標系の座標値Ｘ，Ｙ，Ｚとして計算し、その座標値を、ジオメトリ演算部４より供給された輝度値Ｃｒ，Ｃｇ，ＣｂとともにＤＤＡセットアップ部５に出力する。
【００６５】
そして、ステップＳ２５において、データ保存回路１４は、ジオメトリ演算部４より供給された第２の制御信号に従って、ジオメトリ演算部４より供給された座標データΔＸｄ，ΔＹｄ，ΔＺｄおよび輝度値Ｃｒ，Ｃｇ，Ｃｂを、バス１５を介してメインメモリ３に記憶させるか否かを判断し、その座標データおよび輝度値を記憶させると判断した場合、ステップＳ２６において、それらの値を、バス１５を介してメインメモリ３に記憶させる。一方、それらの値を記憶させないと判断した場合、ステップＳ２６はスキップされる。
【００６６】
このようにして、データ保存回路１４は、第２の制御信号に応じて、ジオメトリ演算部４により演算されたデータをメインメモリ３に記憶させるとともに、第１の制御信号に応じて、メインメモリ３に記憶されているデータを読み出し、それらのデータに対応する座標値および輝度値をＤＤＡセットアップ部５に出力する。
【００６７】
なお、データ保存回路１４は、この他、ジオメトリ演算部４より供給されたブレンド係数α、テクスチャ座標値Ｓ，Ｔ，Ｑ、および、フォグ係数ＦをそのままＤＤＡセットアップ部５に出力する。
【００６８】
次に、レンダリング回路２０のＤＤＡセットアップ部５は、レンダリングの前処理として、まず、３角形のポリゴンの形状の判別を行う。このとき、ＤＤＡセットアップ部５は、３つの頂点のうち、Ｙ方向の座標値が最も小さい頂点を頂点Ａとし、Ｙ方向の座標値が最も大きい頂点を頂点Ｃとし、残りの頂点を頂点Ｂとする。なお、３つの頂点のうち、Ｙ方向の座標値が最も小さい頂点が２つある場合、ＤＤＡセットアップ部５は、それらの２つの頂点のうちのいずれか一方を頂点Ａとし、他方を頂点Ｂとする。
【００６９】
また、ＤＤＡセットアップ部５は、ポリゴン内の各画素におけるポリゴンレンダリングデータＸ，Ｙ，Ｚ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑ，Ｆの値を補間演算により算出するときに利用されるＸ方向およびＹ方向に対するポリゴンレンダリングデータの変分を、ポリゴンの３頂点のポリゴンレンダリングデータからそれぞれ算出する。
【００７０】
各変分を算出した後、ＤＤＡセットアップ部５は、図４に示すように、頂点Ａに最も近いスパン１０１に対応するＹ方向の座標値Ｙ0と同一の座標値を有する辺ＡＣ上の点（Ｘ0，Ｙ0）に、ポリゴンの描画開始点を一時的に移動させた後、その座標値に対応する各ポリゴンレンダリングデータの値を補間演算により算出し、それらのデータを、Ｘ方向の各変分とともにＤＤＡ部６に出力する。さらに、その後、ＤＤＡセットアップ部５は、各スパンに対応する辺ＡＣ上の点における各ポリゴンレンダリングデータの値を補間演算により算出していき、それらのデータをＤＤＡ部６に順次出力していく。なお、図４の各画素は、その画素の左下角の座標値で代表されている。
【００７１】
そして、ＤＤＡ部６は、ＤＤＡ演算を行い、ＤＤＡセットアップ部５より供給されたデータに対応するスパンのレンダリング処理を行い、レンダリング処理後の各画素に対応するポリゴンレンダリングデータをテクスチャプロセッサ７に順次出力する。
【００７２】
テクスチャプロセッサ７は、テクスチャバッファ９からテクスチャデータを読み出し、そのデータを利用して、ＤＤＡ部６より供給されたテクスチャ座標値を、実際のテクスチャ座標値に変換し、実際のテクスチャ座標値Ｓ，Ｔに対応したテクスチャアドレスにおける輝度値と、テクスチャデータの混合比を表す係数（テクスチャのα値）を算出し、その係数に対応して、ＤＤＡ部６より供給された輝度値と、テクスチャに対応する輝度値を混合する。
【００７３】
さらに、テクスチャプロセッサ７は、テクスチャのα値に対応して混合された輝度値に、フォグ係数Ｆに対応して所定のフォグカラーを混合し、生成された輝度値を、ＤＤＡ部６より供給された座標値Ｘ，Ｙの画素に対応する輝度値として、座標値Ｘ，Ｙ，Ｚおよびブレンド係数αとともにメモリインタフェース８に出力する。
【００７４】
そして、メモリインタフェース８は、Ｚバッファ１１のＺ値を読み出し、テクスチャプロセッサ７より供給された画素が以前に描画したものより手前にあるか否かを判断し、供給された画素が以前に描画したものより手前にある場合、供給された座標値Ｚで、Ｚバッファ１１のＺ値を更新するとともに、供給された輝度値を、ディスプレイバッファ１０における、その座標に対応するアドレスに書き込む。
【００７５】
一方、供給された画素が以前に描画したものより後ろにある場合、メモリインタフェース８は、供給されたデータを破棄する。
【００７６】
なお、αブレンドを行うように設定されている場合、メモリインタフェース８は、テクスチャプロセッサ７より供給されたブレンド係数αに対応して、ディスプレイバッファ１０に記憶されている輝度値と、供給された輝度値を、α：（１−α）の割合で混合して、生成した輝度値をディスプレイバッファ１０に書き込む。
【００７７】
そして、ディスプレイバッファ１０に書き込まれた輝度値は、ＣＲＴ制御部１２により水平および垂直同期周波数に同期して発生される表示アドレスに対応して、ＣＲＴ制御部１２にメモリインタフェース８を介して転送され、ＣＲＴ制御部１２のＦＩＦＯ部に一旦記憶される。そして、その輝度値に対応するインデックス値が、所定の間隔でＲＡＭＤＡＣ１３に出力され、ＲＡＭＤＡＣ１３から、そのインデックス値に対応した輝度値をＤ／Ａ変換したアナログビデオ信号（ＲＧＢ信号）が所定の装置（図示せず）に出力される。
【００７８】
以上のように、以前に演算したデータを利用して、デバイス座標系における所定のポリゴンの頂点の座標値および色データが算出され、それらのデータに従って、ポリゴンがレンダリングされる。
【００７９】
なお、例えば視線が変化しても、視点から遠くに位置する物体は、表示領域内をほとんど平行移動するだけであるので、このような物体に対応するポリゴンの頂点のデータをメインメモリ３に記憶させておくことにより、それ以降の画面におけるその物体の描画の際にそのデータを利用することができる。
【００８０】
また、頂点のデータが記憶されるポリゴンは、例えばデータベースを利用して応用プログラムにより指定されるようにしてもよいし、デバイス座標系における座標値Ｚ（Ｚ値）（視点からの距離を表す）に応じて指定されるようにしてもよい。即ち、Ｚ値が大きい場合、視点からそのポリゴンの頂点までの距離が長いことになるので、上述の理由で、以前に演算したデータを利用することができる。
【００８１】
データベースを利用する場合、例えば、応用プログラムを作成するときに、動作の少ない物体をデータベースに予め登録しておく。
【００８２】
あるいは、ワールド座標系における物体の移動量（ポリゴンの頂点の各方向における変位量）に応じて、記憶されるポリゴンが指定されるようにしてもよい。
【００８３】
さらに、表示領域における背景を描画するときも、上述のオフセット値を変更するだけでよい場合が多いので、背景に対応するポリゴンのデータを記憶し、再利用するようにしてもよい。
【００８４】
なお、上記実施の形態においては、バス１５を介してメインメモリ３にポリゴンのデータを記憶させるようにしているが、データ保存回路１４にＲＡＭ（ＳＲＡＭ、ＤＲＡＭなど）を設けるか、あるいは、所定のＲＡＭをデータ保存回路１４に接続し、そのＲＡＭに、ポリゴンのデータを記憶させるようにしてもよい。
【００８５】
【発明の効果】
以上のごとく、請求項１に記載の描画装置および請求項５に記載の描画方法によれば、所定の判定条件に対応して、３次元空間におけるポリゴンの頂点の座標データおよび色データから、所定の表示領域に対応する座標系におけるポリゴンの頂点の座標データ、表示位置のオフセット値、および、ポリゴンの頂点の色データを計算するか、あるいは、表示位置のオフセット値だけを計算した後、計算した座標データと記憶部に記憶されている座標データのいずれかと、計算したオフセット値から、表示領域におけるポリゴンの頂点の座標値を計算し、所定の判定条件に対応して、計算した座標データと色データを所定の記憶部に記憶し、計算した座標値と、選択した座標データに対応する色データを利用して、そのポリゴンを描画するようにしたので、デバイス座標系におけるポリゴンの座標値および色データの算出の際の演算量を低減することができる。
【図面の簡単な説明】
【図１】本発明の描画装置の一実施の形態の構成を示すブロック図である。
【図２】ジオメトリ演算部４の動作について説明するフローチャートである。
【図３】データ保存回路１４の動作について説明するフローチャートである。
【図４】ポリゴンの一例を示す図である。
【図５】物体を表現するときの各座標系を示す図である。
【図６】ビューボリュームの一例を示す斜視図である。
【符号の説明】
１  メインプロセッサ，  ２  入出力部，  ３  メインメモリ，  ４  ジオメトリ演算部，  ５  ＤＤＡセットアップ部，  ６  ＤＤＡ部，  ７  テクスチャプロセッサ，  ８  メモリインタフェース，  ９  テクスチャバッファ，  １０ディスプレイバッファ，  １１  Ｚバッファ，  １２  ＣＲＴ制御部，  １３ＲＡＭＤＡＣ，１４  データ保存回路，  ２０  レンダリング回路
【図１】
0003738924.tif 000005
【図２】
0003738924.tif 000006
【図３】
0003738924.tif 000007
【図４】
0003738924.tif 000008
【図５】
0003738924.tif 000009
【図６】
0003738924.tif 000010