米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 松下電器産業株式会社

発明の名称 画像生成装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開平7−200867
公開日 平成7年(1995)8月4日
出願番号 特願平5−349426
出願日 平成5年(1993)12月28日
代理人 【弁理士】
【氏名又は名称】斉藤 勲
発明者 望月 義幸 / 平井 誠
要約 目的
3次元スクリーン空間の計算を2次元の計算と同様その計算量を激減させるて高速且つ高画質な画像を生成可能な画像生成装置を提供すること。

構成
3次元空間中で定義された曲面又はポリゴンを2次元のスクリーン空間へ幾何変換する幾何変換手段1と、幾何変換後のスクリーン空間中の曲面又はポリゴンから、曲面又はポリゴンを分割してマイクロポリゴンを生成するマイクロポリゴン生成手段5と、マイクロポリゴンをレンダリングするレンダリング手段16とを含み、3次元空間中の曲面を2次元平面で計算することを特徴とする。
特許請求の範囲
【請求項1】3次元空間中で定義された曲面を2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中の曲面から、曲面を分割してマイクロポリゴンを生成するマイクロポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段とを備えたことを特徴とする画像生成装置。
【請求項2】3次元空間中でコントロールポイントによって定義された曲面がある時、コントロールポイントと同数の曲面上の点を2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中の曲面上の点からスクリーン空間でのコントロールポイントを算出するコントロールポイント算出手段と、前記スクリーン空間中のコントロールポイントを用いて曲面を分割してマイクロポリゴンを生成するマイクロポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段とを備えたことを特徴とする画像生成装置。
【請求項3】3次元空間中でコントロールポイントによって定義された曲面がある時、コントロールポイントと同数の曲面上の点を算出する曲面点算出手段と、前記曲面上の点を2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中の曲面上の点からスクリーン空間でのコントロールポイントを算出するコントロールポイント算出手段と、前記スクリーン空間中のコントロールポイントを用いて曲面を分割してマイクロポリゴンを生成するマイクポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段とを備えたことを特徴とする画像生成装置。
【請求項4】3次元空間中で定義されたポリゴンを2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中のポリゴンを分割してマイクロポリゴンを生成するマイクロポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段とを備えたことを特徴とする画像生成装置。
【請求項5】3次元空間中で定義されたポリゴンの頂点と内分点を2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中の頂点と内分点を用いてポリゴンを分割してマイクロポリゴンを生成するマイクロポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段とを備えたことを特徴とする画像生成装置。
【請求項6】曲面を与えられた分割数で分割したときにできる分割曲面を平行四辺形で近似し、近似した平行四辺形をレンダリングすることで画像を生成するレンダリング手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項7】曲面を与えられた分割数で分割したときにできる分割点と曲面の頂点を基準点とするとき、基準点を始点として始点を挟む2つの隣接する基準点を終点としてできる2つのベクトルで生成される平行四辺形のマイクロポリゴンで分割曲面を近似し、マイクロポリゴンをレンダリングすることで画像を生成するレンダリング手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項8】ポリゴンを与えられた分割数で分割したときにできるサブポリゴンを平行四辺形で近似し、近似した平行四辺形をレンダリングすることで画像を生成するレンダリング手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項9】ポリゴンを与えられた分割数で分割したときにできる分割点とポリゴンの頂点を基準点とするとき、基準点を始点として始点を挟む2つの隣接する基準点を終点としてできる2つのベクトルで生成される平行四辺形のマイクロポリゴンでサブポリゴンを近似し、マイクロポリゴンをレンダリングすることで画像を生成するレンダリング手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項10】ポリゴンを与えられた分割数で分割したときにできる分割点とポリゴンの頂点から4近接点を選び、この近接点を結んでできる四角形サブポリゴンの4辺の内最大辺の端点1つを始点とし、始点を挟む2つの近接点を終点とする2つのベクトルできる平行四辺形のマイクロポリゴンで前記四角形サブポリゴンを近似し、マイクロポリゴンをレンダリングすることで画像を生成するレンダリング手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項11】四角形ポリゴンを与えられた分割数で分割したときにできる分割点とポリゴンの頂点から4近接点を選び、この近接点を結んでできる四角形サブポリゴンの4辺の内、元の四角形ポリゴンの最大辺に対応する四角形サブポリゴンの辺の端点の1つを始点とし、始点を挟む2つの近接点を終点とする2つのベクトルできる平行四辺形のマイクロポリゴンで前記四角形サブポリゴンを近似し、マイクロポリゴンをレンダリングすることで画像を生成するレンダリング手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項12】曲面を与えられた分割数で分割したときにできる分割曲面の各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項13】曲面を与えられた分割数で分割したときにできる分割曲面を平行四辺形近似したマイクロポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項14】曲面を与えられた分割数で分割したときにできる分割曲面を三角形で近似したマイクロポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項15】ポリゴンを与えられた分割数で分割したときにできるサブポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項16】ポリゴンを与えられた分割数で分割したときにできるサブポリゴンを平行四辺形近似したマイクロポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項17】ポリゴンを与えられた分割数で分割したときにできるサブポリゴンを三角形で近似したマイクロポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項18】ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を平行四辺形近似したマイクロポリゴンを規定する基準点の位置座標とこの基準点を挟む2つの隣辺ベクトルの成分から面積寄与率のテーブルを参照するアドレスを生成するアドレス生成手段を備えたことを特徴とする請求項12、13、14、15、16、又は17記載の画像生成装置。
【請求項19】ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を三角形で近似したマイクロポリゴンを規定する基準点の位置座標とこの基準点を挟む2つの隣辺ベクトルの成分から面積寄与率のテーブルを参照するアドレスを生成するアドレス生成手段を備えたことを特徴とする請求項12、13、14、15、16、又は17記載の画像生成装置。
【請求項20】生成されたマイクロポリゴンに対して、マイクロポリゴンが規定の大きさ以内か否かを判定する再分割判定手段と、規定の大きさより大きい場合に元のマイクロポリゴンの4辺の長さから再分割するときの分割数を決定する分割数決定手段と、分割数でマイクロポリゴンを分割してサブマイクロポリゴンを生成するサブマイクロポリゴン生成手段と、生成されたサブマイクロポリゴンに対して規定の大きさ以内か否かを前記再分割判定手段によって判定し、規定の大きさより大きいときは分割数を更新する分割数更新手段とを有し、前記分割数更新手段で更新された分割数で前記サブマイクロポリゴン生成手段によって再帰的にサブマイクロポリゴンを生成することを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項21】曲面を規定するコントロールポイントの並び方による曲面の表面の向きを示す情報とこの曲面に対して生成されたマイクロポリゴンの法線の向きから、描画しなくてよいマイクロポリゴンを決定する裏面除去手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項22】2次元のスクリーン空間中の曲面に対して、一番手前あるいは奥の頂点からマイクロポリゴンが生成されるようにコントロールポイントのインデックスを変更するインデックス変更手段と、変更後のマイクロポリゴンの発生順番に合わせて輝度値データのアクセス順を変更するアクセス変更手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項23】ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴン及び分割曲面の基準点を1ピクセル内に固定し、サブポリゴン及び分割曲面を任意に移動させて生成し、エントリは最大サイズのサブポリゴンまたは分割曲面が含まれるだけのピクセル数分しか面積寄与率を保持していない面積寄与率テーブルを備えたことを特徴とする請求項12、13、14、15、16、又は17記載の画像生成装置。
【請求項24】ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を平行四辺形近似したマイクロポリゴンの基準点を1ピクセル内に固定し、この基準点を挟む2つの隣辺ベクトルを任意に移動させて生成し、エントリは最大サイズのマイクロポリゴンが含まれるだけのピクセル数分しか面積寄与率を保持していない面積寄与率テーブルを備えたことを特徴とする請求項12、13、14、15、16、又は17記載の画像生成装置。
【請求項25】ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を三角形で近似したマイクロポリゴンの基準点を1ピクセル内に固定し、この基準点を挟む2つの隣辺ベクトルを任意に移動させて生成し、エントリは最大サイズのマイクロポリゴンが含まれるだけのピクセル数分しか面積寄与率を保持していない面積寄与率テーブルを備えたことを特徴とする請求項12、13、14、15、16、又は17記載の画像生成装置。
【請求項26】ピクセルを計算精度に応じた分割数で分割したときにできるサブピクセルの内部の代表点が、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を四角形で近似したマイクロポリゴンの規定する領域内か否かを判定する内外判定手段と、前記内外判定手段の結果に基づきサブピクセルの代表点がマイクロポリゴンの規定する領域内に入っているサブピクセルの個数を数えるカウンティング手段と、前記カウンティング手段で数えた個数にサブピクセルの面積をかけて面積寄与率を算出する面積寄与率算出手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項27】ピクセルを計算精度に応じた分割数で分割したときにできるサブピクセルの内部の代表点が、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を平行四辺形で近似したマイクロポリゴンの規定する領域内か否かを判定する内外判定手段と、前記内外判定手段の結果に基づきサブピクセルの代表点がマイクロポリゴンの規定する領域内に入っているサブピクセルの個数を数えるカウンティング手段と、前記カウンティング手段で数えた個数にサブピクセルの面積をかけることで面積寄与率を算出する面積寄与率算出手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項28】ピクセルを計算精度に応じた分割数で分割したときにできるサブピクセルの内部の代表点が、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を三角形で近似したマイクロポリゴンの規定する領域内か否かを判定する内外判定手段と、前記内外判定手段の結果に基づきサブピクセルの代表点がマイクロポリゴンの規定する領域内に入っているサブピクセルの個数を数えるカウンティング手段と、前記カウンティング手段で数えた個数にサブピクセルの面積をかけることで面積寄与率を算出する面積寄与率算出手段とを備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項29】前記面積寄与率算出手段は算出した面積寄与率を全てプラスの方向に丸めることを特徴とする請求項26、27、又は28記載の画像生成装置。
【請求項30】各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和とを保持することが可能な記憶装置に対し、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対して算出された面積寄与率を書き込む際、面積寄与率の和が1より小さいとき、前の面積寄与率の和に前記算出された面積寄与率の値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、面積寄与率の和は前記テンポラリの値に更新し、前記計算用輝度値は前記算出された面積寄与率にマイクロポリゴンに与えた輝度値を乗じた値と前の計算用輝度値とを加えた値に更新し、前記テンポラリの値が1より大きい場合は、計算用輝度値は1から前の面積寄与率の和を減じた値にこのマイクロポリゴンに与えた輝度値を乗じた値と前の計算用輝度値とを加えた値に更新し、面積寄与率の和は1に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否か判定し、終了したと判定した場合、描画用輝度値を、1から面積寄与率の和を減じた値に前の描画用輝度値を乗じた値と計算用輝度値とを加えた値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和を0に初期化する1面処理終了判定手段とから成る記憶装置書き込み手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項31】面積寄与率に不透明度を乗じた値をピクセル寄与率とするとき、各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和とピクセル寄与率の和を保持することが可能な記憶装置に対し、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対して算出された面積寄与率を書き込む際、面積寄与率の和が1より小さいとき、前の面積寄与率の和に前記算出された面積寄与率の値を加えたテンポラリの値を計算し、前記テンポラリの値が1以下の場合は、面積寄与率の和は前記テンポラリの値に更新し、ピクセル寄与率の和はマイクロポリゴンに与えた不透明度に対し前記算出した面積寄与率を乗じた値と前のピクセル寄与率の和とを加えた値に更新し、計算用輝度値は前記算出した面積寄与率とマイクロポリゴンに与えた不透明度と輝度値とを乗じた値と、前の計算用輝度値とを加えた値に更新し、前記テンポラリの値が1より大きい場合は、計算用輝度値は1から前の面積寄与率の和を減じた値とこのマイクロポリゴンに与えた不透明度と輝度値とを乗じた値と、前の計算用輝度値とを加えた値に更新し、面積寄与率の和は1に更新し、ピクセル寄与率の和は1から前の面積寄与率の和を減じた値にマイクロポリゴンに与えた不透明度を乗じた値と、前のピクセル寄与率の和とを加えた値に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了したという判定ならば、描画用輝度値を、1からピクセル寄与率の和を減じた値に前の描画用輝度値を乗じた値と計算用輝度値とを加えた値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和とピクセル寄与率の和を0に初期化する1面処理終了判定手段とからなる記憶装置書き込み手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項32】各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和を保持することが可能な記憶装置に対し、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対して算出された面積寄与率を書き込む際、面積寄与率の和が1より小さいとき、前の面積寄与率の和に前記算出された面積寄与率の値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、面積寄与率の和は前記テンポラリの値に更新し、計算用輝度値は前記算出された面積寄与率と、描画用輝度値からマイクロポリゴンに与えた輝度値を減じた値とを乗じた値を前の計算用輝度値から減じた値に更新し、テンポラリの値が1より大きい場合は、計算用輝度値は1から前の面積寄与率の和を減じた値と、描画用輝度値からマイクロポリゴンに与えた輝度値を減じた値とを乗じた値を、前の計算用輝度値から減じた値に更新し、面積寄与率の和は1に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了したという判定ならば、描画用輝度値を計算用輝度値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和を0に初期化する1面処理終了判定手段とから成る記憶装置書き込み手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項33】各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和を保持することが可能な記憶装置がある時、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、面積寄与率の和が1より小さい時に限り、前の面積寄与率の和に算出した面積寄与率の値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、面積寄与率の和はテンポラリの値に更新し、計算用輝度値は、算出した面積寄与率と、マイクポリゴンに与えられた不透明度と、描画用輝度値からマイクロポリゴンに与えられた輝度値を減じた値とを乗じた値を、前の計算用輝度値から減じた値に更新し、テンポラリの値が1より大きい場合は、計算用輝度値は、1から前の面積寄与率の和を減じた値と、マイクポリゴンに与えられた不透明度と、描画用輝度値からマイクロポリゴンに与えられた輝度値を減じた値とを乗じた値を、前の計算用輝度値から減じた値に更新し、面積寄与率の和は1に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了したという判定ならば、描画用輝度値を計算用輝度値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和を0に初期化する1面処理終了判定手段とから成る記憶装置書き込み手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項34】各ピクセルの輝度値と面積寄与率の和を保持することが可能な記憶装置に対して、マイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、面積寄与率の和が1より小さい時に限り、前の面積寄与率の和に算出した面積寄与率の値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、前の面積寄与率の和をテンポラリの値に更新し、輝度値については、算出した面積寄与率にマイクロポリゴンに与えられた輝度値を乗じた値に前の輝度値を加えた値に更新し、テンポラリの値が1より大きい場合は、輝度値については、1から前の面積寄与率の和を減じた値にこのマイクロポリゴンに与えられた輝度値を乗じた値に前の輝度値を加えた値に更新し、面積寄与率の和は1に更新するレンダリング手段と、全てのポリゴンまたは曲面の処理が終わったか否かの判定を行う1シーン処理終了判定手段と、前記1シーン処理終了判定手段で終了したという判定がなされたならば、面積寄与率の和が1より小さいピクセルに対して、輝度値を記憶していた輝度値に、1から面積寄与率の和を減じた値と背景として与えられた輝度値とを乗じた値を加えた値に更新する輝度値修正手段とから成る記憶装置書き込み手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項35】面積寄与率に不透明度を乗じた値をピクセル寄与率とするとき、各ピクセルに対して輝度値とピクセル寄与率の和を保持することが可能な記憶装置がある時、マイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、ピクセル寄与率の和が1より小さい時に限り、前のピクセル寄与率の和に算出した面積寄与率とマイクロポリゴンに与えられた不透明度を乗じた値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、前のピクセル寄与率の和をテンポラリの値に更新し、輝度値については、算出した面積寄与率とマイクロポリゴンに与えられた不透明度と輝度値とを乗じた値に前の輝度値を加えた値に更新し、テンポラリの値が1より大きい場合は、輝度値については、1から前のピクセル寄与率の和を減じた値にこのマイクロポリゴンに与えられた輝度値を乗じた値と、前の輝度値とを加えた値に更新し、ピクセル寄与率の和は1に更新するレンダリング手段と、全てのポリゴンまたは曲面の処理が終わったか否かの判定を行う1シーン処理終了判定手段と、前記1シーン処理終了判定手段で終了したという判定がなされたならば、ピクセル寄与率の和が1より小さいピクセルに対して、輝度値を記憶していた輝度値に、1からピクセル寄与率の和を減じた値と背景として与えられた輝度値とを乗じた値を加えた値に更新する輝度値修正手段とから成る記憶装置書き込み手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
【請求項36】面積寄与率に不透明度を乗じた値をピクセル寄与率とするとき、各ピクセルの輝度値とピクセル寄与率の和を保持することが可能な輝度用の記憶装置と面積寄与率の和を保持することが可能な面積寄与率用の記憶装置に対して、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、面積寄与率の和とピクセル寄与率の和がどちらも1より小さい時に限り、前の面積寄与率の和に算出した面積寄与率の値を加えた面積寄与率の和のテンポラリの値と、前のピクセル寄与率の和に、算出した面積寄与率とマイクロポリゴンに与えられた不透明度とを乗じた値を加えたピクセル寄与率の和のテンポラリの値とを計算し、面積寄与率の和のテンポラリの値とピクセル寄与率の和のテンポラリの値が共に1以下の場合は、面積寄与率の和は面積寄与率の和のテンポラリの値に更新し、ピクセル寄与率の和はピクセル寄与率の和のテンポラリの値に更新し、輝度値は、算出した面積寄与率とマイクロポリゴンに与えられた不透明度と輝度値とを乗じた値を、前の輝度値に加えた値に更新し、面積寄与率の和のテンポラリの値が1より大きく、ピクセル寄与率の和のテンポラリの値が1以下の場合は、輝度値は、1から前の面積寄与率の和を減じた値と、マイクポリゴンに与えられた不透明度と輝度値とを乗じた値を、前の輝度値に加えた値に更新し、面積寄与率の和は1に更新し、ピクセル寄与率の和は前のピクセル寄与率の和に、1から前の面積寄与率の和を減じた値とマイクロポリゴンに与えられた不透明度とを乗じた値を加えた値に更新し、ピクセル寄与率の和のテンポラリの値が1より大きい場合は、輝度値は1から前のピクセル寄与率の和を減じた値にマイクロポリゴンにあたられた輝度値を乗じた値と、前の輝度値とを加えた値に更新し、面積寄与率の和とピクセル寄与率の和は1に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了したという判定ならば、前記面積寄与率用の記憶装置の内容を0に初期化する1面処理終了判定手段と、全てのポリゴンまたは曲面の処理が終わったか否かの判定を行う1シーン処理終了判定手段と、前記1シーン処理終了判定手段で終了したという判定がなされたならば、ピクセル寄与率の和が1より小さいピクセルに対して、輝度値を記憶していた輝度値に、1からピクセル寄与率の和を減じた値と背景として与えられた輝度値とを乗じた値を加えた値に更新する輝度値修正手段とから成る記憶装置書き込み手段を備えたことを特徴とする請求項1、2、3、4、又は5記載の画像生成装置。
発明の詳細な説明
【0001】
【産業上の利用分野】本発明は3次元コンピュータグラフィックス分野において、高速にかつ高品位な画像を生成する画像生成装置に関する。
【0002】
【従来の技術】従来、高品位な画像を生成する手法の代表はレイ・トレーシング法やラジオシティ法であったが、表示しようとするシーンが複雑な場合やモデルが大きくなると、計算時間が多大にかかるという欠点があった。この欠点は複雑なシーンや大きなモデルを使用してのアニメーションを製作する場合、特に致命的とも言えるものであった。
【0003】レイ・トレーシング法やラジオシティ法の大きな特徴の1つは、非局所的なライティング効果であるが、この効果はテクスチャマッピングで近似可能あるので、これらの手法によって得られるわずかな非局所的なライティング効果よりも複雑な形状や大きなモデルを短時間に、高画質で表示する方がより重要であるという思想の下で、クック等はマイクロポリゴンという基本形状に統一してレンダリングを行う手法を考案した。
【0004】この手法については以下の論文に詳述されている。
Robert L. Cook, Loren Carpenter, Edwin Catmull, "The Reyes ImageRendering Architecture", Computer Graphics(SIGGRAPH'87 Proceedings),Vol.21, No.4, pp.95-102, July 1987.【0005】上記論文で述べられている手法についてその要点を説明する。まず、3次元空間であるワールド空間で定義された物体を構成するポリゴンや曲面はマイクロポリゴンと呼ばれる形状要素に分割される。この分割は、前方差分法を用いて行うことも可能で、2次元のスクリーン空間へ変換したときにピクセルの面積の1/4程度に成るように予測しながら行う。但し、この分割はあくまでも3次元の視点空間で行われため、後述するような欠点を有するということを強調しておきたい。
【0006】この分割が終了後、生成されたマイクロポリゴンは、2次元のスクリーン空間へ幾何変換される。幾何変換されたマイクロポリゴンは、クリッピング後、ジッタリングという一種のストキャスティック・サンプリング法によってピクセルに対する面積寄与率を決め、テクスチャマッピングに基づくフラットシェーディングという手法を基本にレンダリングすることで、画像が生成される。ストキャスティック・サンプリング法は、モンテカルロ法と同様な手法で、この一種であるジッタリングはサブピクセルにオーバラップするマイクロポリゴンのサンプリングに使用する。
【0007】つまり、ピクセルはいくつかのサブピクセルに分割され、各サブピクセルはその内部に1つのサンプルポイントを持つ。このサンプルポイント位置はサブピクセルの中央の位置からランダムな変位を加えることによって決定され、この位置決めの方法をジッタリングと呼ぶ。このジッタリングの操作は、(描画によって書き込まれるピクセル数)×(サブピクセルへの分割数)回必要である。
【0008】以上が、上記論文で述べられているマイクロポリゴンを使用したレンダリング方法の要点で、これによって生成された画像は、先のレイ・トレーシング法やラジオシティ法に比べても遜色ないものである。
【0009】
【発明が解決しようとする課題】しかしながら上記のような手法では、3次元の視点空間でマイクロポリゴンを生成するため、生成したマイクロポリゴンを全て2次元のスクリーン空間に幾何変換しなければならない。生成されるマイクロポリゴンの個数は、上記論文に記載されている例では680万個にものぼっており、より複雑なシーンでは更にマイクロポリゴンの個数は増える。これら全てのマイクロポリゴンを幾何変換するための計算量は膨大なものとなる。
【0010】しかしながら、2次元のスクリーン空間でマイクロポリゴンを生成できれば、この幾何変換は不要である。更に、マイクロポリゴンの生成において、3次元空間で生成する場合には、その位置や大きさを規定するためには3つの座標値や成分を算出する計算が必要であるが、2次元で取り扱う場合には、これらは2つで済むので、この点に関しても計算量は、従来の2/3になる。
【0011】また、上記の手法ではジッタリングを使用しているため、(描画によって書き込まれるピクセル数)×(サブピクセルへの分割数)回の乱数の発生が必要であるが、複雑なシーンでは経験的には3画面分以上のピクセルへの書き込みがあり、1画面は小さなものでも640×480ピクセルあり、サブピクセルへの分割数は上記論文では16なので、少なくとも1474万5600回もの乱数の発生を行わなければならない。従って、ジッタリング操作に費やされる計算量も膨大なものである。しかし、これに代わり、本発明によるようなマイクロポリゴンのピクセルに対する面積寄与率を予めテーブルの形で保持しておき、これによって面積寄与率を決定する手法であれば、ジッタリング操作は不要となり、計算量は激減する。
【0012】本発明は上記問題点に鑑みてなされたもので、2次元のスクリーン空間でマイクロポリゴンを生成し、マイクロポリゴンのピクセルに対する面積寄与率をテーブル形で保持し、これによって面積寄与率を決定することで計算量を激減させ、これによって高速にしかも上記手法と同等の高画質な画像が生成できる画像生成装置を提供することを目的とする。
【0013】
【課題を解決するための手段】上記目的を達成するために本発明の画像生成装置は、3次元空間中で定義された曲面を2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中の曲面から、曲面を分割してマイクロポリゴンを生成するマイクロポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段という構成を備えたものである。
【0014】上記目的を達成するために本発明の画像生成装置は、3次元空間中でコントロールポイントによって定義された曲面がある時、コントロールポイントと同数の曲面上の点を2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中の曲面上の点からスクリーン空間でのコントロールポイントを算出するコントロールポイント算出手段と、前記スクリーン空間中のコントロールポイントを用いて曲面を分割してマイクロポリゴンを生成するマイクロポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段という構成を備えたものである。
【0015】上記目的を達成するために本発明の画像生成装置は、3次元空間中でコントロールポイントによって定義された曲面がある時、コントロールポイントと同数の曲面上の点を算出する曲面点算出手段と、前記曲面上の点を2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中の曲面上の点からスクリーン空間でのコントロールポイントを算出するコントロールポイント算出手段と、前記スクリーン空間中のコントロールポイントを用いて曲面を分割してマイクロポリゴンを生成するマイクポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段という構成を備えたものである。
【0016】上記目的を達成するために本発明の画像生成装置は、3次元空間中で定義されたポリゴンを2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中のポリゴンを分割してマイクロポリゴンを生成するマイクロポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段という構成を備えたものである。
【0017】上記目的を達成するために本発明の画像生成装置は、3次元空間中で定義されたポリゴンの頂点と内分点を2次元のスクリーン空間へ幾何変換する幾何変換手段と、幾何変換後のスクリーン空間中の頂点と内分点を用いてポリゴンを分割してマイクロポリゴンを生成するマイクロポリゴン生成手段と、マイクロポリゴンをレンダリングするレンダリング手段という構成を備えたものである。
【0018】上記目的を達成するために本発明の画像生成装置は、曲面を与えられた分割数で分割したときにできる分割曲面を平行四辺形で近似し、近似した平行四辺形をレンダリングすることで画像を生成するレンダリング手段を備えたものである。
【0019】上記目的を達成するために本発明の画像生成装置は、曲面を与えられた分割数で分割したときにできる分割点と曲面の頂点を基準点とするとき、基準点を始点として始点を挟む2つの隣接する基準点を終点としてできる2つのベクトルで生成される平行四辺形のマイクロポリゴンで分割曲面を近似し、マイクロポリゴンをレンダリングすることで画像を生成するレンダリング手段を備えたものである。
【0020】上記目的を達成するために本発明の画像生成装置は、ポリゴンを与えられた分割数で分割したときにできるサブポリゴンを平行四辺形で近似し、近似した平行四辺形をレンダリングすることで画像を生成するレンダリング手段を備えたものである。
【0021】上記目的を達成するために本発明の画像生成装置は、ポリゴンを与えられた分割数で分割したときにできる分割点とポリゴンの頂点を基準点とするとき、基準点を始点として始点を挟む2つの隣接する基準点を終点としてできる2つのベクトルで生成される平行四辺形のマイクロポリゴンでサブポリゴンを近似し、マイクロポリゴンをレンダリングすることで画像を生成するレンダリング手段を備えたものである。
【0022】上記目的を達成するために本発明の画像生成装置は、ポリゴンを与えられた分割数で分割したときにできる分割点とポリゴンの頂点から4近接点を選び、この近接点を結んでできる四角形サブポリゴンの4辺の内最大辺の端点1つを始点とし、始点を挟む2つの近接点を終点とする2つのベクトルできる平行四辺形のマイクロポリゴンで前記四角形サブポリゴンを近似し、マイクロポリゴンをレンダリングすることで画像を生成するレンダリング手段を備えたものである。
【0023】上記目的を達成するために本発明の画像生成装置は、四角形ポリゴンを与えられた分割数で分割したときにできる分割点とポリゴンの頂点から4近接点を選び、この近接点を結んでできる四角形サブポリゴンの4辺の内、元の四角形ポリゴンの最大辺に対応する四角形サブポリゴンの辺の端点の1つを始点とし、始点を挟む2つの近接点を終点とする2つのベクトルできる平行四辺形のマイクロポリゴンで前記四角形サブポリゴンを近似し、マイクロポリゴンをレンダリングすることで画像を生成するレンダリング手段を備えたものである。
【0024】上記目的を達成するために本発明の画像生成装置は、曲面を与えられた分割数で分割したときにできる分割曲面の各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたものである。
【0025】上記目的を達成するために本発明の画像生成装置は、曲面を与えられた分割数で分割したときにできる分割曲面を平行四辺形近似したマイクロポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段と備えたものである。
【0026】上記目的を達成するために本発明の画像生成装置は、曲面を与えられた分割数で分割したときにできる分割曲面を三角形で近似したマイクロポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたものである。
【0027】上記目的を達成するために本発明の画像生成装置は、ポリゴンを与えられた分割数で分割したときにできるサブポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたものである。
【0028】上記目的を達成するために本発明の画像生成装置は、ポリゴンを与えられた分割数で分割したときにできるサブポリゴンを平行四辺形近似したマイクロポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたものである。
【0029】上記目的を達成するために本発明の画像生成装置は、ポリゴンを与えられた分割数で分割したときにできるサブポリゴンを三角形で近似したマイクロポリゴンの各ピクセルに対する面積寄与率をテーブルによって求める面積寄与率参照手段と、この面積寄与率を使ってレンダリングすることで画像を生成するレンダリング手段とを備えたものである。
【0030】上記目的を達成するために本発明の画像生成装置は、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を平行四辺形近似したマイクロポリゴンを規定する基準点の位置座標とこの基準点を挟む2つの隣辺ベクトルの成分から面積寄与率のテーブルを参照するアドレスを生成するアドレス生成手段を備えたものである。
【0031】上記目的を達成するために本発明の画像生成装置は、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を三角形で近似したマイクロポリゴンを規定する基準点の位置座標とこの基準点を挟む2つの隣辺ベクトルの成分から面積寄与率のテーブルを参照するアドレスを生成するアドレス生成手段を備えたものである。
【0032】上記目的を達成するために本発明の画像生成装置は、生成されたマイクロポリゴンに対して、マイクロポリゴンが規定の大きさ以内か否かを判定する再分割判定手段と、規定の大きさより大きい場合に元のマイクロポリゴンの4辺の長さから再分割するときの分割数を決定する分割数決定手段と、分割数でマイクロポリゴンを分割してサブマイクロポリゴンを生成するサブマイクロポリゴン生成手段と、生成されたサブマイクロポリゴンに対して規定の大きさ以内か否かを前記再分割判定手段によって判定し、規定の大きさより大きいときは分割数を更新する分割数更新手段とを有し、前記分割数更新手段で更新された分割数で前記サブマイクロポリゴン生成手段によって再帰的にサブマイクロポリゴンを生成するという特徴を備えたものである。
【0033】上記目的を達成するために本発明の画像生成装置は、曲面を規定するコントロールポイントの並び方による曲面の表面の向きを示す情報とこの曲面に対して生成されたマイクロポリゴンの法線の向きから、描画しなくてよいマイクロポリゴンを決定する裏面除去手段を備えたものである。
【0034】上記目的を達成するために本発明の画像生成装置は、2次元のスクリーン空間中の曲面に対して、一番手前あるいは奥の頂点からマイクロポリゴンが生成されるようにコントロールポイントのインデックスを変更するインデックス変更手段と、変更後のマイクロポリゴンの発生順番に合わせて輝度値データのアクセス順を変更するアクセス変更手段という構成を備えたものである。
【0035】上記目的を達成するために本発明の画像生成装置は、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面の基準点を1ピクセル内に固定し、このサブポリゴンや分割曲面を任意に移動させることで生成するが、エントリは最大サイズのサブポリゴンまたは分割曲面が含まれるだけのピクセル数分しか面積寄与率を保持していない面識寄与率テーブルを備えたものである。
【0036】上記目的を達成するために本発明の画像生成装置は、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を平行四辺形近似したマイクロポリゴンの基準点を1ピクセル内に固定し、この基準点を挟む2つの隣辺ベクトルを任意に移動させることで生成するが、エントリは最大サイズのマイクロポリゴンが含まれるだけのピクセル数分しか面積寄与率を保持していない面識寄与率テーブルを備えたものである。
【0037】上記目的を達成するために本発明の画像生成装置は、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を三角形で近似したマイクロポリゴンの基準点を1ピクセル内に固定し、この基準点を挟む2つの隣辺ベクトルを任意に移動させることで生成するが、エントリは最大サイズのマイクロポリゴンが含まれるだけのピクセル数分しか面積寄与率を保持していない面積寄与率テーブルを備えたものである。
【0038】上記目的を達成するために本発明の画像生成装置は、ピクセルを計算精度に応じた分割数で分割したときにできるサブピクセルの内部の代表点が、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を四角形で近似したマイクロポリゴンの規定する領域内か否かを判定する内外判定手段と、前記内外判定手段の結果に基づきサブピクセルの代表点がマイクロポリゴンの規定する領域内に入っているサブピクセルの個数を数えるカウンティング手段と、前記カウンティング手段で数えた個数にサブピクセルの面積をかけることで面積寄与率を算出する面積寄与率算出手段という構成を備えたものである。
【0039】上記目的を達成するために本発明の画像生成装置は、ピクセルを計算精度に応じた分割数で分割したときにできるサブピクセルの内部の代表点が、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を平行四辺形近似したマイクロポリゴンの規定する領域内か否かを判定する内外判定手段と、前記内外判定手段の結果に基づきサブピクセルの代表点がマイクロポリゴンの規定する領域内に入っているサブピクセルの個数を数えるカウンティング手段と、前記カウンティング手段で数えた個数にサブピクセルの面積をかけることで面積寄与率を算出する面積寄与率算出手段という構成を備えたものである。
【0040】上記目的を達成するために本発明の画像生成装置は、ピクセルを計算精度に応じた分割数で分割したときにできるサブピクセルの内部の代表点が、ポリゴンや曲面を与えられた分割数で分割したときにできるサブポリゴンや分割曲面を三角形で近似したマイクロポリゴンの規定する領域内か否かを判定する内外判定手段と、前記内外判定手段の結果に基づきサブピクセルの代表点がマイクロポリゴンの規定する領域内に入っているサブピクセルの個数を数えるカウンティング手段と、前記カウンティング手段で数えた個数にサブピクセルの面積をかけることで面積寄与率を算出する面積寄与率算出手段という構成を備えたものである。
【0041】上記目的を達成するために本発明の画像生成装置は、各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和を保持することが可能な記憶装置がある時、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、面積寄与率の和が1より小さい時に限り、前の面積寄与率の和に算出した面積寄与率の値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、面積寄与率の和はテンポラリの値に更新し、計算用輝度値は、算出した面積寄与率にマイクロポリゴンに与えられた輝度値を乗じた値と前の計算用輝度値とを加えた値に更新し、テンポラリの値が1より大きい場合は、計算用輝度値は、1から前の面積寄与率の和を減じた値にこのマイクロポリゴンに与えられた輝度値を乗じた値と前の計算用輝度値とを加えた値に更新し、面積寄与率の和は1に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了したという判定ならば、描画用輝度値を、1から面積寄与率の和を減じた値に前の描画用輝度値を乗じた値と計算用輝度値とを加えた値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和を0に初期化する1面処理終了判定手段とから成る記憶装置書き込み手段を備えたものである。
【0042】上記目的を達成するために本発明の画像生成装置は、面積寄与率に不透明度を乗じた値をピクセル寄与率とするとき、各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和とピクセル寄与率の和を保持することが可能な記憶装置がある時、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、面積寄与率の和が1より小さい時に限り、前の面積寄与率の和に算出した面積寄与率の値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、面積寄与率の和はテンポラリの値に更新し、ピクセル寄与率の和は、マイクロポリゴンに与えられた不透明度に、算出した面積寄与率を乗じた値と、前のピクセル寄与率の和とを加えた値に更新し、計算用輝度値は、算出した面積寄与率とマイクロポリゴンに与えられた不透明度と輝度値とを乗じた値と、前の計算用輝度値とを加えた値に更新し、テンポラリの値が1より大きい場合は、計算用輝度値は、1から前の面積寄与率の和を減じた値とこのマイクロポリゴンに与えられた不透明度と輝度値とを乗じた値と、前の計算用輝度値とを加えた値に更新し、面積寄与率の和は1に更新し、ピクセル寄与率の和は1から前の面積寄与率の和を減じた値にマイクロポリゴンに与えられた不透明度を乗じた値と、前のピクセル寄与率の和とを加えた値に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了したという判定ならば、描画用輝度値を、1からピクセル寄与率の和を減じた値に前の描画用輝度値を乗じた値と計算用輝度値とを加えた値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和とピクセル寄与率の和を0に初期化する1面処理終了判定手段とから成る記憶装置書き込み手段を備えたものである。
【0043】上記目的を達成するために本発明の画像生成装置は、各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和を保持することが可能な記憶装置がある時、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、面積寄与率の和が1より小さい時に限り、前の面積寄与率の和に算出した面積寄与率の値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、面積寄与率の和はテンポラリの値に更新し、計算用輝度値は、算出した面積寄与率と、描画用輝度値からマイクロポリゴンに与えられた輝度値を減じた値とを乗じた値を、前の計算用輝度値から減じた値に更新し、テンポラリの値が1より大きい場合は、計算用輝度値は、1から前の面積寄与率の和を減じた値と、描画用輝度値からマイクロポリゴンに与えられた輝度値を減じた値とを乗じた値を、前の計算用輝度値から減じた値に更新し、面積寄与率の和は1に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了したという判定ならば、描画用輝度値を計算用輝度値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和を0に初期化する1面処理終了判定手段とから成る記憶装置書き込み手段を備えたものである。
【0044】上記目的を達成するために本発明の画像生成装置は、各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和を保持することが可能な記憶装置がある時、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、面積寄与率の和が1より小さい時に限り、前の面積寄与率の和に算出した面積寄与率の値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、面積寄与率の和はテンポラリの値に更新し、計算用輝度値は、算出した面積寄与率と、マイクポリゴンに与えられた不透明度と、描画用輝度値からマイクロポリゴンに与えられた輝度値を減じた値とを乗じた値を、前の計算用輝度値から減じた値に更新し、テンポラリの値が1より大きい場合は、計算用輝度値は、1から前の面積寄与率の和を減じた値と、マイクポリゴンに与えられた不透明度と、描画用輝度値からマイクロポリゴンに与えられた輝度値を減じた値とを乗じた値を、前の計算用輝度値から減じた値に更新し、面積寄与率の和は1に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了したという判定ならば、描画用輝度値を計算用輝度値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和を0に初期化する1面処理終了判定手段とから成る記憶装置書き込み手段を備えたものである。
【0045】上記目的を達成するために本発明の画像生成装置は、各ピクセルの輝度値と面積寄与率の和を保持することが可能な記憶装置に対して、マイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、面積寄与率の和が1より小さい時に限り、前の面積寄与率の和に算出した面積寄与率の値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、前の面積寄与率の和をテンポラリの値に更新し、輝度値については、算出した面積寄与率にマイクロポリゴンに与えられた輝度値を乗じた値に前の輝度値を加えた値に更新し、テンポラリの値が1より大きい場合は、輝度値については、1から前の面積寄与率の和を減じた値にこのマイクロポリゴンに与えられた輝度値を乗じた値に前の輝度値を加えた値に更新し、面積寄与率の和は1に更新するレンダリング手段と、全てのポリゴンまたは曲面の処理が終わったか否かの判定を行う1シーン処理終了判定手段と、前記1シーン処理終了判定手段で終了したという判定がなされたならば、面積寄与率の和が1より小さいピクセルに対して、輝度値を記憶していた輝度値に、1から面積寄与率の和を減じた値と背景として与えられた輝度値とを乗じた値を加えた値に更新する輝度値修正手段とから成る記憶装置書き込み手段を備えたものである。
【0046】上記目的を達成するために本発明の画像生成装置は、面積寄与率に不透明度を乗じた値をピクセル寄与率とするとき、各ピクセルに対して輝度値とピクセル寄与率の和を保持することが可能な記憶装置がある時、マイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、ピクセル寄与率の和が1より小さい時に限り、前のピクセル寄与率の和に算出した面積寄与率とマイクロポリゴンに与えられた不透明度を乗じた値を加えたテンポラリの値を計算し、テンポラリの値が1以下の場合は、前のピクセル寄与率の和をテンポラリの値に更新し、輝度値については、算出した面積寄与率とマイクロポリゴンに与えられた不透明度と輝度値とを乗じた値に前の輝度値を加えた値に更新し、テンポラリの値が1より大きい場合は、輝度値については、1から前のピクセル寄与率の和を減じた値にこのマイクロポリゴンに与えられた輝度値を乗じた値と、前の輝度値とを加えた値に更新し、ピクセル寄与率の和は1に更新するレンダリング手段と、全てのポリゴンまたは曲面の処理が終わったか否かの判定を行う1シーン処理終了判定手段と、前記1シーン処理終了判定手段で終了したという判定がなされたならば、ピクセル寄与率の和が1より小さいピクセルに対して、輝度値を記憶していた輝度値に、1からピクセル寄与率の和を減じた値と背景として与えられた輝度値とを乗じた値を加えた値に更新する輝度値修正手段とから成る記憶装置書き込み手段を備えたものである。
【0047】上記目的を達成するために本発明の画像生成装置は、面積寄与率に不透明度を乗じた値をピクセル寄与率とするとき、各ピクセルの輝度値とピクセル寄与率の和を保持することが可能な輝度用の記憶装置と面積寄与率の和を保持することが可能な面積寄与率用の記憶装置に対して、1つのポリゴンまたは曲面に対して生成されたマイクロポリゴンの各ピクセルに対する面積寄与率算出後、前記記憶装置へ書き込む際に、面積寄与率の和とピクセル寄与率の和がどちらも1より小さい時に限り、前の面積寄与率の和に算出した面積寄与率の値を加えた面積寄与率の和のテンポラリの値と、前のピクセル寄与率の和に、算出した面積寄与率とマイクロポリゴンに与えられた不透明度とを乗じた値を加えたピクセル寄与率の和のテンポラリの値とを計算し、面積寄与率の和のテンポラリの値とピクセル寄与率の和のテンポラリの値が共に1以下の場合は、面積寄与率の和は面積寄与率の和のテンポラリの値に更新し、ピクセル寄与率の和はピクセル寄与率の和のテンポラリの値に更新し、輝度値は、算出した面積寄与率とマイクロポリゴンに与えられた不透明度と輝度値とを乗じた値を、前の輝度値に加えた値に更新し、面積寄与率の和のテンポラリの値が1より大きく、ピクセル寄与率の和のテンポラリの値が1以下の場合は、輝度値は、1から前の面積寄与率の和を減じた値と、マイクポリゴンに与えられた不透明度と輝度値とを乗じた値を、前の輝度値に加えた値に更新し、面積寄与率の和は1に更新し、ピクセル寄与率の和は前のピクセル寄与率の和に、1から前の面積寄与率の和を減じた値とマイクロポリゴンに与えられた不透明度とを乗じた値を加えた値に更新し、ピクセル寄与率の和のテンポラリの値が1より大きい場合は、輝度値は1から前のピクセル寄与率の和を減じた値にマイクロポリゴンにあたられた輝度値を乗じた値と、前の輝度値とを加えた値に更新し、面積寄与率の和とピクセル寄与率の和は1に更新するレンダリング手段と、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了したという判定ならば、前記面積寄与率用の記憶装置の内容を0に初期化する1面処理終了判定手段と、全てのポリゴンまたは曲面の処理が終わったか否かの判定を行う1シーン処理終了判定手段と、前記1シーン処理終了判定手段で終了したという判定がなされたならば、ピクセル寄与率の和が1より小さいピクセルに対して、輝度値を記憶していた輝度値に、1からピクセル寄与率の和を減じた値と背景として与えられた輝度値とを乗じた値を加えた値に更新する輝度値修正手段とから成る記憶装置書き込み手段を備えたものである。
【0048】
【作用】本発明は上記した構成によって、3次元空間で定義された曲面やポリゴンを2次元のスクリーン空間へ幾何変換した後、マイクロポリゴンの生成を行うので、幾何変換の計算量は従来に比べ激減し、高速化が図れる。すなわち、曲面やポリゴンの2次元のスクリーン空間への幾何変換は、実際には、これらを定義する頂点やコントロールポイント、内分点を幾何変換する訳であるが、これらの個数はマイクロポリゴンの個数に比べて1桁から3桁ほど少ない。
【0049】従って、幾何変換に要する計算量も少なくとも1桁から2桁程減少するので、これによる高速化への効果は大きい。更に、マイクロポリゴンの生成過程においても、従来のように3次元空間で生成する場合には、その位置や大きさを規定するためには3つの座標値や成分を算出する計算が必要であるが、2次元で取り扱う場合には、これらは2つで済むので、この点に関しても計算量は従来の2/3になる。
【0050】次に、従来はジッタリングによってレンダリングしていたので、乱数の発生が必要であったのに対し、本発明では、面積寄与率をテーブルによって決定しているので、その必要がなく高速に処理することができる。また、本発明による手法は、面積寄与率をテーブルとして用意するので、ハードウェア化が容易であるという特徴をも有する。更に、テーブルのエントリ数は、マイクロポリゴンを平行四辺形や三角形に限ることにより、減少することができる。その際、曲面やポリゴンを分割したときにできる分割曲面やサブポリゴンをこの平行四辺形や三角形のマイクロポリゴンで近似することになる。面積寄与率はテーブルで求める他に計算でも算出できるので、本発明では面積積分を応用した手法を用いてこれを提供する。これは、面積寄与率のテーブルを作成する時にも用いることができる。
【0051】また、平行四辺形や三角形のマイクロポリゴンは基準点の位置座標と基準点を挟む2つのベクトルで規定できるので、本発明では、これらからテーブルを引くときのアドレスを生成する。マイクロポリゴンの最大サイズを決め、最大サイズに到るまでのマイクロポリゴンの大きさを離散的に定めておくことによりテーブルは有限のサイズとなる。このとき、最大サイズのマイクロポリゴンの基準点を1ピクセル内に固定しておき、基準点の位置は変えずに最大サイズのマイクロポリゴンを任意の位置に移動してもはみ出ないようなピクセルの矩形領域が決まる。
【0052】面積寄与率のテーブルの1つのエントリには、この矩形に含まれるピクセル数だけの面積寄与率が保持されていれば十分である。しかし、これでは1つのエントリのサイズが大きくなるので、本発明では、最大サイズのマイクロポリゴンを含むことが可能な矩形の部分領域分に含まれるピクセル数だけの面積寄与率と、この部分領域が元の矩形領域のどこに位置しているかを示す識別子をエントリとして持つことにより面積寄与率のテーブルのサイズを小さくする。
【0053】マイクロポリゴンの最大サイズが決まっているということは、ポリゴンや曲面を所定の手続きで分割した場合にできるサブポリゴンや分割曲面が、この最大サイズより大きいときには再分割する必要がある。本発明ではこの再分割に対して、再帰的な再分割のアルゴリズムによってこれに対処する。
【0054】マイクロポリゴンの中には、生成された画像には反映されないものが存在する。特に顕著なものは裏を向いているもので、本発明ではこの裏向きのマイクロポリゴンを除去する手法を提供する。マイクロポリゴンが裏を向いているか否かは、元の曲面の表面の向きとマイクロポリゴンの法線の向きとによって定めることができ、本発明でもこれに基づいて決めている。
【0055】また、曲面やポリゴン単位で奥行きに対してソーティングが行われており、ソート法で隠れ面処理を行う場合、曲面に関してはマイクロポリゴンの発生順序を考慮しないと、奥の見えないマイクロポリゴンが描画されてしまい、また、マイクロポリゴンの発生順序はコントロールポイントのインデックスの順序によってコントロールできるが、このとき、テクスチャ等の輝度値データに対するアクセス順序についても考慮しておかないとテクスチャの貼る向きがおかしくなるという事態が生じる。本発明では、この点を考慮して、マイクロポリゴンの発生順序に合わせて、輝度値データへのアクセス順序も変更して上記の問題を除去する。
【0056】実際に画像を生成するためには、フレームメモリ等への書き込みが必要である。本発明では、エリアシングを除去するために面積寄与率を考慮した形で、この記憶装置への書き込みを行うことができる。各ピクセルの面積寄与率は誤差がなければ、1以下なのであるが、実際には誤差があるため、マイクロポリゴンの面積寄与率を1つのピクセルについて足していくと1を越えてしまうことがあり、本発明では、これに対処するため、面積寄与率の値が1以下となるようにしており、物体の透明表現に対する対応も行うようにしている。また、本発明は記憶装置に対する書き込み方が異なる奥から書き込む場合と、手前から書き込む場合のどちらの場合にも対応することができる。
【0057】
【実施例】以下、添付図面に基づき、本発明の実施例を詳細に説明する。まず、図1を参照して、本発明の第1の実施例の画像生成装置について説明する。図1は本発明の第1の実施例による画像生成装置の構成を示す図である。図1において、1は物体が定義されている3次元ワールド空間で曲面上の点を算出する曲面点算出手段、2は3次元ワールド空間から2次元のスクリーン空間への変換を行う幾何変換手段、3は2次元スクリーン空間で曲面を定義するコントロールポイントを算出するコントロールポイント算出手段、4はコントロールポイントのインデックスの変更を行うインデックス変更手段である。
【0058】又、5はマイクロポリゴンを生成するマイクロポリゴン生成手段、6は裏を向いているマイクロポリゴンを除去する裏面除去手段、7はマイクロポリゴンのサイズが規定以内か否かの判定を行う再分割判定手段、8はマイクロポリゴンの再分割数の変更を行う分割数変更手段、9はマイクロポリゴンの再分割数を決める分割数決定手段、10はサブマイクロポリゴンの生成を行うサブマイクロポリゴン生成手段、11は面積寄与率を参照する際のアドレスを生成するアドレス生成手段、12はマイクロポリゴンのピクセルに対する面積寄与率を求める面積寄与率参照手段、13はマイクロポリゴンの生成順に合わせてテクスチャデータのアクセス順番を変更するアクセス変更手段、14はテクスチャデータを求めるテクスチャデータ参照手段である。
【0059】又、15は記憶装置への書き込みを行う記憶装置書き込み手段で、16のマイクロポリゴンのレンダリングを行うレンダリング手段と、17の1つの曲面に対する処理が終わったか否かの判定を行う1面処理終了判定手段と、18の1つの場面に対する処理が終わったか否かの判定を行う1シーン処理終了判定手段と、19の記憶装置内の輝度値データの修正を行う輝度値修正手段とからなる。
【0060】次に、上記のように構成された画像生成装置の動作について、詳細に説明する。本発明の動作を説明するにあたり、曲面としてはユニフォームな双3次Bスプライン曲面を、ポリゴンについては四角形ポリゴンを双3次Bスプライン曲面の特殊な場合として説明を行う。双3次Bスプライン曲面は、例えば、図3に示すようなものであり、図のように曲面は16個のコントロールポイントP00,P01,・・・ ,P03,P10,・・・ ,P33で規定され、曲面の方程式は座標毎独立に定義され、2つの独立なパラメータu,v(0≦u,v≦1)を固定する毎に曲面上の点の座標が求められる。この定義方程式は、x,y,zに対し、それぞれ、【0061】
【数1】

【0062】
【数2】

【0063】
【数3】

【0064】で表される。但し、Px00 ,Px01 ,・・・ ,Px03 ,Px10 ,・・・ ,Px33 はコントロールポイントP00,P01,・・・ ,P03,P10,・・・ ,P33のx座標で、Py00 ,Py00 ,・・・ ,Py33 、Pz00 ,Pz01 ,・・・ ,Pz33 はy,z座標である。4頂点の座標が反時計回りに(x1 ,y1 ,z1 ),(x2 ,y2 ,z2 ),(x3 ,y3 ,z3 ),(x4 ,y4 ,z4 )で与えられる3次元空間中の四角形ポリゴンは、コントロールポイントを、【0065】
【数4】

【0066】
【数5】

【0067】
【数6】

【0068】
【数7】

【0069】
【数8】

【0070】
【数9】

【0071】
【数10】

【0072】
【数11】

【0073】
【数12】

【0074】
【数13】

【0075】
【数14】

【0076】
【数15】

【0077】
【数16】

【0078】
【数17】

【0079】
【数18】

【0080】
【数19】

【0081】で与えることにより、(数1)(数2)(数3)で定義することができる。3次元ワールド空間中の物体は、以上の双3次Bスプライン曲面や四角形ポリゴンで構成されており、これらの曲面やポリゴンは投影を行う2次元スクリーン空間に対する奥行きについて、遠くのものから近くのものへ、もしくは近くのものから遠くのものへのいずれかに、予めソーティングされているものと仮定する。
【0082】曲面点算出手段1は、3次元ワールド空間中で定義されている双3次Bスプライン曲面に対しては、曲面の16個のコントロールポイント、Pwij (Pwxij,Pwyij,Pwzij);i,j=0,1,2,3、を入力し、曲面上の16点、Qwij (Qwxij,Qwyij,Qwzij);i,j=0,1,2,3、を算出して、幾何変換手段2へ出力する。また、上述のようにコントロールポイントで定義された四角形ポリゴンに対しては、コントロールポイントの座標値をそのままQwij として幾何変換手段2へ出力する。曲面の場合、この曲面上の16点とパラメータu,vとは図4に示すように、以下の関係によって規定されているものとする。
【0083】
【数20】

【0084】
【数21】

【0085】
【数22】

【0086】
【数23】

【0087】
【数24】

【0088】
【数25】

【0089】
【数26】

【0090】
【数27】

【0091】
【数28】

【0092】
【数29】

【0093】
【数30】

【0094】
【数31】

【0095】
【数32】

【0096】
【数33】

【0097】
【数34】

【0098】
【数35】

【0099】この16点の座標値の算出は、【0100】
【数36】

【0101】
【数37】

【0102】
【数38】

【0103】
【数39】

【0104】
【数40】

【0105】
【数41】

【0106】とすると、座標毎にまとめて、【0107】
【数42】

【0108】
【数43】

【0109】
【数44】

【0110】によって、行列とベクトルの乗算によって行うことができる。但し、(・・・ )Tは行ベクトルの転置、つまり列ベクトルを表し、また行列Mは以下に示す正則な16元の定数行列である。
【0111】
【数45】

【0112】幾何変換手段2は、曲面点算出手段1の出力、Qwij(Qwxij,Qwyij,Qwzij);i,j=0,1,2,3、を入力として、視点情報(視点の位置座標、視線ベクトル、視線に対するアッパーベクトル)とスクリーン空間に関する情報(視点からスクリーン空間までの距離、無限遠点、焦点、投影面の横幅と高さ等)に基づき、通常コンピュウータグラフィックスで行われているように、Qwijを2次元のスクリーン空間上の点、Qsij (Qsxij,Qsyij);i,j=0,1,2,3、へ変換し、このQsij をコントロールポイント算出手段3へ出力する。
【0113】コントロールポイント算出手段3は、幾何変換手段2の出力、Qsij (Qsxij,Qsyij);i,j=0,1,2,3、を入力とし、双3次Bスプライン曲面に対しては、この16点Qsijを通るスクリーン空間上の双3次Bスプライン曲面を規定するコントロールポイントPsij (Psxij,Psyij);i,j=0,1,2,3、を算出し、インデックス変更手段4へ出力する。また、四角形ポリゴンに対しては、Qsij をそのままコントロールポイントPsij としてインデックス変更手段4へ出力する。曲面の場合、コントロールポイントPsij(Psxij,Psyij)の算出は、【0114】
【数46】

【0115】
【数47】

【0116】
【数48】

【0117】
【数49】

【0118】とすると、座標,に次の式によって行うことができる。
【0119】
【数50】

【0120】
【数51】

【0121】但し、M-1は(数45)の行列Mの逆行列である。小数点以下9桁で求めたM-1の要素を行毎に列の順番で記述すると以下のようになる。
(第1行)1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0(第2行)-0.833333333,3.000000003,-1.500000001,0.333333333,0,0,0,0,0,0,0,0,0,0,0,0(第3行)0.333333333,-1.500000001,3.000000003,-0.833333333,0,0,0,0,0,0,0,0,0,0,0,0(第4行)0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0【0122】(第5行)-0.833333333,0,0,0,3.000000003,0,0,0,-1.500000001,0,0,0,0.333333333,0,0,0(第6行)0.694444462,-2.500000003,1.250000032,-0.277777796,-2.500000033,9.000000009,-4.500000004,1.000000031,1.250000032,-4.500000004,2.250000002,-0.500000031,-0.277777796,1.000000031,-0.500000031,0.111111129(第7行)-0.277777796,1.250000032,-2.500000033,0.694444462,1.000000031,-4.500000004,9.000000009,-2.500000033,-0.500000031,2.250000002,-4.500000004,1.250000032,0.111111129,-0.500000031,1.000000031,-0.277777796(第8行)0,0,0,-0.833333333,0,0,0,3.000000003,0,0,0,-1.500000001,0,0,0,0.333333333【0123】(第9行)0.333333333,0,0,0,-1.500000001,0,0,0,3.000000003,0,0,0,-0.833333333,0,0,0(第10行)-0.277777796,1.000000031,-0.500000031,0.111111129,1.250000032,-4.500000004,2.250000002,-0.500000031,-2.500000033,9.000000009,-4.500000004,1.000000031,0.694444462,-2.500000033,1.250000032,-0.277777796(第11行)0.111111129,-0.500000031,1.000000031,-0.277777796,-0.500000031,2.250000002,-4.500000004,1.250000032,1.000000031,-4.500000004,9.000000009,-2.500000033,-0.277777796,1.250000032,-2.500000033,0.694444462【0124】(第12行)0,0,0,0.333333333,0,0,0,-1.500000001,0,0,0,3.000000003,0,0,0,-0.833333333(第13行)0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0(第14行)0,0,0,0,0,0,0,0,0,0,0,0,-0.833333333,3.000000003,-1.500000001,0.333333333(第15行)0,0,0,0,0,0,0,0,0,0,0,0,0.333333333,-1.500000001,3.000000003,-0.833333333(第16行)0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1【0125】(数1)(数2)において、vを固定して、uを0から1へ変化させると、コントロールポイントのPs00からPs03 の方向に曲面上の点が発生される。インデックス変更手段4は、曲面やポリゴンが2次元スクリーン空間に対する奥行き方向に関して、遠くのものから近くのものへソーティングされている場合は、Ps00 ,Ps03 ,Ps30 ,Ps33 のうち、1番目と2番目に奥にある点を選び、1番奥にある点を新たにPs00 、2番目に奥にある点をPs03 と成るように、コントロールポイントのインデックスの付け変えを行うものである。
【0126】また、奥行きに対して、近くのものから遠くのものへソーティングされている場合には、Ps00 ,Ps03 ,Ps30 ,Ps33 のうち、1番目と2番目に手前にある点を選び、1番手前にある点を新たにPs00 、2番目に手前にある点をPs03と成るように、コントロールポイントのインデックスの付け変えを行う。
【0127】このインデックスの付け変えは、付け変えないというのも含めるとその結果は8種類あり、元の(Ps00 ,Ps03 )に対する対応を列記すると、(Ps00,Ps03 )(Ps00 ,Ps30 )(Ps30 ,Ps33 )(Ps30 ,Ps00 )(Ps33 ,Ps30 )(Ps33 ,Ps03 )(Ps03 ,Ps00 )(Ps03 ,Ps33 )(Ps00 ,Ps03 )(Ps00 ,Ps03 )となる。
【0128】どのように付け変えたかというインデックス置換情報は保持される。このインデックス置換情報は、元のPs00 とPs03 に対して、Ps00 ,Ps03 ,Ps30 ,Ps33 のどれに付け変えたかというもので、テーブル化することも可能である。この情報は後でアクセス変更手段13において使う。インデックスの付け変えが終わったコントロールポイントを、新たにPsij (Psxij,Psyij);i,j=0,1,2,3、とし、マイクロポリゴン生成手段5へ出力される。
【0129】マイクロポリゴン生成手段5は、曲面やポリゴンに貼るテクスチャデータのサイズに基づいて、曲面を分割して分割曲面やサブポリゴンを生成し、これに対応する1つの四角形マイクロポリゴン、または1つの平行四辺形マイクロポリゴン、または2つの三角形マイクロポリゴンのいずれかを生成するものである。動作の説明を行う前に、まず用語の説明をする。まず、分割曲面とは、曲面を分割したときの元の曲面に対する部分曲面で図5にその例を示す。サブポリゴンとは、ポリゴンを分割したときの部分平面で図6にその例を示す。
【0130】図5、6から分かるように、分割曲面やサブポリゴンは分割線の部分曲線によって囲まれた領域で、この部分曲線の端点である、分割線の交点を分割点と呼ぶことにする。四角形マイクポリゴンとは、分割曲面またはサブポリゴンを4つ分割点で規定した四角形で近似したもので、基準点(x,y)と3つのベクトル(dx ,dy ),(px ,py ),(qx ,qy )によって定義できる。図7(a)にその例を示す。
【0131】平行四辺形マイクロポリゴンとは、分割曲面やサブポリゴンの4つの分割点の内3つの分割点で規定された平行四辺形で近似したもので、基準点(x,y)と2つのベクトル(dx ,dy ),(px ,py )によって定義できる。図7(b)にその例を示す。また、三角形マイクロポリゴンとは、分割曲面やサブポリゴンの4つの分割点の内、それぞれ3つの分割点で規定される2つの三角形で近似したもので、各三角形マイクロポリゴンは、基準点(x,y)と2つのベクトル(dx ,dy ),(px ,py )によって定義できる。図7(c)にその例を示す。
【0132】次に、マイクロポリゴン生成手段5の動作について説明する。上述のようにマイクロポリゴンは分割点で生成されるので、まず初めに分割点を生成する。生成する分割点の個数は、テクスチャのサイズによって決まり、テクスチャのサイズが、m×nならばm+1×n+1個の分割点を生成する。生成方法は、(数1)(数2)を用いて行うことができる。まず、インデックス変更手段4から出力されたコントロールポイントの座標から(数1)(数2)の方程式によりコントロールポイントの座標を必要とする部分を規定し、パラメータu,vについては、刻み値(増分)を1/m,1/nとして、u,vを0から1まで変化したときの曲面上の点を発生する。この曲面上の点が、実は分割点である。
【0133】分割点の生成はデジタル微分解析器のアルゴリズムを用いても行うことができる。ここでは(数1)(数2)を用いた計算方法の1つの例として次の方法を述べる。(数1)(数2)に対して、vは0から1まで1/nの増分で変化させ、vを固定する毎に、uを0から1/mづつ増加させながら1まで変化させて、1行分の分割点を生成し、uが1になったならば、vを1/n増加させて次の行の分割点を生成する。この操作をv=1になるまで繰り返すと、m+1×n+1個の曲面上の点が生成される。
【0134】但し、インデックス変更手段4によって、テクスチャの貼る方向が変化した場合(縦横の関係が交換された場合)は、uの増分は1/nとなり、vの増分は1/mとなる。縦横の関係が変化したかどうかは、インデックス置換情報によって知ることができる。テクスチャのサイズを2の累乗で示されるものに限ると1/m,1/nの除算は、シフト演算で行うことができる。つまり、テクスチャサイズを2m ×2n とすると、増分は1/2m ,1/2n となるので、この計算はm,nビットの右シフトで行うことができる。
【0135】これ以降の説明においては、テクスチャサイズは2m ×2n として話を進めていくことにする。生成された分割点の座標値は、必要精度に応じて丸められる。1つのマイクロポリゴンを生成するには、少なくとも4つの分割点の座標値は保持しておかなければならない。逆に言うと、4つの分割点を保持できる領域があればマイクロポリゴンの生成は行えるが、ここでは、生成された分割点の座標値は全て、一旦保持するものとして話を進める。生成され、丸められた分割点の座標を(Xij,Yij),0≦i≦2m ,0≦j≦2n とする。
【0136】まず、図8(a)を参照し、四角形マイクロポリゴンの生成について説明する。図から分かるように基準点は(Xij,Yij)で、(dx ,dy )=(Xi+1j−Xij,Yi+1j−Yij),(px , py )=(Xij+1−Xij,Yij+1−Yij),(qx ,qy )=(Xi+1j+1−Xij+1,Yi+1j+1−Yij+1),0≦i≦2m −1,0≦j≦2n −1として四角形マイクロポリゴンを生成する。
【0137】次に、図8(b−1),(b−2)を参照して、平行四辺形マイクロポリゴンの生成について説明する。単純な生成方法としては図8(b−1)のように、基準点は(Xij,Yij)で、(dx ,dy )=(Xi+1j−Xij,Yi+1j−Yij),(px ,py )=(Xij+1−Xij,Yij+1−Yij),0≦i≦2m −1,0≦j≦2n −1として生成する。近似の度合いを上げる方法としては、曲面の頂点に対応するコントロールポイントPs00 ,Ps03 ,Ps30 ,Ps33 から線分l1 =Ps00 Ps30 ,l2 =Ps03 Ps33 の長さ(距離)を計算する。
【0138】2点間の距離は、ユークリッド距離やや離散空間における距離(2点の座標毎の差の絶対値和)でよい。l1 ≧l2 の時は、図8(b−1)の先に述べた方法で平行四辺形マイクロポリゴンを生成する。l1 ≧l2 の時は図8(b−2)のように、基準点を(Xi+1j,Yi+1j)で、(dx ,dy )=(Xij−Xi+1j,Yij−Yi+1j),(px ,py )=(Xi+1j+1−Xi+1j,Yi+1j+1−Yi+1j),0≦i≦2m −1,0≦j≦2n −1として生成する。
【0139】最後に、図8(c)を参照して、三角形マイクロポリゴンの生成について説明する。図8(c)のように1つの分割曲面やサブポリゴンに対して、2つの三角形マイクロポリゴンが生成され、1つ目は基準点を(Xij,Yij),(dx ,dy )=(Xi+1j−Xij,Yi+1j−Yij),(px ,py )=(Xij+1−Xij,Yij+1−Yij)として、2つ目は(Xi+1j,Yi+1j)で、(dx ,dy )=(Xij−Xi+1j,Yij−Yi+1j),(px ,py )=(Xi+1j+1−Xi+1j,Yi+1j+1−Yi+1j)として生成される。但し、0≦i≦2m −1,0≦j≦2n −1である。
【0140】このようにして生成されたマイクロポリゴンのうち、スクリーン空間の表示される領域外に存在するマイクロポリゴンは以降の処理が行われないよう除去される。これはいわゆるクリッピング処理に相当するものである。表示される領域内のマイクロポリゴンは、裏面除去手段6へ出力されるが、マイクロポリゴンを生成する4つの分割点の座標値は、再分割判定手段7での処理が終了して、アドレス生成手段11に出力されるまで、マイクロポリゴン毎に保持していなければならない。
【0141】裏面除去手段6は、スクリーン空間上で裏面が表示される場合のマイクロポリゴンを除去するもので、図10にその様子を示す。これを行うためには、曲面のコントロールポイントの並びに対して、どちらの面を表面とするかを示した情報が予め曲面に対して与えられていなければならない。つまり、図11に示すような場合、括弧なしのコントロールポイントの並びの場合は、右手系で示した向きが表面の時は紙面の裏側がこの曲面の表面で、左手系で示した向きが表面の時は紙面の向きがこの曲面の表面となる。
【0142】括弧付きのコントロールポイントの並びの場合は、右手系で示した向きがの表面の時は紙面の向きがこの曲面の表面で、左手系で示した向きが表面の時は紙面の裏側の向きがこの曲面の表面となる。従って、コントロールポイントの並びが括弧なしのタイプなのか括弧ありのタイプなのかという情報とそれに対して右手系で示した向きを表面とするのか、左手系で示した向きを表面とするのかの情報は予め曲面に与えられているものとする。
【0143】この情報と(dx ,dy )と(px ,py )の外積の符号を比較することで裏面を向いたマイクロポリゴンを除去する。例えば、コントロールポイントの並びが括弧なしのタイプで右手系の向きが表面の場合、図8(a)(b−1)(c)のマイクロポリゴンの時は、(dx ,dy )と(px ,py )の外積の符号が負の時はこのマイクロポリゴンは反転されて裏面が見えているので除去し、図8(b−2)のマイクロポリゴンの時は外積の符号が正の時は除去する。
【0144】この時注意すべきことは、インデックス変更手段4でコントロールポイントのインデックスの変更が起こるとコントロールポイントの並びが括弧ありのタイプから括弧なしのタイプや、その逆のことが起こるのでその時は左右系に関する情報は反転させなければならない。裏面除去手段6で除去されなかったマイクロポリゴンのデータは再分割判定手段7へ出力される。
【0145】再分割判定手段7では、生成されたマイクロポリゴンが予め定められているサイズより大きいか否かを判定する。この判定は、マイクロポリゴンのサイズというものをどう定義するかによって異なるが、一般には面積やマイクロポリゴンの辺の長さで定めるべきものである。ここでは例として辺の長さでサイズを規定するものとする。マイクロポリゴンの辺とは、マイクロポリゴンを規定するベクトルの大きさに対応するので、四角形マイクロポリゴンの場合は、ベクトル(dx,dy ),(px ,py ),(qx ,qy )の大きさを計算し、これが規定のサイズ以下か否かを判定する。
【0146】また、平行四辺形マイクロポリゴンや三角形マイクロポリゴンの場合は、ベクトル(dx ,dy ),(px ,py )の大きさを計算し、これが規定のサイズ以下か否かを判定する。また、この判定はテー ブルによっても行うことできる。例えば、ベクトルを規定する精度が0.25刻みで、規定のサイズが1の場合は、(表1)に示す判定表によってこの判定が行える。(表1)において、縦横の数は各ベクトルの成分の絶対値を表し、イエスの場合は大きさが1以下のときで、ノーの場合は1より大きい場合を示している。
【0147】
【表1】

【0148】再分割判定手段7で規定サイズ以下(イエス)と判定されたマイクロポリゴンのデータはアドレス生成手段11に出力され、規定サイズより大きい(ノー)と判定されたマイクロポリゴンは再分割が必要なため、分割数変更手段8、分割数決定手段9、サブマイクロポリゴン生成手段10での処理へとまわされる。
【0149】次に、分割数変更手段8、分割数決定手段9、サブマイクロポリゴン生成手段10において再帰的に行われるマイクロポリゴンの再分割の一連の処理について説明する。最初の再分割の時は、分割数変更手段8は何も行わず、分割数決定手段9での処理が行われる。分割数決定手段9はマイクロポリゴンを生成する4つの分割点の座標、(Xij,Yij),(Xi+1j,Yi+1j),(Xi+1j+1,Yi+1j+1),(Xij+1,Yij+1)から再分割を行う際の分割数を決定するものである。ここでは、分割数は2の累乗で示される数に規定しているが、これは先に述べたように除算の代わりにシフト演算で高速に行うためのもので、ここで述べる方法は分割数として他の一般的な数を用いることもできることに注意を要する。分割数決定手段9では、まず、【0150】
【数52】

【0151】
【数53】

【0152】
【数54】

【0153】
【数55】

【0154】を求めた後、【0155】
【数56】

【0156】
【数57】

【0157】を算出する。次に、【0158】
【数58】

【0159】
【数59】

【0160】を満たす、最小の非負整数m’,n’を算出する。この非負整数m’,n’が求める分割数である。サブマイクロポリゴン生成手段10は、元のマイクロポリゴンを生成する4つの分割点の座標、(Xij,Yij),(Xi+1j,Yi+1j),(Xi+1j+1,Yi+1j+1),(Xij+1,Yij+1)と分割数m’,n’から新たな分割点を発生させて、サブマイクロポリゴンを生成するものである。ここで、サブマイクロポリゴンとはマイクロポリゴンを分割したときにできるマイクロポリゴンのことで、データ上はマイクロポリゴンと何等変わりない。図9のように、発生する分割点を【0161】
【数60】

【0162】とすると、この分割点の座標は、【0163】
【数61】

【0164】
【数62】

【0165】によってもとめることができる。この分割点を用いて、マイクロポリゴン生成手段5で述べた、四角形マイクロポリゴンや平行四辺形マイクロポリゴン、三角形マイクロポリゴンの生成と同様な方法で、サブマイクロポリゴンを生成する。生成された全てのサブマイクロポリゴンに対して、再び再分割判定手段7で規定サイズ以下か否かの判定を行う。規定サイズ以下であると判定された場合は、アドレス生成手段11へこれらのデータは出力される。規定サイズより大きい時は、分割数変更手段8で分割数の変更が行われる。
【0166】例えば、平行四辺形マイクロポリゴンや三角形マイクロポリゴンの場合、(dx ,dy )は規定サイズ以下で、(px ,py )が規定サイズより大きい時は、m’は元のままでn’=n’+1とし、(dx ,dy )は規定サイズより大きく、(px ,py )が規定サイズ以下の時は、m’=m’+1に更新し、n’は元のままとし、(dx ,dy ),(px ,py )共に規定サイズより大きい時は、m’=m’+1,n’=n’+1とする。四角形マイクロポリゴンの時も同様に行う。
【0167】2回目以降のサブマイクロポリゴンの生成の際には、分割数決定手段9での処理は飛ばされ、サブマイクロポリゴン生成手段10で、更新された分割数を用いてサブマイクロポリゴンの生成を前回と同様の方法で行う。以上の処理を再帰的に繰り返すことで、マイクロポリゴンを再分割してサブマイクロポリゴンの生成を行い、規定サイズ以下になった(サブ)マイクロポリゴンがアドレス生成手段11へ送られる。
【0168】アドレス生成手段11は、面積寄与率参照手段12で、テーブル化されているマイクロポリゴンのピクセルに対する面積寄与率を参照するためのアドレスを生成するものである。アドレスの生成方法について説明する前に、まず、図13を用いて面積寄与率と面積寄与率テーブルについて簡単に説明しておくことにする。ピクセルを仮想的に1辺の長さが1の正方形とみなしたときに、ピクセルとマイクロポリゴンの共有領域の面積のことを、このピクセルに対する面積寄与率という。
【0169】換言すると、ピクセルとマイクロポリゴンの共有領域の面積のピクセルの面積に対する比率のことである。図12では、斜線などで示されたピクセルとマイクロポリゴンの共有領域の面積が、このマイクロポリゴンの各ピクセルに対する面積寄与率である。四角形マイクロポリゴンや平行四辺形マイクロポリゴンの場合、マイクロポリゴンの規定のサイズを1以下とし、基準点は5×5ピクセルの領域の中心の1ピクセル内部に固定すると、マイクロポリゴンを規定するベクトルが任意に動いても、この5×5ピクセルの領域内部に納まる(三角形マイクロポリゴンの場合は3×3の領域である)。
【0170】更に、1つのマイクロポリゴンは3×3の領域内に納まり、1つのマイクロポリゴンが面積寄与率を与えられるピクセル数の最大値は6個である(精度が0.25刻みの場合)。1つのマイクロポリゴンがこの領域内で与えられたときには、3×3、つまり9個のピクセルに対して面積寄与率がどのように与えられているかを情報として持っていれば、ピクセルに対する面積寄与率の情報としては十分であるといえる。この情報をテーブルとして保持しているのが面積寄与率テーブルである。
【0171】5×5の領域に2次元座標を与えておき、3×3の領域の左上のピクセルの座標を与えることで、この領域の5×5の領域における位置は特定できる。図13はこの様子を示したもので、マイクロポリゴンを含む3×3の領域は左上のピクセルの位置(0,0)によって特定され、このマイクロポリゴンは4つのピクセルに対して面積寄与率を与えている。スクリーン空間中のマイクロポリゴンに対しては、このマイクロポリゴンを含むように3×3の領域を切り取り、この領域を5×5の領域へマッピングし、3×3の領域の各ピクセルの面積寄与率を求めて、スクリーン空間へ逆マッピングすればスクリーン空間でのピクセルの面積寄与率を求めることができる。
【0172】このマッピングにおいて基準点の位置は5×5の領域の中心となるように行うので、これに関しては基準点の座標の整数部を変換すればよい。基準点の位置がこの中心のピクセルのどこかを確定するには、基準点の座標の小数点以下の値が分かればよい。マイクロポリゴンを規定する要素は、基準点と四角形マイクロポリゴンならば3つのベクトル、平行四辺形、三角形マイクロポリゴンならば2つのベクトルであるので、基準点とベクトルからアドレスを生成する。
【0173】基準点に関しては、先に述べたように、小数点以下の値で分類でき、ベクトルに関しては規定サイズ以下なので、例えば、精度が0.25刻みの場合、基準点に関しては各座標は、0.0,0.25,0.5,0.75 の4種類しかないので、合計16通りの区別ができればよく、ベクトルの各成分は、-1.0,-0.75,-0.5,-0.25,0.0,0.25,0.5,0.75,1.0 の9種類なので、四角形マイクロポリゴンの場合は96通りの区別ができればよく、平行四辺形、三角形マイクロポリゴンの場合は、94通りの区別ができればよい。
【0174】これを、ビット表示で実現する場合、四角形マイクロポリゴンの場合は図14(a)のように表わすことができ、基準点(x,y)に対しては4ビット、3つのベクトル(dx ,dy,) (px ,py ),及び(qx ,qy )に対しては24ビット、合計28ビットでアドレスを生成することができる。又、平行四辺形、及び三角形マイクロポリゴンの場合は図14の(b)に示すように表わすことができ、合計20ビットでアドレスが生成できる。
【0175】以上のことを踏まえて、アドレス生成手段11におけるアドレス生成方法について説明する。マイクロポリゴンのスクリーン空間における基準点を(X,Y)とすると、まず、I=[X],J=[Y]により、(X,Y)からピクセル位置(I,J)を求める。但し、[x]はガウス記号で、xを越えない最大の整数を表す。このマイクロポリゴンの基準点を5×5の領域の中心のピクセル(局所座標系で(2,2)の位置)内部にマッピングしたときの局所座標表示(x,y)を【0176】
【数63】

【0177】
【数64】

【0178】によって求める。但し、Int(x)はxの整数部を表す。この(x,y)と四角形マイクロポリゴンならば(dx ,dy ),(px ,py ),及び(qx ,qy )から、平行四辺形、及び三角形マイクロポリゴンならば(x,y)、(dx ,dy ),及び(px,py )から前述の方法でアドレスを生成する。生成されたアドレスは、面積寄与率参照手段12に出力される。
【0179】面積寄与率参照手段12は、アドレス生成手段11で生成されたアドレスに基づき、先に述べた3×3の領域の左上のピクセルの局所座標位置(wi ,wj )と(wi ,wj )の位置とから局所座標のi座標固定毎にj座標の増える方向に3×3の領域の9個のピクセルの面積寄与率をシリアルに出力する。このデータ形式については図15にその例を示す。(wi ,wj )のとれる位置は、各座標0,1,2なので、4ビットで表現することができ、面積寄与率を3ビットで表すと合計31ビットのデータとして出力される。このデータは記憶装置書き込み手段15での処理が終わるまで保持される。
【0180】アクセス変更手段13では、インデックス変更手段4でのインデックス置換情報に基づき、テクスチャデータへのアクセス順を当初貼り付けようと意図していた方向に変更する。例えば図16のように、テクスチャデータサイズが2m ×2n でこれらのデータは1次元的に格納されているとすると、次の2次元数列のいずれかを用いてアクセスの変更を行う。
【0181】
【数65】

【0182】
【数66】

【0183】
【数67】

【0184】
【数68】

【0185】
【数69】

【0186】
【数70】

【0187】
【数71】

【0188】
【数72】

【0189】上記の数列は全て、j固定毎にiを増加させて用い、算出された値がマイクロポリゴンに対してアクセスすべきテクスチャの番号である。インデックス変更手段4での元の(Ps00 ,Ps03 )に対する対応は、(Ps00 ,Ps03 )(Ps00,Ps30 )(Ps30 ,Ps33 )(Ps30 ,Ps00 )(Ps33 ,Ps30 )(Ps33,Ps03 )(Ps03 ,Ps00 )(Ps03 ,Ps33 )(Ps00 ,Ps03 )(Ps00,Ps03 )で、この対応に応じて、(数65)(数66)(数67)(数68)(数69)(数70)(数71)をアクセス番号算出のための数列として用いる。
【0190】テクスチャデータ参照手段14は、アクセス変更手段13で算出されたマイクロポリゴンに対してアクセスすべきテクスチャの番号に応じてテクスチャデータを取り出してくる。テクスチャデータは、基本的にはRGBの輝度値であるが、この他に物体の不透明度等がある。また、テクスチャデータのRGB輝度値データは照度計算の結果が反映されているものを用いる。つまり、各種照度計算方法(グロー、フォン、ラジオシティ等)で計算した結果を反映したデータを用いる。また、影として表現するための曲面やポリゴンに対しては、影の照度値を格納下データを用いればいわゆるシャドーマッピングも行うことができる。
【0191】記憶装置書き込み手段15は、レンダリング手段16と1面処理終了判定手段17と1シーン処理終了判定手段18と輝度値修正手段19からなり、面積寄与率参照手段12とテクスチャデータ参照手段14で参照されたピクセルの面積寄与率とテクスチャデータを用いてマイクロポリゴンのレンダリング、記憶装置への書き込み、処理の終了判定などを行う。
【0192】マイクロポリゴンのレンダリングはフラットシェーディングで、つまり、テクスチャデータで与えられるRGB値で一色に塗りつぶす計算を行う。記憶装置書き込み手段15の動作方法には、最初に行われた曲面やポリゴンに対して適用されたソーティング方法によって、幾つかの異なるものがある。また、テクスチャデータに不透明度が与えられているか否かによっても幾つかの異なる動作方法がある。以下では、これらの動作方法について説明する。
【0193】最初にソーティングが奥行きに対して遠いものから近いものへ行われた場合の記憶装置書き込み手段15の第1、2、3、4の動作方法について説明する。第1の方法は、テクスチャデータに不透明度がない場合である。前提として、各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和をスクリーン空間の座標系で保持することが可能な記憶装置があるものとする。ここで、描画用輝度値、計算用輝度値は共にRGBタイプの3次元デーとする。また、面積寄与率の和とは、1つのピクセルに対して複数のマイクロポリゴンが面積寄与率を与えるのでそれらの面積寄与率を加算していったものである。
【0194】レンダリング手段16は1つのマイクロポリゴンに対して面積寄与率参照手段12で参照した9個のピクセルに対する面積寄与率とテクスチャデータ参照手段14で参照したテクスチャデータを用いて、描画用輝度値と計算用輝度値と面積寄与率の和を計算し、記憶装置へのリード・モディファイ・ライトを行う。この時、面積寄与率参照手段12で参照されるデータ形式は上述の例のように図16で示したようなもので、5×5の領域の局所座標系に基づいたデータなので、これをスクリーン空間の座標系へ変換しなければならない。この変換はアドレス生成手段11の箇所で述べたI,Jを用いて以下のように行う。
【0195】但し、スクリーン空間でアクセスするピクセルの座標を(Iw ,Jw )とする。(wi,wj)=(0,0) ならばI-2 ≦Iw≦I,J-2 ≦Jw≦J の位置のピクセルにアクセスする。(wi,wj)=(0,1) ならばI-2 ≦Iw≦I,J-1 ≦Jw≦J+1 の位置のピクセルにアクセスする。(wi,wj)=(0,2) ならばI-2 ≦Iw≦I,J ≦Jw≦J+2 の位置のピクセルにアクセスする。(wi,wj)=(1,0) ならばI-1 ≦Iw≦I+1,J-2 ≦Jw≦J の位置のピクセルにアクセスする。(wi,wj)=(1,1) ならばI-1 ≦Iw≦I+1,J-1 ≦Jw≦J+1 の位置のピクセルにアクセスする。(wi,wj)=(1,2) ならばI-1 ≦Iw≦I+1,J ≦Jw≦J+2 の位置のピクセルにアクセスする。(wi,wj)=(2,0) ならばI ≦Iw≦I+2,J-2≦Jw≦J の位置のピクセルにアクセスする。(wi,wj)=(2,1) ならばI ≦Iw≦I+2,J-1 ≦Jw≦J+1 の位置のピクセルにアクセスする。(wi,wj)=(2,2) ならばI ≦Iw≦I+2,J ≦Jw≦J+2 の位置のピクセルにアクセスする。
【0196】これらのピクセルに対して以下の処理を行う。まず、処理を行う当該ピクセルの面積寄与率の和αsum を読みだし、αsum が1より小さい時に限り、αsum に面積寄与率参照手段12で算出した面積寄与率の値αを加えたテンポラリの値、Temp=αsum +αを計算する。Tempが1以下の場合は、面積寄与率の和はTempに更新する。計算用輝度値は、αにテクスチャデータ参照手段14で参照した輝度値(IR ,IG ,IB )を乗じた値と記憶装置から読み出した計算用輝度値(IcalR,IcalG,IcalB)とを加えた値に更新する。
【0197】つまり、(計算用輝度値)=α(IR ,IG ,IB )+(IcalR,IcalG,IcalB)。Tempが1より大きい場合は、計算用輝度値は、(計算用輝度値)=(1−αsum )(IR ,IG ,IB )+(IcalR,IcalG,IcalB)に更新する。また、面積寄与率の和は1に更新する。1面処理終了判定手段17は、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了していなければ以上の処理を1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了するまで行う。
【0198】処理を終了したという判定を得ると、描画用輝度値は、記憶装置から読み出した描画用輝度値(IdR,IdG,IdB)を用いて、(描画用輝度値)=(1−αsum )(IdR,IdG,IdB)+(IcalR,IcalG,IcalB)に更新する。更新を終了すると、計算用輝度値と面積寄与率の和を0に初期化する。以上の処理を1シーン処理判定手段18で1シーン分全てのデータに対して処理が終了したと判定されるまで行う。第1の方法では、輝度値修正手段19は何も処理しない。
【0199】第2の方法は、テクスチャデータに不透明度がある場合である。面積寄与率に不透明度を乗じた値をピクセル寄与率と定義する。前提として、各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和とピクセル寄与率との和を保持することができる記憶装置があるものとする。面積寄与率参照手段12で参照されたピクセルに対する、5×5の領域からスクリーン空間への変換方法は第1の方法と同様とする。
【0200】このとき、レンダリング手段16は、処理を行う当該ピクセルの面積寄与率の和αsum を読みだし、αsum が1より小さい時に限り、αsum に面積寄与率参照手段12で算出した面積寄与率の値αを加えたテンポラリの値、Temp=αsum +αを計算する。Tempが1以下の場合は、面積寄与率の和はTempに更新する。ピクセル寄与率の和は、テクスチャデータ参照手段14で参照された不透明度βに、算出した面積寄与率αを乗じた値と、記憶装置から読み出したピクセル寄与率の和γとを加えた値、(ピクセル寄与率の和)=αβ+γに更新する。計算用輝度値は、αとβとテクスチャデータ参照手段14で参照された輝度値(IR ,IG,IB )とを乗じた値と記憶装置から読みだした計算用輝度値(IcalR,IcalG,IcalB)とを加えた値、(計算用輝度値)=αβ(IR ,IG,IB )+(IcalR,IcalG,IcalB)に更新する。
【0201】Tempが1より大きい場合は、計算用輝度値は、(計算用輝度値)=(1−αsum )β(IR ,IG ,IB )+(IcalR,IcalG,IcalB)に更新する。面積寄与率の和は1に更新し、ピクセル寄与率の和は、(ピクセル寄与率の和)=(1−αsum )β+γに更新する。1面処理終了判定手段17は、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了していなければ以上の処理を1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了するまで行う。
【0202】処理を終了したという判定を得ると、描画用輝度値を、記憶装置から読み出した描画用輝度値(IdR,IdG,IdB)を用いて、(描画用輝度値)=(1−γ)(IdR,IdG,IdB)+(IcalR,IcalG,IcalB)に更新する。更新が終了したならば計算用輝度値と面積寄与率の和とピクセル寄与率の和を0に初期化する。以上の処理を1シーン処理判定手段18で1シーン分全てのデータに対して処理が終了したと判定されるまで行う。第2の方法では、輝度値修正手段19は何も処理しない。
【0203】第3の方法は、テクスチャデータに不透明度がない場合である。前提として、各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和とを保持することができる記憶装置があるものとする。面積寄与率参照手段12で参照されたピクセルに対する、5×5の領域からスクリーン空間への変換方法は第1の方法と同様とする。このとき、レンダリング手段16は、処理を行う当該ピクセルの面積寄与率の和αsum を読みだし、αsum が1より小さい時に限り、αsum に面積寄与率参照手段12で算出した面積寄与率の値αを加えたテンポラリの値、Temp=αsum +αを計算する。
【0204】Tempが1以下の場合は、面積寄与率の和はTempに更新する。計算用輝度値は、αと記憶装置から読み出した描画用輝度値(IdR,IdG,IdB)からテクスチャデータ参照手段14で参照された輝度値(IR ,IG ,IB )を減じた値とを乗じた値を、記憶装置から読み出した計算用輝度値(IcalR,IcalG,IcalB)から減じた値、(計算用輝度値)=(IcalR,IcalG,IcalB)−α{(IdR,IdG,IdB)−(IR ,IG ,IB )}に更新する。Tempが1より大きい場合は、計算用輝度値は、(計算用輝度値)=(IcalR,IcalG,IcalB)−(1−αsum ){(IdR,IdG,IdB)−(IR ,IG ,IB )}1から前の面積寄与率の和を減じた値と、描画用輝度値からマイクロポリゴンに与えられた輝度値を減じた値とを乗じた値を、前の計算用輝度値から減じた値に更新し、面積寄与率の和は1に更新する。
【0205】1面処理終了判定手段17は、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了していなければ以上の処理を1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了するまで行う。処理を終了したという判定を得ると、描画用輝度値を計算用輝度値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和を0に初期化する。以上の処理を1シーン処理判定手段18で1シーン分全てのデータに対して処理が終了したと判定されるまで行う。第3の方法では、輝度値修正手段19は何も処理しない。
【0206】第4の方法は、テクスチャデータに不透明度がある場合である。前提として、各ピクセルに対して描画用輝度値と計算用輝度値と面積寄与率の和とを保持することができる記憶装置があるものとする。面積寄与率参照手段12で参照されたピクセルに対する、5×5の領域からスクリーン空間への変換方法は第1の方法と同様とする。このとき、レンダリング手段16は、処理を行う当該ピクセルの面積寄与率の和αsum を読みだし、αsum が1より小さい時に限り、αsum に面積寄与率参照手段12で算出した面積寄与率の値αを加えたテンポラリの値、Temp=αsum +αを計算する。
【0207】Tempが1以下の場合は、面積寄与率の和はTempに更新する。計算用輝度値は、αとテクスチャデータ参照手段14で参照された不透明度βと記憶装置から読み出された描画用輝度値(IdR,IdG,IdB)からテクスチャデータ参照手段14で参照された輝度値を減じた値(IR ,IG ,IB )とを乗じた値を、記憶装置から読み出された計算用輝度値(IcalR,IcalG,IcalB)から減じた値、(計算用輝度値)=(IcalR,IcalG,IcalB)−αβ{(IdR,IdG,IdB)−(IR ,IG ,IB )}に更新する。
【0208】Tempが1より大きい場合は、計算用輝度値は、(計算用輝度値)=(IcalR,IcalG,IcalB)−(1−αsum )β{(IdR,IdG,IdB)−(IR ,IG ,IB )}に更新し、面積寄与率の和は1に更新する。1面処理終了判定手段17は、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了していなければ以上の処理を1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了するまで行う。処理を終了したという判定を得ると、描画用輝度値を計算用輝度値に更新し、更新が終了したならば計算用輝度値と面積寄与率の和を0に初期化する。
【0209】以上の処理を1シーン処理判定手段18で1シーン分全てのデータに対して処理が終了したと判定されるまで行う。第4の方法では、輝度値修正手段19は何も処理しない。
【0210】次に、記憶装置書き込み手段を備えたことを特徴とする画像生成装置について、ソーティングが奥行きに対して近いものから遠いものへ行われた場合の記憶装置書き込み手段15の第5、6、7の動作方法について説明する。第5の方法は、テクスチャデータに不透明度がない場合である。前提として、各ピクセルの輝度値と面積寄与率の和を保持することができる記憶装置があるもとする。面積寄与率参照手段12で参照したピクセルに対する、5×5の領域からスクリーン空間への変換方法は第1の方法と同様とする。このとき、レンダリング手段16は、処理を行う当該ピクセルの面積寄与率の和αsumを読みだし、αsum が1より小さい時に限り、αsum に面積寄与率参照手段12で算出した面積寄与率の値αを加えたテンポラリの値、Temp=αsum +αを計算する。
【0211】Tempが1以下の場合は、面積寄与率の和はTempに更新する。輝度値については、αにテクスチャデータ参照手段14で参照した輝度値(IR ,IG ,IB )を乗じた値に、記憶装置から読み出した輝度値(IdR,IdG,IdB)を加えた値、(輝度値)=α(IR ,IG ,IB )+(IdR,IdG,IdB)に更新する。Tempが1より大きい場合は、輝度値については、(輝度値)=(1−αsum )(IR,IG ,IB )+(IdR,IdG,IdB)に更新し、面積寄与率の和は1に更新する。
【0212】以上の処理を1シーン処理判定手段18で1シーン分全てのデータに対して処理が終了したと判定されるまで行う。1シーン処理終了判定手段18において処理が終了したという判定が行われると、輝度値修正手段19は、面積寄与率の和が1より小さいピクセルに対して、輝度値を記憶していた輝度値(IdR,IdG,IdB)に、1から面積寄与率の和αを減じた値と背景として与えられた輝度値(IbR,IbG,IbB)とを乗じた値を加えた値、(輝度値)=(IdR,IdG,IdB)+(1−α)(IbR,IbG,IbB)に更新する。
【0213】第6の方法は、テクスチャデータに不透明度がある場合である。前提として、各ピクセルに対して輝度値とピクセル寄与率の和とを保持することができる記憶装置があるものとする。面積寄与率参照手段12で参照したピクセルに対する、5×5の領域からスクリーン空間への変換方法は第1の方法と同様とする。このとき、レンダリング手段16は、処理を行う当該ピクセルのピクセル寄与率の和γsum を読みだし、γsum が1より小さい時に限り、γsum に面積参照手段12で算出した面積寄与率αとテクスチャデータ参照手段14で参照した不透明度βを乗じた値を加えたテンポラリの値、Temp=γsum +αβを計算する。
【0214】Tempが1以下の場合は、γsum をTempに更新する。輝度値については、αとβとテクスチャデータ参照手段14で参照された輝度値(IR ,IG ,IB )とを乗じた値に記憶装置から読み出された輝度値(IdR,IdG,IdB)を加えた値、(輝度 )=αβ(IR ,IG ,IB )+(IdR,IdG,IdB)に更新する。Tempが1より大きい場合は、輝度値については、(輝度値)=(1−γsum)(IR,IG ,IB )+(IdR,IdG,IdB)に更新し、ピクセル寄与率の和は1に更新する。
【0215】以上の処理を1シーン処理判定手段18で1シーン分全てのデータに対して処理が終了したと判定されるまで行う。1シーン処理終了判定手段18において処理が終了したという判定が行われると、輝度値修正手段19は、ピクセル寄与率の和γsum が1より小さいピクセルに対して、輝度値を記憶していた輝度値(IdR,IdG,IdB)に、1からγsum を減じた値と背景として与えられた輝度値(IbR,IbG,IbB)とを乗じた値を加えた値、(輝度値)=(IdR,IdG,IdB)+(1−γsum )(IbR,IbG,IbB)に更新する。
【0216】第7の方法も、テクスチャデータに不透明度がある場合である。前提として、各ピクセルの輝度値とピクセル寄与率の和とを保持することができる輝度用の記憶装置と面積寄与率の和とを保持することができる面積寄与率用の記憶装置があるものとする。面積寄与率参照手段12で参照されたピクセルに対する、5×5の領域からスクリーン空間への変換方法は第1の方法と同様とする。
【0217】このとき、レンダリング手段16は、処理を行う当該ピクセルの面積寄与率の和αsum とピクセル寄与率の和γsum を読み出し、αsum ,γsum が共に1より小さい時に限り、αsum に面積寄与率参照手段12で算出した面積寄与率αの値を加えた面積寄与率の和のテンポラリの値、Temp1 =αsum +αと、γsum にαとテクスチャデータ参照手段14で参照された不透明度βとを乗じた値を加えたピクセル寄与率の和のテンポラリの値、Temp2 =γsum +αβとを計算する。Temp1 ,Temp2 が共に1以下の場合は、面積寄与率の和はTemp1 に更新し、ピクセル寄与率の和はTemp2に更新する。
【0218】輝度値は、αとβとテクスチャデータ参照手段14で参照された輝度値(IR,IG ,IB )とを乗じた値を、輝度用の記憶装置から読み出された輝度値(IdR,IdG,IdB)に加えた値、(輝度値)=αβ(IR ,IG ,IB )+(IdR,IdG,IdB)に更新する。Temp1 が1より大きく、Temp2 が1以下の場合は、輝度値は、(輝度値)=(1−αsum )β(IR ,IG ,IB )+(IdR,IdG,IdB)に更新する。面積寄与率の和は1に更新し、ピクセル寄与率の和は、(ピクセル寄与率の和)=γsum +(1−αsum )βに更新する。Temp2 が1より大きい場合は、輝度値は、(輝度値)=(1−γsum )(IR ,IG ,IB )+(IdR,IdG,IdB)に更新する。面積寄与率の和とピクセル寄与率の和は1に更新する。
【0219】1面処理終了判定手段17は、1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了したか否かの判定を行い、終了していなければ以上の処理を1つのポリゴンまたは曲面に対して生成された全てのマイクロポリゴンに対して処理が終了するまで繰り返す。処理を終了したという判定を得ると、面積寄与率用の記憶装置の内容を0に初期化する。上記の処理を1シーン処理判定手段18で1シーン分全てのデータに対して処理が終了したと判定されるまで行う。
【0220】1シーン処理終了判定手段18でその処理が終了したという判定が行われると、輝度値修正手段19は、ピクセル寄与率の和γsumが1より小さいピクセルに対して、輝度値を記憶していた輝度値(IdR,IdG,IdB)に、1からγsum を減じた値と背景として与えられた輝度値(IbR,IbG,IbB)とを乗じた値を加えた値、(輝度値)=(IdR,IdG,IdB)+(1−γsum )(IbR,IbG,IbB)に更新する。
【0221】以下、本発明の第2の実施例につき図面を参照して詳細に説明する。第1の実施例では面積寄与率をテーブルを参照して算出する方式を採用したが、第2の実施例ではこの部分を計算で算出する方式を採用する。図2は本発明の第2の実施例による画像生成装置の構成図である。図2において、201はサブポリゴンの内点がマイクロポリゴンの規定する領域内部にはいっているか否かを判定する内外判定手段、202はマイクロポリゴンの規定する領域内部にはいっているサブポリゴンの個数を数えるカウンティング手段、203は1ピクセルに対する処理が終了したか否かを判定する1ピクセル処理終了判定手段、205は規定領域内の全てのピクセルに対して処理が終了したか否かを判定する規定領域内ピクセル終了判定手段である。
【0222】以上のように構成された第2の実施例による画像生成装置について、以下、その理論的背景について述べ、その後、動作について説明する。第1の実施例でも説明したように、マイクロポリゴンの規定サイズを1以下とすれば、マイクロポリゴンは5×5ピクセルの領域内にはいる(但し、基準点は5×5の領域の中心のピクセル内部にある)。この5×5の領域をΩ、マイクロポリゴンの囲む領域をD,(i,j)の位置のピクセルの領域をPijとすると、面積寄与率の定義から次の式(数73)が成り立つ。
【0223】
【数73】

【0224】一般に、集合Sで積分が定義されている時、S上の可積分関数fに対して次の関係が成り立つ。但し、AはSの部分集合である。
【0225】
【数74】

【0226】
【数75】

【0227】従って、(数73)(数74)(数75)から、【0228】
【数76】

【0229】が成り立つ。この(数76)を離散化することについて考える。図17はPijの各辺を2n 等分して、22n個のサブピクセルを生成したときの図である。上述のサブピクセルの内点を重心とすると、新たにkl座標系を導入して、この重心は、【0230】
【数77】

【0231】と表せる。但し、【0232】
【数78】

【0233】である。これを用いると、(数76)は次の離散化式の極限で表すことができる。
【0234】
【数79】

【0235】(数79)の右辺は、重心がPijとDの共有領域にいくつ入っているかを数え、それにサブピクセルの面積を乗じた式を表わすものと解釈できる。従って、重心が共有領域内か否かの判定を行う必要がある。これは次の4つの補題によって行うことができる(図18参照)。
【0236】補題1:基準点(x,y)とこれを挟む2つのベクトル(dx ,dy )(px,py )と任意の点(α,β)が与えられ、(α−x,β−y)=s(dx ,dy )+t(px ,py )と表わされると、0≦s≦1かつ0≦t≦1ならば、(α,β)は基準点(x,y)とこれを挟む2つのベクトル(dx ,dy )(px,py )で規定される平行四辺形の内部(境界を含む)にある。
【0237】補題2:基準点(x,y)とこれを挟む2つのベクトル(dx ,dy )(px,py )と任意の点(α,β)が与えられ、(α−x,β−y)=s(dx ,dy )+t(px ,py )と表わされると、0<s<1かつ0<t<1ならば、(α,β)は基準点(x,y)とこれを挟む2つのベクトル(dx ,dy )(px,py )で規定される平行四辺形の内部(境界を含まない)にある。
【0238】補題3:基準点(x,y)とこれを挟む2つのベクトル(dx ,dy )(px,py )と任意の点(α,β)が与えられ、(α−x,β−y)=s(dx ,dy )+t(px ,py )と表わされると、0≦s≦1かつ0≦t≦1かつ0≦s+t≦1ならば、(α,β)は基準点(x,y)とこれを挟む2つのベクトル(dx ,dy )(px ,py )で規定される三角形の内部(境界を含む)にある。
【0239】補題4:基準点(x,y)とこれを挟む2つのベクトル(dx ,dy )(px,py )と任意の点(α,β)が与えられ、(α−x,β−y)=s(dx ,dy )+t(px ,py )と表わされると、0<s<1かつ0<t<1かつ0<s+t<1ならば、(α,β)は基準点(x,y)とこれを挟む2つのベクトル(dx ,dy )(px ,py )で規定される三角形の内部(境界を含まない)にある。
【0240】但し、補題1、2、3、4ともに、上記のs,tは、dx py −px dy ≠0であれば、【0241】
【数80】

【0242】で求めることができ、dx py −px dy =0であれば解はない(平行四辺形、三角形が潰れていることを表す)。以上のことを踏まえて、その動作について説明する。マイクロポリゴンを規定する基準点とベクトルのデータと、基準点をその中心においた時の5×5のピクセル領域のデータが内外判定手段201に入力される。但し、四角形マイクロポリゴンの場合は2つの三角形に分割されているものとする。内外判定手段201ではdx py −px dy =0か否かの判定を行い、0ならば5×5の領域の全てのピクセルの面積寄与率は0として全ての処理を終了する。dx py −px dy≠0ならば5×5の領域のピクセル毎に、次の処理を行う。
【0243】まず、サブピクセルの重心に対してs,tを(数80)で求める。平行四辺形マイクロポリゴンならば、補題1、補題2を満たすか否かを判定し、四角形、三角形マイクロポリゴンならば補題3、補題4を満たすか否かを判定し、カウティング手段202で満たしている場合はそれぞれのカウンタを1増加させる(補題1、2、3、4のカウンタをcount1,count2,cout3,cout4 とする)。
【0244】この処理を、1ピクセル処理終了判定手段203で、1ピクセル内の全てのサブピクセルに対して終了したと判定するまで繰り返す。1ピクセル処理終了判定手段203で、1ピクセル内の全てのサブピクセルに対して終了したと判定されたならば、面積寄与率算出手段204で、入力されたものが平行四辺形マイクロポリゴンならば、cout=cout2+(cout1-cout2)/2を計算し、四角形、三角形マイクロポリゴンならば、cout=cout4+(cout3-cout4)/2を計算する。
【0245】次に、coutにサブピクセルの面積を乗じることでこのピクセルの面積寄与率を算出する。求めた面積寄与率は、精度に応じて全てプラスの方向に丸める。この処理を、規定領域内ピクセル終了判定手段205で、5×5の領域の全てのピクセルに対して終了したと判定されるまで繰り返し、終了したと判定されたならば全ての処理を終了する。
【0246】なお、本実施例では5×5の領域に対して行ったが、第1の実施例で述べたように、規定サイズが1以下の場合は最大のマイクロポリゴンでも3×3の領域にはいるので、前処理としてマイクロポリゴンが内部に含まれる最小の矩形領域を求める手段を設ければ処理するピクセル数はもっと減らすことができる。例えば図19に示すように、2×2のピクセルの領域でよいことが分かる。また、第2の実施例による面積寄与率算出手段は、第1の実施例における面積寄与率のテーブルを作成するときにも用いることができる。
【0247】
【発明の効果】本発明は、以上説明したように、3次元空間で定義された曲面やポリゴンを2次元のスクリーン空間へ幾何変換した後、マイクロポリゴンの生成を行うようにしたので、幾何変換の計算量は従来に比べ激減し、処理の高速化を図ることができる。又、マイクロポリゴンの生成過程においても、2次元で取り扱うようにしたので、座標値や成分を算出する計算は従来の3つではなく2つでよい。
【0248】本発明では、面積寄与率をテーブルによって決定しているので、高速に処理を行うことができるほか、ハードウェア化が容易である。本発明では面積積分を応用して高速に面積寄与率を算出する手法も提供し、更にそれを面積寄与率のテーブルの作成に用いることもできる。また、本発明は、面積寄与率のテーブルを用いる場合、そのサイズを小さくする工夫がなされ、マイクロポリゴンを規定サイズ以下にするための再分割についても、有効な再帰的再分割のアルゴリズムを提供する。
【0249】また、マイクロポリゴンの中には生成された画像には反映されないものが存在するが、本発明では、この裏向きのマイクロポリゴンを除去する手法を提供し、実際に画像を生成するためのフレームメモリ等への書き込みを効果的に行う方法を式を提供することにより、より高速に質の良い画像を提供することができる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013