(57)【特許請求の範囲】
【請求項１】
所定の補間演算に用いるパラメータを設定するステップと、
上記パラメータに基づいて所定の補間演算を行うステップと、
上記所定の補間演算により得られた値に基づいて上記パラメータを再設定するステップと、
上記再設定されたパラメータを上記所定の補間演算に再入力するステップとを
コンピュータに実行させるための描画処理プログラムであって、
上記再設定のステップは、上記所定の補間演算により得られる値に基づいて再設定されるパラメータの、数と種類と符号の少なくとも何れかを決定するステップを含む
ことを特徴とする描画処理プログラム。
【請求項２】
所定の補間演算に用いるパラメータを設定するステップと、
上記パラメータに基づいて所定の補間演算を行うステップと、
上記所定の補間演算により得られた値に基づいて上記パラメータを再設定するステップと、
上記再設定されたパラメータを上記所定の補間演算に再入力するステップとを
コンピュータに実行させるための描画処理プログラムであって、
上記パラメータ設定のステップは、コンピュータグラフィックで用いるポリゴン頂点のｘ，ｙ座標値に基づいて、少なくとも初期ｘ，ｙ座標値と傾き値からなるパラメータの初期値を設定するステップを含み、
上記パラメータ再設定のステップは、上記所定の補間演算により得られた値に基づいて、少なくとも上記傾き値に対応するパラメータを再設定する
ことを特徴とする描画処理プログラム。
【請求項３】
請求項１又は請求項２記載の描画処理プログラムであって、上記パラメータの再設定及び再入力の、回数を決定するステップを含む
ことを特徴とする描画処理プログラム。
【請求項４】
請求項１から請求項３のうち、何れか一項記載の描画処理プログラムであって、
上記パラメータ設定のステップは、コンピュータグラフィックで用いるポリゴン頂点の色と輝度と透明度の少なくとも何れかを表すパラメータの初期値を設定し、
上記パラメータ再設定のステップは、上記所定の補間演算により得られた値に基づいて、上記色と輝度と透明度の少なくとも何れかを表すパラメータを再設定する
ことを特徴とする描画処理プログラム。
【請求項５】
所定の補間演算に用いるパラメータを設定するステップと、
上記パラメータに基づいて所定の補間演算を行うステップと、
上記所定の補間演算により得られた値に基づいて上記パラメータを再設定するステップと、
上記再設定されたパラメータを上記所定の補間演算に再入力するステップとを
コンピュータに実行させるための描画処理プログラムであって、
上記再設定のステップは、上記所定の補間演算により得られる値に基づいて再設定されるパラメータの、数と種類と符号の少なくとも何れかを決定するステップを含む
ことを特徴とする描画処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
所定の補間演算に用いるパラメータを設定するステップと、
上記パラメータに基づいて所定の補間演算を行うステップと、
上記所定の補間演算により得られた値に基づいて上記パラメータを再設定するステップと、
上記再設定されたパラメータを上記所定の補間演算に再入力するステップとを
コンピュータに実行させるための描画処理プログラムであって、
上記パラメータ設定のステップは、コンピュータグラフィックで用いるポリゴン頂点のｘ，ｙ座標値に基づいて、少なくとも初期ｘ，ｙ座標値と傾き値からなるパラメータの初期値を設定するステップを含み、
上記パラメータ再設定のステップは、上記所定の補間演算により得られた値に基づいて、少なくとも上記傾き値に対応するパラメータを再設定する
ことを特徴とする描画処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
請求項５又は請求項６記載の記録媒体であって、
上記パラメータの再設定及び再入力の、回数を決定するステップを含む
ことを特徴とする描画処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
請求項５から請求項７のうち、何れか一項記載の記録媒体であって、
上記パラメータ設定のステップは、コンピュータグラフィックで用いるポリゴン頂点の色と輝度と透明度の少なくとも何れかを表すパラメータの初期値を設定し、
上記パラメータ再設定のステップは、上記所定の補間演算により得られた値に基づいて、上記色と輝度と透明度の少なくとも何れかを表すパラメータを再設定する
ことを特徴とする描画処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
所定の補間演算に用いるパラメータを設定するパラメータ設定部と、
入力されたパラメータに基づいて上記所定の補間演算を行う演算部と、
上記所定の補間演算により得られた値を上記パラメータ設定部へフィードバックするフィードバック部を有し、
上記パラメータ設定部は、上記所定の補間演算により得られた値に基づいてパラメータを再設定し、該再設定されるパラメータの、数と種類と符号の少なくとも何れかを決定する
ことを特徴とする描画処理装置。
【請求項１０】
所定の補間演算に用いるパラメータを設定するパラメータ設定部と、
入力されたパラメータに基づいて上記所定の補間演算を行う演算部と、
上記所定の補間演算により得られた値を上記パラメータ設定部へフィードバックするフィードバック部を有し、
上記パラメータ設定部は、上記所定の補間演算により得られた値に基づいてパラメータを再設定し、
コンピュータグラフィックで用いるポリゴン頂点のｘ，ｙ座標値に基づいて、少なくとも初期ｘ，ｙ座標値と傾き値からなるパラメータの初期値を設定し、上記所定の補間演算により得られた値に基づいて、少なくとも上記傾き値に対応するパラメータを再設定する
ことを特徴とする描画処理装置。
【請求項１１】
請求項９又は請求項１０記載の描画処理装置であって、
上記パラメータの再設定及び再入力の、回数を制御する制御部を有する
ことを特徴とする描画処理装置。
【請求項１２】
請求項９から請求項１１のうち、何れか一項記載の描画処理装置であって、
上記パラメータ設定部は、コンピュータグラフィックで用いるポリゴン頂点の色と輝度と透明度の少なくとも何れかを表すパラメータの初期値を設定し、上記所定の補間演算により得られた値に基づいて、上記色と輝度と透明度の少なくとも何れかを表すパラメータを再設定する
ことを特徴とする描画処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば３次元ポリゴンデータから２次元画像情報を生成する描画処理プログラム、描画処理プログラムを記録した記録媒体、描画処理装置及び方法に関する。
【０００２】
【従来の技術】
近年のテレビゲーム機やパーソナルコンピュータは、プロセッサやメモリ等の高集積化、高速化等が進んでいる。したがって、それらゲームコンソール装置やパーソナルコンピュータにより構成された描画処理装置は、３次元画像情報から精細で高品位、且つ多様性に富み、より実写に近くリアリティ性の高い２次元画像をリアルタイムに生成し、２次元スクリーン上に描画するようなことが可能となっている。
【０００３】
３次元ポリゴンデータから２次元画像情報を生成する描画処理は、大別してジオメトリ（Geometry）処理とレンダリング処理からなる。ジオメトリ処理は、３次元ポリゴンデータに対して、座標変換処理，クリッピング（Clipping）処理，ライティング（Lighting）処理等のジオメトリ（Geometry）処理、透視投影変換処理等からなる。レンダリング処理は、透視変換後の図形情報（ポリゴンデータ）に基づいてピクセルを生成し、それら各ピクセルのカラー値を決定して２次元画像情報を生成する処理である。
【０００４】
【発明が解決しようとする課題】
ところで、従来の描画処理装置は、複数のポリゴンの集合によりオブジェクトを形成するようになされている。但し、ポリゴンは、各頂点座標間を直線で結んだ多角形状で表されるものである。このため、例えば、オブジェクトの曲線部分を描画するような場合、従来の描画処理装置は、多数の小さいポリゴンを用意し、各ポリゴンの一辺を構成する頂点座標をそれぞれ連結することにより、近似的に上記曲線部分を表現するようにしている。
【０００５】
しかしながら、上述のような曲線部分を描画する際の描画処理装置は、多数のポリゴンデータを短時間に処理しなければならないことになり、その結果、非常に大きな負荷がかかってしまうことになる。また、多数のポリゴンデータを短時間に処理可能な描画処理装置は、高性能かつ高価なものとなり、低コスト化への妨げとなって好ましくない。
【０００６】
本発明は、このような課題に鑑みてなされたものであり、例えば曲線部分の描画を、少ない負荷で且つ高速に実現可能とするための描画処理方法及び装置、描画処理プログラムを記録した記録媒体、描画処理プログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明は、所定の補間演算に用いるパラメータを設定し、そのパラメータに基づいて所定の補間演算を行い、次に、その補間演算により得られた値に基づいてパラメータを再設定し、その再設定されるパラメータの数と種類と符号の少なくとも何れかを決定し、再設定されたパラメータを所定の補間演算に再入力する。
また、本発明は、所定の補間演算に用いるパラメータを設定し、設定するパラメータのうち、コンピュータグラフィックで用いるポリゴン頂点のｘ，ｙ座標値に基づいて、少なくとも初期ｘ，ｙ座標値と傾き値からなるパラメータの初期値を設定する。そして、設定されたパラメータに基づいて所定の補間演算を行い、その補間演算により得られた値に基づいて、少なくとも上記傾き値に対応するパラメータを再設定する。
【０００８】
すなわち本発明によれば、例えば、線形補間演算により得られた値をフィードバックしてパラメータを再設定し、その再設定されたパラメータを用いて再度線形補間演算を行うことで、非線形補間演算を実現可能としている。
【０００９】
【発明の実施の形態】
本発明実施の形態の描画処理装置について、図１に示す構成を用いて説明する。なお、図１の例は、本実施の形態の描画処理装置を、例えばディジタルシグナルプロセッサ（ＤＳＰ）若しくはグラフィックプロセッサ（ＧＰ）等のハードウェアにより実現する場合の構成例である。上記ＤＳＰやＧＰにより本実施の形態の描画処理装置を実現する場合、図１の各構成要素は、それらＤＳＰやＧＰの内部処理ユニットに相当する。
【００１０】
図１において、メモリ１１は、本実施の形態の描画処理プログラムが展開されると共に、３次元ポリゴンを構成するための頂点座標値，ＲＧＢの頂点カラー値，マップ座標値，ベクトル値などの頂点情報や頂点連結情報などの図形情報が格納されている。なお、描画処理プログラム及び図形情報は、ＣＰＵ１４の制御の元で、例えばドライブユニット１０がＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のディスク媒体２０、半導体メモリ等の各種記録媒体からメモリ１１にロードされたもの、或いは、通信ユニット１３が有線若しくは無線による通信媒体，伝送媒体等を介して取り込んだものである。
【００１１】
ジオメトリプロセッサ１２は、ＣＰＵ１４の制御の元で、メモリ１１から図形情報を読み出し、その図形情報に対して、いわゆるアフィン（affine）変換、スクリーン座標への投影変換、頂点に対する光源処理などを行う。投影変換後の図形情報は、レンダリングプロセッサ３０へ送られる。
【００１２】
レンダリングプロセッサ３０は、ポリゴンをスクリーン上に描画するための演算処理を行う部分であり、ジオメトリプロセッサ１２から送られてきた図形情報からポリゴンを構成する各ピクセルを求め、その各ピクセルのカラー値を２次元スクリーン座標に対応させて配置し、ディスプレイ１９（２次元スクリーン）上に表示するためのスクリーンデータを生成する。本実施の形態の場合、当該レンダリングプロセッサ３０は、大別してセットアップユニット３１と、ＤＤＡ（Digital Differential Analyzer）ユニット３４と、ピクセルパイプラインユニット３５と、フレームバッファ３６とからなる。
【００１３】
このレンダリングプロセッサ３０のセットアップユニット３１は、コントロールロジック３２とパラメータ設定ユニット３３とを備えており、ジオメトリプロセッサ１２から送られてくる図形情報、若しくは後段のＤＤＡユニット３４からフィードバックされた値を取り込み、ＤＤＡユニット３４でプリミティブなポリゴンの描画を行うために必要なパラメータ（線形補間の初期座標値と傾き等、以下、ＤＤＡパラメータと呼ぶ）を設定する。このＤＤＡパラメータは、ＤＤＡユニット３４へ送られる。なお、当該セットアップユニット３１の詳細な構成及び次段のＤＤＡユニット３４との間のフィードバックループについては後述する。
【００１４】
ＤＤＡユニット３４は、ＤＤＡパラメータに基づいてポリゴンの頂点座標間を線形補間すると共に、そのポリゴン内部のピクセルを生成し、さらに、各ピクセルのＲ，Ｇ，Ｂ値及びアルファ値（半透明係数：Ａ）、Ｚ値（視点からの奥行き情報）、テクスチャマッピングのためのテクセル座標値（テクセルカラー参照用のアドレス（Ｕ，Ｖ））、フォグ値（霧がかかったような描画を実現するための値）等を求める。それらピクセル毎の各値は、ピクセルパイプラインユニット３５へ送られる。
【００１５】
ピクセルパイプラインユニット３５は、Ｚバッファ１７のＺ値を考慮しつつ、上記テクセル座標値（アドレス）を用いてテクスチャバッファ１６に用意されているテクスチャのテクセルカラーを参照してテクスチャマッピング処理を行い、さらに、アルファ値を用いたアルファブレンディング処理、フォグ値を用いたフォギング処理、ピクセルテストなどの処理を行う。このピクセルパイプラインユニット３５から出力されたピクセルデータは、フレームバッファ３６へ送られる。
【００１６】
なお、テクスチャバッファ１６には、テクスチャマッピングに使用されるテクスチャのＲＧＢ値とアルファ（Ａ）値が格納されている。このテクスチャバッファ１６内のテクスチャは、メモリ１１に格納される図形情報と共に、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、半導体メモリ等の各種記録媒体や、有線或いは無線による通信媒体，伝送媒体等を介して取り込まれたものである。また、Ｚバッファ１７には、視点からの画像の奥行き方向の距離を表すＺ値が格納されている。このＺバッファ１７に格納されるＺ値は、Ｚテストを経て生成された値である。
【００１７】
フレームバッファ３６は、少なくともテレビジョン受像機等のディスプレイ１９（２次元スクリーン）に対応したメモリ空間を備えており、そのメモリ空間上に、当該ディスプレイ１９の２次元スクリーン座標に対応するようにして各ピクセルデータを書き込む。このフレームバッファ３６により形成されたフレーム単位のスクリーンデータは、その後ディスプレイコントローラ１８からの要求に応じて読み出される。
【００１８】
ディスプレイコントローラ１８は、テレビジョン受像機の水平同期信号、垂直同期信号などを生成すると共に、そのテレビジョン受像機の表示タイミングに従い、上記フレームバッファ３６から上記ピクセルデータをライン状に順次取り出す。このライン状に順次取り出されたカラー値からなる２次元画像は、テレビジョン受像機等のディスプレイ１９上に表示される。
【００１９】
［ＤＤＡパラメータのフィードバックによる非線形補間］
本実施の形態の描画処理装置は、ＤＤＡユニット３４での直線生成アルゴリズム（以下、ＤＤＡ処理と呼ぶ）により得られた各パラメータを、セットアップユニット３１にフィードバックしてＤＤＡパラメータを再設定し、そのＤＤＡパラメータをＤＤＡユニット３４に再入力する処理を所望の回数だけ繰り返すことにより、当該ＤＤＡユニット３４を１回通しただけでは生成できない非線形な出力を生成可能としている。
【００２０】
以下、ＤＤＡパラメータのフィードバックによる非線形補間について説明する。
【００２１】
先ず、上記セットアップユニット３１により最初に設定されるＤＤＡパラメータの初期座標値を（x_0，y_0）とし、傾きをｍ_0とすると、上記ＤＤＡユニット３４は、当該最初（１回目）のＤＤＡ処理により次式（１）で表される直線を生成する。なお、式中のｘは所定の刻み幅Δｘに対してｋ（k=0,1,2,3,…）を乗算して得られる、刻み幅Δｘ毎の各ｘ座標値となる。
【００２２】
ｙ＝ m_0 * x + y_0                          (1)
次に、２回目のＤＤＡ処理を行う場合、セットアップユニット３１は、ｋ番目のｘ座標に対応したｙ座標を求める際に、ｋ−１番目のｘ，ｙ座標をｋ番目のｘ，ｙ初期座標に設定すると共に、１回目のＤＤＡ処理でのｋ−１番目のｘ座標に対応したｙ座標値を、当該２回目のＤＤＡ処理でのｋ番目のｘ座標に対応したｙ座標を求める際の傾きとして、ＤＤＡパラメータを再設定する。そして、セットアップユニット３１は、当該再設定されたＤＤＡパラメータをＤＤＡユニット３４へ再入力する。これにより、ＤＤＡユニット３４での２回目のＤＤＡ処理では、式（２）の積分を行った式（３）で表される２次曲線が生成されることになる。なお、式（３）中のｃは定数であり、ｍは所定の刻み幅Δｘ毎の各ｘ座標に対応した傾きである。
【００２３】
ｄy/dx ＝ m_0 * x + y_0                       (2)
ｙ ＝ 0.5 * ｍ * ｘ^2 + ｙ_0 * ｘ + ｃ        (3)
すなわち、上記１回目のＤＤＡ処理で生成された直線のｙ座標はm_0 * x + y_0で表される値であり、２回目のＤＤＡ処理の際に、当該ｙ座標値を傾きとして式（１）に代入すると、ＤＤＡユニット３４では次式（４）の２次曲線が生成されることになる。
【００２４】
0003701627.tif 000002
なお、例えば３回目のＤＤＡ処理を行うことにした場合、セットアップユニット３１は、上記２回目のＤＤＡ処理と同様に、ｋ−１番目のｘ，ｙ座標をｋ番目のｘ，ｙ初期座標に設定すると共に、１回目のＤＤＡ処理で生成されたｋ−１番目のｘ座標に対応したｙ座標値を、当該３回目のＤＤＡ処理でのｋ番目のｘ座標に対応したｙ座標を求める際の傾きとしてＤＤＡパラメータを再設定する。これにより、当該ＤＤＡユニット３４では３次曲線が生成されることになる。
【００２５】
同様にして、本実施の形態の描画処理装置は、セットアップユニット３１でのＤＤＡパラメータの設定とＤＤＡユニット３４でのＤＤＡ処理をＮ回ループさせることにより、次式（５）で表されるＮ次曲線を生成可能となっている。
ｙ＝m_0 * x^N + y_0 * x^(N-1) + y_1 * x^(N-2) +…+ y_(N-2) * x + y_(N-1)                                                                (5)
以下、ＤＤＡユニット３４での１回目のＤＤＡ処理により直線を生成し、その１回目のＤＤＡ処理後のｘ，ｙ座標値を用いて、２回目のＤＤＡ処理のためのＤＤＡパラメータを再設定することで２次曲線を生成する様子を、図１の構成及び図２〜図４を用いて具体的に説明する。
【００２６】
ＤＤＡ処理を行う際に、ＣＰＵ１４は、１回目のＤＤＡ処理であるか、若しくは２回目のＤＤＡ処理であるかを指示するためのコントロールコードを、コントロールレジスタ１５から読み出させる。このコントロールコードは、コントロールロジック３２に送られる。
【００２７】
コントロールロジック３２は、上記コントロールコードに応じて、ジオメトリプロセッサ１２から供給された図形情報をパラメータ設定ユニット３３に送るのか、若しくは、ＤＤＡユニット３４からフィードバックされた値をパラメータ設定ユニット３３に送るのかを切り換える。すなわちこの例の場合、１回目のＤＤＡ処理のときのコントロールコードは、上記ジオメトリプロセッサ１２からの図形情報をパラメータ設定ユニット３３へ送るように上記コントロールロジック３２の切換動作を制御するためのコードとなされ、一方、２回目のＤＤＡ処理のときのコントロールコードは、ＤＤＡユニット３４からフィードバックされた値をパラメータ設定ユニット３３へ送るように上記コントロールロジック３２の切換動作を制御するためのコードとなされている。当該コントロールロジック３２へコントロールコードが供給された後、１回目のＤＤＡ処理が開始されることになる。
【００２８】
先ず、ＣＰＵ１４は、コントロールレジスタ１５から１回目のＤＤＡ処理のためのコントロールコードを読み出させる。コントロールロジック３２は、当該コントロールコードに応じて、上記ジオメトリプロセッサ１２からの図形情報をパラメータ設定ユニット３３へ出力する。このときのパラメータ設定ユニット３３は、上記図形情報に基づいて、初期座標値（x_0，y_0）を（０，０）、傾きを例えばａとしたＤＤＡパラメータの初期値を生成する。そして、ＤＤＡユニット３４では、当該セットアップユニット３１により生成されたＤＤＡパラメータの初期値を用いて１回目のＤＤＡ処理、すなわち通常の直線生成アルゴリズムによる演算処理を行う。
【００２９】
ここで、ｘ座標の刻み幅Δｘが１．０であるとすると、この１回目のＤＤＡ処理では、前記式（１）においてm_0＝ａ、ｘ＝Δｘ*ｋ、y_0＝０となされた、式（６）に示す直線が生成されることになる。
【００３０】
ｙ＝ a * Δx * k             (6)
なお、式中ｋ＝０，１，２，…であり、Δx * kは上記刻み幅Δｘ毎の各ｘ座標に相当する。これにより、当該１回目のＤＤＡ処理によれば、ｘ，ｙ座標値が図２の表に示されるような値で且つ図３に示される直線Ｌ１が得られることになる。このＤＤＡユニット３４での１回目のＤＤＡ処理により得られた各ｘ，ｙ座標値は、セットアップユニット３１にフィードバックされる。
【００３１】
次に、ＣＰＵ１４は、コントロールレジスタ１５から２回目のＤＤＡ処理のためのコントロールコードを読み出させる。コントロールロジック３２は、当該コントロールコードに応じて、上記ＤＤＡユニット３４からフィードバックされた値をパラメータ設定ユニット３３へ出力する。このときのパラメータ設定ユニット３３は、ｋ−１番目のｘ，ｙ座標をｋ番目のｘ，ｙ初期座標に設定すると共に、上記１回目のＤＤＡ処理により得られた図２の表及び図３の直線Ｌ１で表されるｘ，ｙ座標値のうち、ｋ−１番目のｘ座標に対応したｙ座標値を、当該２回目のＤＤＡ処理でのｋ番目のｘ座標に対応するｙ座標を求める際の傾きとしてＤＤＡパラメータを再設定する。そして、ＤＤＡユニット３４では、当該再設定されたＤＤＡパラメータを用いて２回目のＤＤＡ処理を行う。
【００３２】
より具体的に説明すると、当該２回目のＤＤＡ処理において、ｋ＝０の場合、パラメータ設定ユニット３３は、１回目のＤＤＡ処理の場合と同様に、初期座標（x_0，y_0）をｘ，ｙ座標値（０，０）に設定する。
【００３３】
次に、当該２回目のＤＤＡ処理において、ｋ＝１の場合、パラメータ設定ユニット３３は、ｋ＝０のときのｘ，ｙ座標値（０，０）を初期座標（x_0，y_0）に設定すると共に、１回目のＤＤＡ処理でｋ＝０のときに得られたｙ座標値（ｙ＝０）を傾きに設定する。これにより、２回目のＤＤＡ処理において、ｋ＝１の場合のｘ，ｙ座標値は、ｘ＝ 0 + Δx＝１、ｙ＝ 0 * Δx + 0 ＝０となる。
【００３４】
また、当該２回目のＤＤＡ処理において、ｋ＝２の場合、パラメータ設定ユニット３３は、ｋ＝１のときのｘ，ｙ座標値（１，０）を初期座標（x_0，y_0）に設定し、１回目のＤＤＡ処理でｋ＝１のときに得られたｙ座標値（ｙ＝ａ）を傾きに設定する。これにより、２回目のＤＤＡ処理において、ｋ＝２の場合のｘ，ｙ座標値は、ｘ＝ 1 + Δx ＝２、ｙ＝ a * Δx + 0 ＝ａとなる。
【００３５】
さらに、当該２回目のＤＤＡ処理において、ｋ＝３の場合、パラメータ設定ユニット３３は、ｋ＝２のときのｘ，ｙ座標値（２，ａ）を初期座標（x_0，y_0）に設定し、１回目のＤＤＡ処理でｋ＝２のときに得られたｙ座標値（ｙ＝２ａ）を傾きに設定する。これにより、２回目のＤＤＡ処理において、ｋ＝３の場合のｘ，ｙ座標値は、ｘ＝ 2 + Δx ＝３、ｙ＝ 2a * Δx + a ＝ 3aとなる。
【００３６】
同様に、当該２回目のＤＤＡ処理において、ｋ＝４の場合、パラメータ設定ユニット３３は、ｋ＝３のときのｘ，ｙ座標値（３，３ａ）を初期座標（x_0，y_0）に設定し、１回目のＤＤＡ処理でｋ＝３のときに得られたｙ座標値（ｙ＝３ａ）を傾きに設定する。これにより、２回目のＤＤＡ処理において、ｋ＝４の場合のｘ，ｙ座標値は、ｘ＝ 3 + Δx＝４、ｙ＝ 3a * Δx + 3a ＝ 6aとなる。以下同様であり、その説明は省略する。
【００３７】
これらをまとめると、当該２回目のＤＤＡ処理では、ｘ，ｙ座標値が図４の表に示すような値で、且つ図３に示されるような２次曲線Ｌ２が得られることになる。
【００３８】
このように、本実施の形態によれば、セットアップユニット３１のコントロールロジック３２をコントロールコードにより制御すると共に、ＤＤＡユニット３４でのＤＤＡ処理により得られた値をパラメータ設定ユニット３３にフィードバックしてＤＤＡパラメータの再設定を行うだけで、非線形補間を実現可能となっている。なお、コントロールコードは例えばメモリ１１に格納されていても良い。この場合、ＣＰＵ１４は、ダイレクトメモリアクセスにより、当該メモリ１１からコントロールコードを読み出してコントロールロジック３２に送ることができる。このようにメモリ１１にコントロールコードを格納するようにした場合、図１のコントロールレジスタ１５は不要となる。
【００３９】
［１回目のＤＤＡ処理で非線形補間を行う例］
本実施の形態の描画処理装置は、１回目のＤＤＡ処理において非線形補間を行うものであっても良い。すなわち、１回目のＤＤＡ処理から非線形補間を行う場合、パラメータ設定ユニット３３は、前記式(6)において、ｋ−１番目のｘ座標に対応したｙ座標値を、ｋ番目のｘ座標に対応したｙ座標を求める際の傾きとしてＤＤＡパラメータを再設定する。
【００４０】
以下順番に説明すると、１回目のＤＤＡ処理から非線形補間を行う場合において、ｋ＝０の場合、パラメータ設定ユニット３３は、初期座標（ｘ_0，y_0）をｘ，ｙ座標値（０，０）に設定し、傾き初期値を例えばａに設定する。
【００４１】
次に、ｋ＝１の場合、パラメータ設定ユニット３３は、ｋ＝０のときの傾き初期値ａを当該ｋ＝１の場合の傾きに設定する。これにより、ｋ＝１の場合のｘ，ｙ座標値は、ｘ＝ 0 + Δx ＝１、ｙ＝ a * １ ＝ａとなる。
【００４２】
また、ｋ＝２の場合、パラメータ設定ユニット３３は、ｋ＝１のときに得られたｙ座標値（ｙ＝ａ）を当該ｋ＝２の場合の傾きに設定する。これにより、ｋ＝２の場合のｘ，ｙ座標値は、ｘ＝ 1 + Δx ＝２、ｙ＝ a * 2 ＝２ａとなる。
【００４３】
さらに、ｋ＝３の場合、パラメータ設定ユニット３３は、ｋ＝２のときに得られたｙ座標値（ｙ＝２ａ）を当該ｋ＝３の場合の傾きに設定する。これにより、ｋ＝３の場合のｘ，ｙ座標値は、ｘ＝ 2 + Δx ＝３、ｙ＝ 2a * 3 ＝６ａとなる。
【００４４】
同様に、ｋ＝４の場合、パラメータ設定ユニット３３は、ｋ＝３のときに得られたｙ座標値（ｙ＝６ａ）を当該ｋ＝４の場合の傾きに設定する。これにより、ｋ＝４の場合のｘ，ｙ座標値は、ｘ＝ 3 + Δx ＝４、ｙ＝ 6a * 4 ＝24aとなる。以下同様であり、その説明は省略する。
【００４５】
これらをまとめると、この場合のＤＤＡ処理では、図５の表に示すようなｘ，ｙ座標値で且つ図３中の曲線Ｌ３が得られることになる。
【００４６】
なお、上記１回目のＤＤＡ処理から非線形補間を行う場合も、描画処理装置は、２回目以降のＤＤＡ処理で更に前述同様のｘ，ｙ座標値のフィードバックとＤＤＡパラメータの再設定を行うことができる。
【００４７】
［非線形補間の応用例］
上述した本実施の形態の非線形補間によれば、例えば図６に示すように、曲線状にテクスチャマッピングを行うことが可能となる。すなわち、上記非線形補間により曲線５３を含むポリゴン５１を生成すれば、そのポリゴン５１のｘ，ｙ座標値からテクセル座標値（テクセルカラー参照用のアドレス（Ｕ，Ｖ））を容易に求めることができることになる。図６の例の場合、本実施の形態の描画処理装置は、前述の非線形補間を行うことで、直線５４の頂点座標値（ｘ１，ｙ１）〜（ｘ２，ｙ２）から、頂点座標値（ｘ１，ｙ１）〜（ｘ３，ｙ３）〜（ｘ２，ｙ２）で表される曲線５３を求め、当該直線５４及び曲線５３で囲まれたポリゴン５１を容易に生成できる。そして、上記ポリゴン５１の頂点座標値（ｘ１，ｙ１）とテクスチャ５２のテクセル座標値（Ｕ１，Ｖ１）及び（Ｕ３，Ｖ３）を対応させ、また、頂点座標値（ｘ２，ｙ２）とテクセル座標値（Ｕ２，Ｖ２）及び（Ｕ４，Ｖ４）を対応させ、さらに、曲線５３上の頂点座標値（ｘ３，ｙ３）とテクセル座標値（Ｕ５，Ｖ５）を対応させることで、上記曲線５３を含むポリゴン５１へのテクスチャマッピングが可能となる。このように、本実施の形態の非線形補間によれば、ポリゴンの頂点座標からテクセル座標を求める計算のための負荷を非常に少なくすることができる。
【００４８】
なお、図７は、本実施の形態の図６に対する比較例として、従来のように複数のポリゴン６１によって近似的に曲線を表現することにした場合のテクスチャマッピングの様子を示している。この図７の例によれば、曲線を表現するために複数のポリゴン６１を扱わなければならず、また、それら複数のポリゴン６１の各頂点座標（ｘ１１，ｙ１１），（ｘ１２，ｙ１２），（ｘ１３，ｙ１３），（ｘ１４，ｙ１４），（ｘ１５，ｙ１５），…を生成し、さらに、それら各頂点を元に線形補間とテクセル座標の決定とを行うことになる。このため、ＣＰＵ１４やジオメトリプロセッサ１２、レンダリングプロセッサ３０及びそれらを結ぶバスは、非常に高い負荷がかかってしまう。これに対して、本実施の形態によれば、ＣＰＵ１４，ジオメトリプロセッサ１２レンダリングプロセッサ３０、及びそれらを結ぶバスに負荷をかけることなく、非線形なポリゴンを生成でき、また、曲線に沿ったテクスチャマッピングも容易に実現できることになる。なお、レンダリングプロセッサ３０は、例えば極端に大きなポリゴンを高速に処理する場合を除き、上述のようにＤＤＡパラメータをフィードバックしてＤＤＡ処理を複数回行うことは上記図７のように複数のポリゴンを処理する場合に比べて負荷が非常に少なく、全く問題なく実現できる。
【００４９】
図８から図１１は、例えば図８に示すようなストライプ柄のテクスチャを用い、上述したＤＤＡ処理により得られた値からＤＤＡパラメータを設定する際の、その設定の仕方を変えることにより実現可能な種々のテクスチャマッピングの例を示している。図９の例は、ＤＤＡ処理を２回繰り返すと共に各ＤＤＡ処理で用いるＤＤＡパラメータの符号を正と負に切り換えて図８のテクスチャをマッピングした場合に得られる図柄を示している。図１０の例は、ＤＤＡ処理を３回繰り返して図８のテクスチャをマッピングした場合に得られる図柄を示している。図１１の例は、ＤＤＡ処理を２回繰り返すと共にＤＤＡパラメータの傾き値を大から小へ徐々に変化させて図８のテクスチャをマッピングすることによって同心円状の図柄を実現した例を示している。
【００５０】
なお、本実施の形態の描画処理によれば、上述したような非線形なポリゴンの生成とテクスチャマッピングの非線形処理の他に、例えばＲＧＢＡ値を非線形に変化させることにより、例えば、色を非線形に変化させたり、物体面での反射光の明るさを非線形に変化させたり、透明度を非線形に変化させるようなことも可能である。
【００５１】
以上説明したように、本発明の描画処理装置は、ＤＤＡパラメータのフィードバックの回数や、再設定されることになるＤＤＡパラメータの数，種類，正負の符号などのセットアップ条件を、コントロールコードにより決めることができ、それらＤＤＡパラメータのフィードバック回数，ＤＤＡパラメータの数，種類，符号を所望の値にすることで、様々な画像効果を実現可能となっている。
【００５２】
［他の構成例］
本実施の形態の描画処理は、上記図１に示したようなハードウェア構成により実現する場合だけでなく、ソフトウェア（コンピュータ等のアプリケーションプログラム）により実現することも勿論可能である。
【００５３】
図１２、図１３は、本実施の形態の描画処理をコンピュータ上で実現する場合の構成及び動作を示す。なお、図１２は、コンピュータの主要部の構成例を示し、図１３は、本実施の形態の描画処理プログラムを含むコンピュータプログラムを、図１２のコンピュータのＣＰＵ１２３が実行する場合の処理の流れを示している。
【００５４】
先ず、図１２の構成から説明する。
【００５５】
図１２において、記憶部１２６は、例えばハードディスク及びそのドライブからなる。当該ハードディスク内には、オペレーティングシステムプログラムや、本実施の形態の描画処理をソフトウェア的に実現するコンピュータプログラム（描画処理プログラム）１２７、前記ポリゴン描画のための図形情報やテクスチャ等の各種のデータ１２８等が記憶されている。これらコンピュータプログラム１２７や各種データ１２８は、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の各種の記録媒体から読み出されたり、通信回線を介してダウンロードされて記憶部１２６に記憶されたものである。
【００５６】
通信部１２１は、例えば、アナログ公衆電話回線に接続するためのモデム、ケーブルテレビジョン網に接続するためのケーブルモデム、ＩＳＤＮ（総合ディジタル通信網）に接続するためのターミナルアダプタ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）に接続するためのモデムなどのように、外部とデータ通信を行うための通信デバイスである。通信Ｉ／Ｆ部１２２は、上記通信部１２１と内部バス（ＢＵＳ）との間でデータのやりとりを可能とするためのプロトコル変換等を行うインターフェイスデバイスである。
【００５７】
入力部１３３は、例えばキーボードやマウス、タッチパッドなどの入力装置であり、ユーザＩ／Ｆ部１３２は、上記入力部１３３からの信号を内部に供給するためのインターフェイスデバイスである。
【００５８】
ドライブ部１３５は、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、フロッピィディスク等のディスク媒体１３８や、カード状等の半導体メモリなどから、各種のプログラムやデータを読み出し可能なドライブ装置である。ドライブＩ／Ｆ部１３４は、上記ドライブ部１３５からの信号を内部に供給するためのインターフェイスデバイスである。
【００５９】
表示部１３７は、例えばＣＲＴ（陰極線管）や液晶等の表示デバイスであり、表示ドライブ部１３６は上記表示部１３７を表示駆動させるドライブデバイスである。
【００６０】
ＣＰＵ１２３は、上記記憶部１２６に記憶されているオペレーティングシステムプログラムや本実施の形態のコンピュータプログラム１２７に基づいて、当該パーソナルコンピュータの全動作を制御する。
【００６１】
ＲＯＭ１２４は、例えばフラッシュメモリ等の書き換え可能な不揮発性メモリからなり、当該パーソナルコンピュータのＢＩＯＳ（Basic Input/Output System）や各種の初期設定値を記憶している。ＲＡＭ１２５は、記憶部１２６のハードディスクから読み出されたアプリケーションプログラムや、Ｚテスト後のＺ値などの各種データが記憶され、また、ＣＰＵ１２３のワークＲＡＭとして用いられる。
【００６２】
この図１２に示す構成において、ＣＰＵ１２３は、上記記憶部１２６のハードディスクから読み出されてＲＡＭ１２５にロードされたアプリケーションプログラムの一つである、本実施の形態のコンピュータプログラム１２７を実行することにより、前述の本実施の形態で説明した描画処理を実現する。
【００６３】
次に、この図１２に示したコンピュータのＣＰＵ１２３が、本実施の形態のコンピュータプログラム（描画処理プログラム）１２７に基づいて動作する際の処理の流れを、図１３を用いて説明する。
【００６４】
この図１３において、ＣＰＵ１２３は、ステップＳ１の処理として、先ず、ＤＤＡ処理の回数、すなわちＤＤＡ処理により得られた値をポリゴンセットアップにフィードバックする回数の決定と、フィードバックされた値からどのＤＤＡパラメータをどのような値に設定するのかなどのセットアップ条件の決定を行う。
【００６５】
次に、ＣＰＵ１２３は、ステップＳ２の処理として、例えば予めディスク媒体１３８から読み出されて記憶部１２６にデータ１２８として蓄積されているポリゴン描画のための図形情報、テクスチャ等を、当該記憶部１２６から読み取り、ＲＡＭ１２５上に保持させる。
【００６６】
次に、ＣＰＵ１２３は、ステップＳ３の処理として、上記ＲＡＭ１２５上に保持された上記図形情報を読み出し、その図形情報に対して、アフィン変換、スクリーン座標への投影変換、頂点に対する光源処理などのジオメトリ演算、透視変換処理を施す。
【００６７】
次に、ＣＰＵ１２３は、ステップＳ４の処理として、上記ジオメトリ演算により得られた図形情報に基づいてＤＤＡパラメータのセットアップを行う。なお、ＤＤＡ処理により得られた値がフィードバックされた場合、ＣＰＵ１２３では、ステップＳ４において、上記フィードバックされた値を用いてＤＤＡパラメータの再セットアップを行う。
【００６８】
次に、ＣＰＵ１２３は、ステップＳ５の処理として、上記ステップＳ４でセットアップされたＤＤＡパラメータを用いてＤＤＡ処理を行う。そして、ステップＳ６の処理として、ＣＰＵ１２３は、ステップＳ１で決定した回数のフィードバック処理を完了したか否か判定し、完了していないときにはステップＳ４の処理に戻る。
【００６９】
ステップＳ６にてフィードバック処理を完了したと判定したとき、ＣＰＵ１２３は、ステップＳ７の処理として、Ｚ値を考慮しつつ、テクスチャマッピング処理を行い、さらに、アルファブレンディング処理、フォギング処理、ピクセルテストなどのピクセルパイプライン処理を行う。
【００７０】
その後、ＣＰＵ１２３は、ステップＳ８の処理として、上記ピクセルパイプライン処理後のピクセルデータからスクリーン画像を生成し、さらにステップＳ９の処理として、当該スクリーン画像情報を前記表示ドライブ部１３６に送る。これにより、前記表示部１３７上には、ステップＳ１０の処理として、画像が表示されることになる。
【００７１】
なお、上述した実施の形態の説明は、本発明の一例である。このため、本発明は上述した実施の形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることはもちろんである。例えば本実施の形態の描画処理は、専用のテレビゲーム機やパーソナルコンピュータに限らず、携帯端末を含む各種の情報処理装置により実現可能である。
【００７２】
【発明の効果】
以上のように、本発明は、所定の補間演算に用いるパラメータを設定し、そのパラメータに基づいて所定の補間演算を行い、当該補間演算により得られた値に基づいてパラメータを再設定して補間演算に再入力することにより、例えば線形補間演算から非線形補間演算を実現可能となっている。したがって、本発明によれば、例えばコンピュータグラフィックにおいて曲線部分を有するポリゴン等を容易に実現可能となる。
【図面の簡単な説明】
【図１】本発明実施の形態の描画処理装置の概略構成を示す図である。
【図２】１回目のＤＤＡ処理による生成されるｘ，ｙ座標値を示す図である。
【図３】１回目のＤＤＡ処理による生成される直線と、１回目のＤＤＡ処理により得られた値を用いた２回目のＤＤＡ処理で生成される曲線とを示す図である。
【図４】２回目のＤＤＡ処理により生成されるｘ，ｙ座標値を示す図である。
【図５】１回目のＤＤＡ処理で非線形補間を行う場合に生成されるｘ，ｙ座標値を示す図である。
【図６】本実施の形態の非線形補間により得られるポリゴンとそのポリゴンへのテクスチャマッピングの様子を示す図である。
【図７】複数ポリゴンを用いて生成される近似的な曲線とそれらポリゴンへのテクスチャマッピングの様子を示す図である。
【図８】ストライプ柄のテクスチャを示す図である。
【図９】ＤＤＡ処理を２回繰り返すと共に各ＤＤＡ処理で用いるＤＤＡパラメータの符号を正と負に切り換えて図８のテクスチャをマッピングした場合に得られる図柄を示す図である。
【図１０】ＤＤＡ処理を３回繰り返して図８のテクスチャをマッピングした場合に得られる図柄を示す図である。
【図１１】ＤＤＡ処理を２回繰り返すと共にＤＤＡパラメータの傾き値を大から小へ徐々に変化させて図８のテクスチャをマッピングすることにより、同心円状の図柄を実現した例を示す図である。
【図１２】本実施の形態の描画処理を実現するコンピュータの概略構成を示すブロック図である。
【図１３】コンピュータにより本実施の形態の描画処理を実現する場合の処理の流れを示すフローチャートである。
【符号の説明】
１０…ドライブユニット、１１…メモリ、１２…ジオメトリプロセッサ、１３…通信ユニット、１４…ＣＰＵ、１５…コントロールレジスタ、１６…テクスチャバッファ、１７…Ｚバッファ、１８…ディスプレイコントローラ、１９…ディスプレイ、２０…ディスク媒体、３０…レンダリングプロセッサ、３１…セットアップユニット、３２…コントロールロジック、３３…パラメータ設定ユニット、３４…ＤＤＡユニット、３５…ピクセルパイプラインユニット、３６…フレームバッファ
【図１】
0003701627.tif 000003
【図２】
0003701627.tif 000004
【図３】
0003701627.tif 000005
【図４】
0003701627.tif 000006
【図５】
0003701627.tif 000007
【図６】
0003701627.tif 000008
【図７】
0003701627.tif 000009
【図８】
0003701627.tif 000010
【図９】
0003701627.tif 000011
【図１０】
0003701627.tif 000012
【図１１】
0003701627.tif 000013
【図１２】
0003701627.tif 000014
【図１３】
0003701627.tif 000015