(57)【特許請求の範囲】
【請求項１】
平面パッチに、所定のモデル表面の凹凸に対応した距離情報からなるテクスチャ座標上の距離画像をマッピングし、前記モデルに対応する画像を作成し、前記画像をスクリーン座標上に描画する画像作成装置において、
前記平面パッチの座標を、前記テクスチャ座標上の座標に変換する座標変換手段と、
前記テクスチャ座標上における平面パッチのスキャン単位、および前記テクスチャ座標上における平面パッチの面積に基づいて、前記画像の描画時間を予測し、前記描画時間に従って前記画像の描画精度を調整する精度調整手段と、
前記画像を構成する画素を前記スクリーン座標上へ描画する描画手段と、
前記精度調整手段による前記画像の描画精度の調整結果に応じて、前記平面パッチをスキャンし、前記テクスチャ座標における前記距離画像に対応して、前記描画手段による前記画素の前記スクリーン座標上への描画位置を制御する描画位置制御手段と
を備えることを特徴とする画像作成装置。
【請求項２】
前記描画位置制御手段は、前記座標変換手段により前記平面パッチの前記座標が変換された前記テクスチャ座標上において、前記平面パッチをスキャンし、スキャンした前記テクスチャ座標における前記距離画像に対応して、前記画像を構成する前記画素の前記スクリーン座標上への描画位置を制御する
ことを特徴とする請求項１に記載の画像作成装置。
【請求項３】
前記描画位置制御手段は、前記座標変換手段により、前記テクスチャ座標に変換された前記平面パッチを前記スクリーン座標上に投影し、前記スクリーン座標上において前記平面パッチをスキャンし、スキャンした前記スクリーン座標に対応する前記テクスチャ座標における前記距離画像に対応して、前記画像を構成する前記画素の前記スクリーン座標上への描画位置を制御する
ことを特徴とする請求項１に記載の画像作成装置。
【請求項４】
前記精度調整手段は、前記スキャン単位を変更することにより、前記画像の精度を調整する
ことを特徴とする請求項１に記載の画像作成装置。
【請求項５】
前記描画手段は、前記距離画像に従って、前記平面パッチの所定のものと、前記平面パッチの他の所定のものを互いに接触させるかまたは一部若しくは全部が重なるように変形して描画する
ことを特徴とする請求項１に記載の画像作成装置。
【請求項６】
視点座標および光源座標の少なくともいずれか一方をテクスチャ座標系に変換し、ライティング処理を行うライティング手段
をさらに備えることを特徴とする請求項１に記載の画像作成装置。
【請求項７】
前記描画手段は、視点と、視点から最も離れた位置にある平面パッチの頂点との間の前後関係に基づいて決定し、前記平面パッチ内のスキャン開始点、スキャン順序、およびスキャン方向に従って、前記画像を描画する
ことを特徴とする請求項１に記載の画像作成装置。
【請求項８】
前記描画手段は、Ｚバッファによる陰面消去によって、前記画像を構成する前記画素の描画の有無を決定する
ことを特徴とする請求項１に記載の画像作成装置。
【請求項９】
前記描画手段は、前記モデルに付加された補間制御情報に従って、前記画像の局所的な補間の有無を決定する
ことを特徴とする請求項１に記載の画像作成装置。
【請求項１０】
前記画像を表示する表示手段
をさらに備えることを特徴とする請求項１に記載の画像作成装置。
【請求項１１】
平面パッチに、所定のモデル表面の凹凸に対応した距離情報からなるテクスチャ座標上の距離画像をマッピングし、前記モデルに対応する画像を作成し、前記画像をスクリーン座標上に描画する画像作成方法において、
前記平面パッチの座標を、前記テクスチャ座標上の座標に変換し、
前記テクスチャ座標上における平面パッチのスキャン単位、および前記テクスチャ座標上における平面パッチの面積に基づいて、前記画像の描画時間を予測し、前記描画時間に従って前記画像の描画精度を調整し、
前記画像を構成する画素を前記スクリーン座標上へ描画するときに、前記画像の描画精度の調整の結果に応じて、前記平面パッチをスキャンし、前記テクスチャ座標における前記距離画像に対応して、前記画素の前記スクリーン座標上への描画位置を制御する
ことを特徴とする画像作成方法。
【請求項１２】
前記平面パッチの前記座標が変換された前記テクスチャ座標上において、前記平面パッチをスキャンし、スキャンした前記テクスチャ座標における前記距離画像に対応して、前記画像を構成する前記画素の前記スクリーン座標上への描画位置を制御する
ことを特徴とする請求項１１に記載の画像作成方法。
【請求項１３】
前記テクスチャ座標に変換された前記平面パッチを前記スクリーン座標上に投影し、前記スクリーン座標上において前記平面パッチをスキャンし、スキャンした前記スクリーン座標に対応する前記テクスチャ座標における前記距離画像に対応して、前記画像を構成する前記画素の前記スクリーン座標上への描画位置を制御する
ことを特徴とする請求項１１に記載の画像作成方法。
【請求項１４】
前記スキャン単位を変更することにより、前記画像の精度を調整する
ことを特徴とする請求項１１に記載の画像作成方法。
【請求項１５】
前記距離画像に従って、前記平面パッチの所定のものと、前記平面パッチの他の所定のものを互いに接触させるかまたは一部若しくは全部が重なるように変形して描画する
ことを特徴とする請求項１１に記載の画像作成方法。
【請求項１６】
視点座標および光源座標の少なくともいずれか一方をテクスチャ座標系に変換し、ライティング処理をさらに行う
ことを特徴とする請求項１１に記載の画像作成方法。
【請求項１７】
視点と、視点から最も離れた位置にある平面パッチの頂点との間の前後関係に基づいて決定し、前記平面パッチ内のスキャン開始点、スキャン順序、およびスキャン方向に従って、前記画像を描画する
ことを特徴とする請求項１１に記載の画像作成方法。
【請求項１８】
Ｚバッファによる陰面消去によって、前記画像を構成する前記画素の描画の有無を決定する
ことを特徴とする請求項１１に記載の画像作成方法。
【請求項１９】
前記モデルに付加された補間制御情報に従って、前記画像の局所的な補間の有無を決定する
ことを特徴とする請求項１１に記載の画像作成方法。
【請求項２０】
前記画像をさらに表示する
ことを特徴とする請求項１１に記載の画像作成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像作成装置および装置に関し、電子的な映像生成、コンピュータグラフィクス、またはＣＡＤ（Computer Aided Design）などにおいて用いて好適な、画像作成装置および方法に関する。
【０００２】
【従来の技術】
近年、コンピュータグラフィクスの分野において、表現力豊かな映像を作成するため、形状の微細な凹凸を表現できるレンダリング方法が要求されている。また、微細な凹凸までをも表現した映像を、バーチャルリアリティーやゲームなどのリアルタイムアプリケーションに適用したいという要求も高まっている。
【０００３】
これらの要求を満たすため、ディスプレースメントマッピング法が提案されている。このディスプレースメントマッピング法は、モデル表面に距離画像として表現した凹凸を張り付けることによってレンダリングを行う技術であり、この技術を用いることにより、比較的少ないパッチデータによって微細な凹凸のある形状をレンダリングすることが可能である。
【０００４】
従来のディスプレースメントマッピング法は、微小ポリゴン分割法によって行われていた。これは、距離画像をマッピングしたパッチの表面上の点の座標を適切な間隔で計算し、表面上の点を辺で結んで多数の微小なポリゴン（パッチ）を作成し、これらを塗りつぶすことによってレンダリングを行う方法である。その場合、ポリゴンソーティング法などのように、手前のポリゴンを時間的に後から描くアルゴリズムが適用される。
【０００５】
【発明が解決しようとする課題】
レンダリングに使うことができる時間が決まっているリアルタイムアプリケーションにおいては、 処理時間の予測は重要である。なぜならば、処理時間を正確に予測することにより、作成した映像に及ぼす悪影響が最も少ない方法によるレンダリングの省略が可能だからである。逆に、処理時間の予測が不正確であれば、レンダリングにおいて、時間の余剰によるシステムのストールや、時間の不足によるレンダリングの打ち切りの原因となる。
【０００６】
しかしながら、従来の微小ポリゴン分割法によるディスプレースメントマッピング法においては、所要時間の正確な予測は困難である。なぜならばレンダリングの最終段階における微小ポリゴンの塗りつぶしの所要時間は、画面上における画素数に支配されるが、微小ポリゴン分割によって生じる極めて多数のポリゴンについて、画面上における画素数をレンダリングの初期段階であらかじめ求めておくことは困難だからである。
【０００７】
特に、ポリゴンソーティング法などのように、手前のモデル（ポリゴン）を時間的に後から描くアルゴリズムをリアルタイムレンダリングに適用する場合、時間の不足による描画の打ち切りは、視点に最も近いパッチの欠損を引き起こし、最も目立つ部分において画像を著しく損なう原因となる。すなわち、リアルタイム用途でソーティング法を用いた従来の方法は、制限時間切れでレンダリングを打ち切っていた。このため、最後に処理される視点に近く、視覚上最も重要なパッチが、レンダリングされない場合があった。
【０００８】
以上のことから、ディスプレースメントマッピング法によって、正確な時間予測に基づいた高品質の映像を作成するために、処理時間の予測が容易なレンダリング方法が望まれていた。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、ディスプレースメントマッピング法を用いた、処理時間の予測が容易なレンダリング方法を実現するとともに、予測した処理時間に対応して、レンダリング品質を制御し、欠損の目立たない画像を作成することができるようにするものである。
【００１０】
【課題を解決するための手段】
請求項１に記載の画像作成装置は、平面パッチの座標を、テクスチャ座標上の座標に変換する座標変換手段と、テクスチャ座標上における平面パッチのスキャン単位、およびテクスチャ座標上における平面パッチの面積に基づいて、画像の描画時間を予測し、描画時間に従って画像の描画精度を調整する精度調整手段と、画像を構成する画素をスクリーン座標上へ描画する描画手段と、精度調整手段による画像の描画精度の調整結果に応じて、平面パッチをスキャンし、テクスチャ座標における距離画像に対応して、描画手段による画素のスクリーン座標上への描画位置を制御する描画位置制御手段とを備えることを特徴とする。
【００１１】
請求項１１に記載の画像作成方法は、平面パッチの座標を、テクスチャ座標上の座標に変換し、テクスチャ座標上における平面パッチのスキャン単位、およびテクスチャ座標上における平面パッチの面積に基づいて、画像の描画時間を予測し、描画時間に従って画像の描画精度を調整し、画像を構成する画素をスクリーン座標上へ描画するときに、画像の描画精度の調整の結果に応じて、平面パッチをスキャンし、テクスチャ座標における距離画像に対応して、画素のスクリーン座標上への描画位置を制御することを特徴とする。
【００１２】
請求項１に記載の画像作成装置においては、座標変換手段により、平面パッチの座標がテクスチャ座標上の座標に変換され、精度調整手段により、テクスチャ座標上における平面パッチのスキャン単位、およびテクスチャ座標上における平面パッチの面積に基づいて、画像の描画時間が予測されて、描画時間に従って画像の描画精度を調整される。そして、描画手段により、画像を構成する画素がスクリーン座標上へ描画され、描画位置制御手段により、画像の描画精度の調整結果に応じて、平面パッチをスキャンし、テクスチャ座標における距離画像に対応して、描画手段による画素のスクリーン座標上への描画位置が制御される。従って、描画処理時間の予測を容易に行うことができる。
【００１３】
請求項１１に記載の画像作成方法においては、平面パッチの座標を、テクスチャ座標上の座標に変換し、テクスチャ座標上における平面パッチのスキャン単位、およびテクスチャ座標上における平面パッチの面積に基づいて、画像の描画時間を予測し、描画時間に従って画像の描画精度を調整し、画像を構成する画素をスクリーン座標上へ描画するときに、画像の描画精度の調整の結果に応じて、平面パッチをスキャンし、テクスチャ座標における距離画像に対応して、画素のスクリーン座標上への描画位置を制御する。従って、描画処理時間の予測を容易に行うことができる。
【００１４】
【発明の実施の形態】
図１は、距離画像の組合せから成るデータによるレンダリング方法の処理概要を示している。図１に示したように、まず、距離画像などのテクスチャ画像の並び３０７と概略パッチの並び３０５に対して、視点６３０、光源６３２、および投影面６１９が決定される。次に、視点６３０から見える概略パッチ上のテクスチャ画素の補間やライティング計算などによって、描画する画素６４１が計算される。最後に、この画素６４１が画像データ８としてスクリーン座標上に描画されることによってレンダリングが行われる。
【００１５】
図２は、図１に示した処理が実行されるときのデータの流れを示している。モデルデータ３および変換行列データ６は、レンダリング部５に入力され、レンダリング処理が施された後、画像データとして出力される。レンダリング部５は、後述する中央処理装置（ＣＰＵ）１２において実行される所定のアプリケーションプログラムによって構成される。
【００１６】
図３は、本発明の画像作成装置の構成例を示している。この画像作成装置において、ディスク１１は、モデルデータ３、変換行列データ６、およびアプリケーションプログラム等を記憶する。ＣＰＵ１２は、ディスク１１から主記憶１３にロードされたアプリケーションプログラムに従って動作し、ディスク１１より供給されたデータに基づいて、レンダリング処理等を行うようになされている。
【００１７】
ディスク１４は、ＣＰＵ１２より供給されたレンダリング処理された結果を記録する。表示装置１５は、ＣＰＵ１２より供給されたレンダリング処理された結果に対応する画像を表示するようになされている。
【００１８】
モデルデータ３および変換行列データ６はＣＰＵ１２に入力される。ＣＰＵ１２に供給されたモデルデータ３は、変換行列データ６を用いてレンダリング部５によりレンダリング処理が行われる。レンダリング部５において作成された画像データ８は、ディスク装置１４に保存されるか、または表示装置１５に供給されて表示される。レンダリング部５における処理の中間結果や入出力データは、必要に応じて主記憶装置１３に一時的に保存され、ＣＰＵ１２により適宜読み出される。
【００１９】
次に、モデルデータ３について説明する。上記実施例に入力されるデータは、例えば図４に示したような構成のモデルデータ３を、一枚の画像データをレンダリングするために必要なモデル全体について組み合わせたものである。モデルデータ３は、概略パッチデータ３４の並び３０４、物体の形状と表面の状態を表すテクスチャ画像データ３６の並び３０６、および補間制御データ３０の並び３００から構成されている。１個の概略パッチデータ３４は、テクスチャ画像データ３６、および補間制御データ３０を１個ずつ参照している。
【００２０】
概略パッチデータ３４の並び３０４は、図１において、モデルの概略の形状を表す複数の概略パッチの並び３０５を表すデータであり、テクスチャ画像データ３６の並び３０６は、物体の形状と表面の状態を表すテクスチャ画像の並び３０７を表すデータである。これらのデータはディスク装置１１に記憶される。
【００２１】
テクスチャ画像データ３６は、後述するように、テクスチャ画素データ３８を２次元状に並べたものであり、テクスチャ画素データ３８は、オリジナルモデルの凹凸や表面の状態を表すデータから成る。テクスチャ画像の中の距離画像同士が接触するか、または重なることによって、所定のモデルの形状を表すモデルデータ３が構成される。
【００２２】
次に、概略パッチデータ３４について説明する。図５は、上記実施例に入力される概略パッチデータ３４の構成例を示している。概略パッチデータ３４は、モデル全体を取り囲むポリゴンのひとつを表している。
【００２３】
ＭＣ頂点座標３４０は、モデルを記述するモデリング座標系（ＭＣ：Model Coordinate）におけるパッチの形状や大きさを表すデータである。ここでは、上記実施例におけるパッチは、オリジナルモデルを包囲する直方体の各面に対応しており、ＭＣ頂点座標３４０は、その形状および大きさを表すものとされている。ＴＣ頂点座標３４２は、テクスチャ画像データの格子に対応したテクスチャ座標系（ＴＣ：Texture Coordinate）において、パッチの各頂点に対応づけるテクスチャデータの位置や倍率を決定する。
【００２４】
また、テクスチャ座標系からモデリング座標系への変換を行うための変換行列３４４は、モデリング座標系におけるパッチの頂点のモデリング座標と、このパッチ上にマッピングするテクスチャの分解能に基づく画素数から求められるテクスチャ座標系におけるパッチの頂点に対応するテクスチャ座標との間の変換行列である。この行列は、４頂点のモデリング座標系およびテクスチャ座標系のそれぞれの座標から求められる。また、テクスチャ画像データへの参照３４６は、概略パッチにマッピングするテクスチャ画像データ３６を参照するためのポインタなどからなる。
【００２５】
次に、テクスチャ画像データ３６について説明する。図６は、上記実施例に入力されるテクスチャ画像データ３６の例を示しており、図７は、上記実施例に入力されるテクスチャ画素データ３８の例を示している。テクスチャ画像データ３６は、テクスチャ座標をテクスチャ画素アドレスに変換するためのテクスチャ画素アドレス変換係数３６２と、テクスチャ画素データ３８の２次元配列との組である。２次元配列テクスチャ画素アドレスｓおよびテクスチャ画素アドレスｔを要素番号としてアクセスすることができる。
【００２６】
テクスチャ画素データ３８は、テクスチャ画像を構成する画素データであり、以下の内容を含んでいる。すなわち、テクスチャ画素距離データ３８１は、パッチから垂直（パッチの法線方向に）にサンプリングした、パッチからオリジナルモデルまでの距離を表している。テクスチャ画素色データ３８３は、パッチ上のテクスチャ画素に投影したオリジナルモデル上の色を表している。また、テクスチャ画素法線データ３８５は、パッチ上のテクスチャ画素に投影したオリジナルモデル上の法線ベクトルを表している。テクスチャ画素アルファデータ３８７は、オリジナルモデルからパッチ上のテクスチャ画素に投影されたオリジナルモデルの有無を表している。
【００２７】
次に、補間制御データ３０について説明する。図８は、補間制御データ３０の例を示しており、図９は、補間制御データ３０を構成する画素間補間制御データ３２の例を示している。補間制御データ３０は、画素間補間制御データ３２の２次元配列からなり、パッチ上の距離画像データの連続性を表している。
【００２８】
画素間補間制御データ３２は、ｓ方向補間制御データ３２１およびｔ方向補間制御データ３２３から成る。ｓ方向補間制御データ３２１およびｔ方向補間制御データ３２３は、パッチ上の隣接テクスチャ画素間において、モデルが連続しているかどうかを規定する。これらの画素間補間制御データ３２は、テクスチャ画素に対応しており、テクスチャ画素アドレスｓおよびｔによりアクセスが可能である。
【００２９】
テクスチャ画素アドレスが（ｓ，ｔ）の画素のｓ方向補間制御データ３２１が１であれば、テクスチャ画素アドレスが（ｓ，ｔ）および（ｓ＋１，ｔ）の間において、モデルは不連続であることを意味し、０であれば連続であることを意味している。また、テクスチャ画素アドレスが（ｓ，ｔ）の画素のｔ方向補間制御データ３２３が１であれば、テクスチャ画素アドレスが（ｓ，ｔ）および（ｓ，ｔ＋１）の間において、モデルが不連続であることを意味し、０であれば連続であることを意味している。
【００３０】
次に、変換行列データ６について説明する。図１０は、レンダリング部５に入力される変換行列データ６の例を示している。変換行列データ６は、例えばモデリング座標系（ＭＣ）から視点座標系（ＶＣ）への変換行列、およびその逆行列などの座標変換データ６１、並びにライティングに関連するライティングデータ６３からなる。
【００３１】
座標変換データ６１は、例えばモデリング座標系から視点座標系への変換行列６１１、視点座標系からモデリング座標系への変換行列６１２、およびモデリング座標系からスクリーン同次座標系（ＨＳＣ）への変換行列６１３から成る。さらに、ライティングデータ６３は、図１に示した視点６３０の位置を表す視点座標データ６３１、および光源６３２の位置を表す光源座標データ６３３から成る。
【００３２】
上記実施例によりレンダリング処理された結果としての画像データ８は、画像を構成するＲ（赤），Ｇ（緑），Ｂ（青）の各画素値の２次元配列よりなる。
【００３３】
図１１は、ＣＰＵ１２が所定のアプリケーションプログラムを実行することにより構成されるレンダリング部５の構成およびデータの流れを示している。レンダリング部５を構成するモデルデータソーティング部５１は、まず、モデルデータ３の中の概略パッチデータの並び３０４に対してソーティングを行い、視点から遠い順に、概略パッチデータ３４ｐをひとつずつ取り出すようになされている。
【００３４】
座標変換部５３は、モデルデータソーティング部５１より供給された概略パッチデータ３４ｐに含まれる変換行列と、座標変換データ６１に含まれる変換行列を乗じることにより、視点や視線に依存した変換行列群６５を作成する。次に、視点座標や光源座標のテクスチャ座標系への座標変換を行う。テクスチャ座標計算部５５（座標変換手段）は、概略パッチデータ３４ｐの各頂点座標をテクスチャ座標系に変換し、テクスチャ座標系における概略パッチ上のテクスチャ座標を２次元的にスキャンすることにより、パッチ上でのテクスチャ座標データ６４を一定の間隔で求め、出力するようになされている。
【００３５】
テクスチャ画素計算部５７は、概略パッチデータ３４ｐとテクスチャ座標データ６４から、テクスチャ画素データ３８の読み出しと補間を行い、補間済みテクスチャ画素データ３９ｐを作成する。最後に、画像描画部５９（描画手段、描画位置制御手段、精度調整手段）は、補間済みテクスチャ画素データ３９ｐ、テクスチャ座標データ６４、および変換行列群６５から、画素値データ６６と画素値データ６６のそれぞれに対応するスクリーン座標データ６８を計算し、レンダリング結果としての画像データ８を出力する。レンダリング部５より出力された画像データ８に対応する画像は、ディスク装置１４に記録されたり、表示装置１５に表示されるようになされている。
【００３６】
以下、図１１に示したレンダリング部５の動作について説明する。モデルデータソーティング部５１には、モデルデータ３および変換行列データ６が入力される。次に、視点からパッチの重心までの視線方向に計った距離に基づき、モデルデータ３が含む概略パッチ全体に対してソーティングが行われる。最後に、ソート結果に基づいて、視点から遠い順に概略パッチデータ３４ｐが１つずつ出力される。
【００３７】
座標変換部５３においては、モデルデータソーティング５１より供給された概略パッチデータ３４ｐに含まれる変換行列３４４と、座標変換データ６１から取り出された変換行列を乗じることによって、視点や視線に依存した変換行列群６５が作成されるとともに、視点座標データや光源座標データのテクスチャ座標系への座標変換が行われる。
【００３８】
変換行列群６５は、視点座標系からテクスチャ座標系への変換行列、テクスチャ座標系から視点座標系への変換行列、テクスチャ座標系からスクリーン同次座標系への変換行列、さらには視点座標データ６３１および光源座標データ６３３を、テクスチャ座標系に変換したテクスチャ座標系（ＴＣ）視点データ６３１ｔおよびテクスチャ座標系（ＴＣ）光源データ６３３ｔから成る。
【００３９】
図１２は、図１に示した概略パッチの並び３０５から、モデルデータソーティング部５１でソートしたパッチのひとつ（概略パッチ３５ａ）が取り出され、座標変換部５３において視点座標データ６３１と光源座標データ６３３がテクスチャ座標系の視点座標データ６３１ｔと光源座標データ６３３ｔに変換された状態を示している。
【００４０】
図１３は、図１２に示した概略パッチ３５ａに、テクスチャ座標計算部５５における処理が施されたものである。テクスチャ座標計算部５５は、図１２におけるモデリング座標系の概略パッチ３５ａをテクスチャ座標系の概略パッチ３５ａｔに変換し、概略パッチ３５ａｔ上のテクスチャ座標を２次元的にスキャンすることにより、概略パッチ３５ａｔ上でのテクスチャ座標６４ｐを一定の間隔で求め、順次出力する。
【００４１】
まず、テクスチャ座標計算部５５では、テクスチャ座標のスキャン単位が求められる。概略パッチ３５ａｔ上の１テクスチャ画素に対応するスクリーン（投影面）６１９上における大きさの最小値を求め、この最小値に係数を乗じたものをスキャン単位とする。上記実施例における係数は、例えばｓ方向およびｔ方向についてそれぞれ１テクスチャ画素に対応するスクリーン画素上における大きさの０．５画素分としている。
【００４２】
次に、テクスチャ座標のスキャン単位と、テクスチャ画像の面積比から、スキャン単位が計算された後の処理コストが求められる。その結果、制限時間以内にレンダリングが終了する見通しが立たない場合、例えばレンダリング品質を犠牲にしても制限時間内でのレンダリングを可能とするために、スキャン単位を大きくするなどの処理が行われる。
【００４３】
次に、スキャンの初期値（スキャン開始点）、およびメジャースキャンの方向および増分、並びにマイナースキャンの方向および増分が決定される。まず、スキャン初期値６４１は、視点座標データ６３１ｔで表される視点６３０から最も遠いところに定められる。次に、スキャン初期値６４１から始まってパッチ３５ａｔ全体をスキャンする方向を２種類定め、１単位のスキャンで視点に近づく距離が大きい方の方向をメジャースキャンとし、１単位のスキャンで視点に近づく距離が小さい方の方向をマイナースキャンとする。
【００４４】
例えば図１３においては、スキャン初期値６４１から始まってパッチ３５ａｔ全体をスキャンする方向は、−ｔ方向６４３、および−ｓ方向６４５の２種類である。このうち、視点に近づく距離が大きい方の−ｔ方向６４３をメジャースキャン、小さい方の−ｓ方向６４５をマイナースキャンとする。
【００４５】
最後に、テクスチャ座標のスキャン初期値６４１に、マイナー方向の増分（マイナー増分）を加えることで、テクスチャ座標６４ｐを一定の間隔で順次求め、出力する。テクスチャ座標が概略パッチ３５ａｔをはみ出した場合、メジャー方向の増分（メジャー増分）をスキャン初期値５４１に加え、マイナー方向を初期化する（マイナー方向の座標をスキャン初期値６４１と同一の座標にする）。
【００４６】
図１４は、テクスチャ画素計算部５７における画素の読み出しと補間の作用を示している。まず、テクスチャ座標データ６４の整数部と、現在レンダリング中のパッチのテクスチャ画素アドレス変換係数３６２が、テクスチャ画素計算部５７のテクスチャ画素読み出し部（図示せず）を介して入力され、テクスチャ画素のアドレスとテクスチャ座標の端数（小数部）が得られる。
【００４７】
次に、テクスチャ画像データ３６からテクスャ画素のアドレスで指示されるテクスチャ画素データ３８と、その４連結のテクスチャ画素データ３８が読み出され、テクスチャ画素補間部５７３に入力される。また、補間制御データ３０から、テクスチャ画素のアドレスで指示される画素間補間制御データ３２が読み出され、同様にテクスチャ画素補間部５７３に入力される。ここで、４連結のデータのうち、前回のマイナー増分を加える前に読み出されたものがあればそれを使うこともできる。
【００４８】
読み込んだテクスチャ画素データ３８と画素間補間制御データ３２、およびテクスチャ座標の端数は、テクスチャ画素補間部５７３に入力され、距離画素値のバイリニア補間、色画素値のバイリニア補間、法線値のバイリニア補間および長さ１への正規化が行われる。その結果として、補間済み距離データ３９１ｐ、補間済み色データ３９３ｐ、補間・正規化済み法線データ３９５ｐ、および補間済みアルファデータ３９７ｐなどからなる補間済みテクスチャ画素データ３９ｐが得られる。
【００４９】
ここで、読み出した画素のアルファデータが「０」、つまりモデルの不存在を指示している場合は描画を行わない。また、ｓ方向補間制御データ３２１ｐが「１」、つまり不連続を指示している場合は、ｓ方向に近い整数に丸められたｓテクスチャ座標に対応するテクスチャ画素を使用してｔ方向だけのリニア補間が行われる。一方、ｔ方向補間制御データ３２３ｐが「１」、つまり不連続を指示している場合は、ｔ方向の近い整数に丸められたｔテクスチャ座標に対応するテクスチャ画素を使用してｓ方向だけのリニア補間が行われる。
【００５０】
図１５は、図１１に示した画像描画部５９の動作を表している。画像描画部５９においては、補間済みテクスチャ画素データ３９ｐ、テクスチャ座標６４ｐ、および変換行列群６５から、ライティング計算部５９１（ライティング手段）を介して、表示する画素の画素値６６とスクリーン座標６８が計算され、レンダリング結果としての画像データ８が作成される。
【００５１】
まず、ライティング計算部５９１において、補間・正規化済み法線データ３９５ｐと補間済み色データ３９３ｐに対して、ＴＣ視点データ６３１ｔおよびＴＣ光源データ６３３ｔを使用したライティング計算が行われ、画素値６６が求められる。このとき、ライティング計算部５９１においては、コンピュータグラフィクスで通常用いられる拡散反射、鏡面反射、またはこれらの組合せなどの任意のライティング計算アルゴリズムが使用可能である。
【００５２】
次に、テクスチャ座標６４ｐによって表される概略パッチ３５上の点に、補間済み距離データ３９１ｐによって表される差分が、テクスチャ座標系６９ｔにおけるｕ方向に加えられることにより、距離画像でずらしたテクスチャ座標６４ａが求められる。さらに、距離画像でずらしたテクスチャ座標６４ａにテクスチャ座標からスクリーン同次座標系への変換行列を乗じることにより、スクリーン同次座標が求められる。このスクリーン同次座標に対して、遠近を表す値ｗ＝１となるように正規化処理が施されることにより、視点に対して投影した投影スクリーン座標６８ｓが求められ、これに適切な丸めを行うことにより整数スクリーン座標６８が求められる。
【００５３】
最後に、画素値の２次元配列で表される画像データ８の整数スクリーン座標６８に対応する画素に、ピクセル値６６を書き込むことにより、１画素の描画を行う。以上の操作をすべての入力に対して行うことにより、画像データ８の全体を生成する。
【００５４】
以上のようにして、レンダリングを行うことができる。
【００５５】
図１６および図１７は、スクリーン座標スキャン法によってレンダリングを行う場合の例を示している。
【００５６】
上記実施例におけるディスプレースメントマッピング法によるパッチのレンダリングアルゴリズムは、スクリーン座標をスキャンしていく場合にも適用することができる。この方法は、図１１に示した上記実施例のテクスチャ座標計算部５５における処理を、以下の通りに変更することにより実現可能である。
【００５７】
すなわち、図１６において、図１２におけるモデリング座標の概略パッチ３５ａを、テクスチャ座標系のパッチ３５ａｔに変換し、パッチ３５ａｔを投影面に投影して投影パッチ３５ｐｒｏｊを作成する。次に、投影パッチ３５ｐｒｏｊ上のスクリーン座標を一定の間隔でスキャンし、スキャンしたスクリーン座標をパッチ３５ａｔに逆投影して、逆投影した場所に対応するテクスチャ座標を求めるようにする。
【００５８】
そのために、まず、テクスチャ座標のスキャン単位が求められる。概略パッチ３５ａｔ上の１テクスチャ画素のスクリーン上における大きさの最小値が求められ、最小値に所定の係数を乗じたものがスキャン単位とされる。本実施例における係数は、ｘ方向およびｙ方向（スクリーン座標系）についてそれぞれ０．５画素とされている。次に、テクスチャ座標のスキャン単位と、テクスチャ画像の面積比から、スキャン単位を計算した後の処理コストが求められる。その結果、制限時間以内にレンダリング処理が終了する見通しが立たない場合、例えばレンダリング品質を犠牲にしても制限時間内にレンダリング処理が終了するように、スキャン単位を大きくするなどの処理が行われる。
【００５９】
次に、スキャン初期値６４１−２は、例えばｙ座標の値が最も大きい頂点とされ、メジャースキャンの方向はｙ方向、増分６４３−２は０．５画素、マイナースキャンの方向はｘ方向、増分６４５−２は０．５画素とされる。
【００６０】
最後に、スクリーン座標のスキャン初期値にマイナー増分を加えることにより、スクリーン座標６４ｓが順次求められる。スクリーン座標６４ｓに対応するテクスチャ座標６４ｐが概略パッチ３５ａｔをはみ出した場合、スクリーン座標上においてメジャー増分が加えられ、マイナー方向が初期化される。さらにそれぞれのスクリーン座標６４ｓについて逆投影が行われ、テクスチャ座標６４ｐが求められる。
【００６１】
次に、陰面消去にＺバッファ法を使用する場合について説明する。以上の実施例においては、パッチのソーティング、メジャスーキャン、およびマイナースキャンの描画方法を選ぶことによって、視点に対して奥の方から手前に向かって描画する方法を用いているが、モデルデータソーティング部５１におけるソーティング処理を省略し、画像描画部５９において奥行き比較を行うＺバッファ法によっても、同様に陰線消去を行うことができる。
【００６２】
次に、スキャン単位を変更した場合について説明する。以上の実施例で述べた、テクスチャ座標計算部５５において求められるスキャン単位は一定であるが、例えば１次関数などによって動的に変化させることもできる。すなわち、例えば、プリミティブが視点に対して比較的遠い位置にある場合、スキャン単位を大きくし、プリミティブが視点に対して比較的近い位置にある場合、スキャン単位を小さくする。これにより、同一のプリミティブの遠近によるレンダリング品質のばらつきを小さくすることができる。
【００６３】
次に、時間切れの際のレンダリングの他の省略方法について説明する。テクスチャ座標計算部５５における処理コストの見積り結果によって、制限時間以内にレンダリングが終了する見通しが立たない場合、上記実施例において上述したように、スキャン単位を大きくする上記方法の他に、結果の品質を下げて高速化を行うための他の異なる処理を行うようにしても同等の効果が得られることは明らかである。
【００６４】
例えば、現在レンダリングしようとしているパッチの重要度が低い場合、そのパッチ全体の描画を省略し、レンダリングの品質を下げることにより、描画処理を高速化する。あるいは、さらにパッチ数の少ない粗いモデルと交換することにより、レンダリングの品質を下げ、描画処理を高速化する。
【００６５】
このようにして、レンダリングの品質を下げることにより、制限時間以内にレンダリングが終了するようにすることができる。
【００６６】
以上のように、上記実施例においては、パッチ数を大幅に削減したモデルをレンダリングすることにより、パッチの座標変換に必要な高精度の浮動小数点演算の回数を大幅に削減することができる。また、パッチ数の減少に伴って、ソーティング法によるレンダリングにおいて必要とされるパッチ処理段階でのソーティングのコストをきわめて小さくすることができる。
【００６７】
また、パッチ数の削減により、パッチのスクリーン上での面積を計算することによってレンダリングにかかる時間を予測することが極めて安価に可能となる。このため、リアルタイムでレンダリングを行うようなリアルタイム用途において、レンダリングの制限時間を越えないように、レンダリング品質とレンダリング時間のトレードオフを動的に変えることができる。
【００６８】
ライティングは、視点から見える照明されたパッチの色を求める演算であるが、この演算は、視点とパッチ上の点を結ぶ視線と法線のなす角および光源とパッチ上の点を結ぶ光線と法線のなす角に基づいて行われる。これらの角を求めるためには、視線、光線、および法線の座標系を一致させる必要があり、座標系の一致は、テクスチャ座標系へ視点および光源の座標を変換する方法、またはテクスチャ法線データを視点および光源が定義されているグローバル座標系へ変換する方法により行われる。
【００６９】
従来のマッピング法においては、１枚のテクスチャ画像およびテクスチャ法線データが、多数の平面パッチや曲面パッチにマッピングされる。このようなマッピング法においては、グローバル座標系からテクスチャ座標系への変換はパッチ毎に異なる。このため、テクスチャ法線データを使用したライティングにおいて、視線および光線をテクスチャ座標系に変換する方法によって座標系を一致させるためには、多数のパッチの全てについて異なる視線および光源の座標変換を行う必要がある。また、テクスチャ法線をグローバル座標系に変換する方法で座標系を一致させるためには、テクスチャ画像法線の全ての画素について、座標変換を行う必要がある。これらの方法は、いずれも座標変換に伴う計算コストを大量に要している。
【００７０】
これに対して、上記実施例においては、１枚のテクスチャ画像を平面パッチにマッピングしているため、視線および光源と法線の座標系を揃えるためには、テクスチャ画像データ１枚に対して、視線および光源の座標をテクスチャ座標系に変換する座標変換を１回だけ行えば充分である。以上のことから、上記実施例においては、ライティングに伴う座標変換のコストを大幅に削減することができる。
【００７１】
さらに、上記実施例においては、パッチに対応づけられた距離画像の分解能はほぼ一定であるため、モデルにおける不必要に細かい分解能の部分が自動的に省略される。このため、レンダリング結果として得られる画像において、モデルエリアシング（不自然さ）を生じ難くさせることができる。
【００７２】
また、上記実施例においては、レンダリングにおいて、距離画像、法線、およびテクスチャ画像の３つが同じデータ構造をとるモデルデータを用いることにより、アドレス計算の回数の減少、アドレス出力のハードウエアのコストダウン、およびレンダリングにおけるデータフローの単純化などを行うことができる。特に、スクリーン座標スキャンによるディスプレースメントマッピング法は、スクリーン座標スキャンによる塗りつぶしを行う従来のグラフィクスシステムに容易に付加できる。したがって、ごく少数のパッチの接続によるモデル表現が、ディスプレースメントマッピング法の付加により、低コストで可能となる。
【００７３】
また、上記実施例における、テクスチャ座標スキャンによるディスプレースメントマッピング法では、テクスチャ画像の読み出しがシーケンシャルに行われる。このため、テクスチャデータを格納するために従来使われていたランダム読み出し性能の高い高価な記憶装置を使わずに高性能を実現できる。
【００７４】
さらに、上記実施例における、テクスチャ座標スキャンによるパッチの描画においては、同一パッチ内のスキャン順序および方向が、視点とパッチ頂点との前後関係に依存して動的に決定される。これにより、スキャン方向を固定する場合と比較して、レンダリングにおける演算コストが同じで、同一パッチ上の凹凸同士の前後関係がより正しく再現されるようにすることができる。
【００７５】
なお、上記各実施例においては、概略パッチの並び３０５を直方体としたが、他の任意の形状とすることができる。
【００７６】
【発明の効果】
請求項１に記載の画像作成装置、および請求項１１に記載の画像作成方法によれば、平面パッチの座標を、テクスチャ座標上の座標に変換し、テクスチャ座標上における平面パッチのスキャン単位、およびテクスチャ座標上における平面パッチの面積に基づいて、画像の描画時間を予測し、描画時間に従って画像の描画精度を調整し、画像を構成する画素をスクリーン座標上へ描画するときに、画像の描画精度の調整の結果に応じて、平面パッチをスキャンし、テクスチャ座標における距離画像に対応して、画素のスクリーン座標上への描画位置を制御するようにしたので、描画処理時間の予測を容易に行うことができ、例えば、リアルタイム用途において、レンダリング品質とレンダリング時間のトレードオフを動的に変えることが可能となる。
【図面の簡単な説明】
【図１】レンダリングの手順を説明するための図である。
【図２】レンダリングを行う際のデータの流れを示す図である。
【図３】本発明の画像作成装置の構成例を示すブロック図である。
【図４】モデルデータの例を示す図である。
【図５】概略パッチデータの例を示す図である。
【図６】テクスチャ画像データの例を示す図である。
【図７】テクスチャ画素データの例を示す図である。
【図８】補間制御データの例を示す図である。
【図９】画素間補間制御データの例を示す図である。
【図１０】変換行列データの例を示す図である。
【図１１】レンダリング部の構成および動作を説明するための図である。
【図１２】テクスチャ座標系に変換された視点座標および光源座標を示す図である。
【図１３】テクスチャ座標系に変換されたパッチ３５ａｔを示す図である。
【図１４】図１１のテクスチャ画素計算部５７の動作を説明するための図である。
【図１５】図１１の画像描画部５９の動作を説明するための図である。
【図１６】スクリーン座標スキャン法において、スクリーン座標をスキャンしている状態を示す図である。
【図１７】スキャンしたスクリーン座標に対応するテクスチャ座標を示す図である。
【符号の説明】
３  モデルデータ
６  変換行列データ
５  レンダリング部
８  画像データ
１１，１４  ディスク装置
１２  ＣＰＵ
１３  主記憶装置
１５  表示装置
３０  補間制御データ
３２  画素間補間制御データ
３４，３４ｐ  概略パッチデータ
３５ａ  概略パッチ
３５ａｔ  テクスチャ座標系の概略パッチ
３６  テクスチャ画像データ
３８  テクスチャ画素データ
３９ｐ  補間済みテクスチャ画素データ
５１  モデルデータソーティング部
５３  座標変換部
５５  テクスチャ座標計算部（座標変換手段）
５７  テクスチャ画素計算部
５９  画像描画部（描画手段、描画位置制御手段、精度調整手段）
６１  座標変換データ
６３  ライティングデータ
６４  テクスチャ座標データ
６４ｐ  テクスチャ座標
６４ａ  ずらしたテクスチャ座標
６４ｓ  スクリーン座標
６５  変換行列群
６６  画素値データ
６８  スクリーン座標データ
６８ｓ  投影スクリーン座標
６９ｔ  テクスチャ座標系
３００  補間制御データの並び
３０４  概略パッチデータの並び
３０６  テクスチャ画像データの並び
３２１，３２１ｐ  ｓ方向補間制御データ
３２３，３２３ｐ  ｔ方向補間制御データ
３４０  ＭＣ頂点座標
３４２  ＴＣ頂点座標
３４４  ＭＣからＴＣへの変換行列
３４６  テクスチャ画像データへの参照
３４８  補間制御データへの参照
３６２  テクスチャ画素アドレス変換係数
３８１  テクスチャ画素距離データ
３８３  テクスチャ画素色データ
３８５  テクスチャ画素法線データ
３８７  テクスチャ画素アルファデータ
３９１ｐ  補間済み距離データ
３９３ｐ  補間済み色データ
３９５ｐ  補間・正規化済み法線データ
３９７ｐ  補間済みアルファデータ
５７３  テクスチャ画素補間部
５９１  ライティング計算部（ライティング手段）
６１１  ＭＣからＶＣへの変換行列
６１２  ＶＣからＭＣへの変換行列
６１３  ＭＣからＨＳＣへの変換行列
６１９  投影面
６３１  視点座標データ
６３１ｔ  テクスチャ座標系の視点
６３３  光源座標データ
６３３ｔ  テクスチャ座標系の光源
６４１，６４１−２  スキャン初期値
６４３，６４３−２  メジャー方向
６４５，６４５−２  マイナー方向
【図１】
0003712015.tif 000002
【図２】
0003712015.tif 000003
【図３】
0003712015.tif 000004
【図４】
0003712015.tif 000005
【図５】
0003712015.tif 000006
【図６】
0003712015.tif 000007
【図７】
0003712015.tif 000008
【図８】
0003712015.tif 000009
【図９】
0003712015.tif 000010
【図１０】
0003712015.tif 000011
【図１１】
0003712015.tif 000012
【図１２】
0003712015.tif 000013
【図１３】
0003712015.tif 000014
【図１４】
0003712015.tif 000015
【図１５】
0003712015.tif 000016
【図１６】
0003712015.tif 000017
【図１７】
0003712015.tif 000018