ポリゴン処理装置,プログラム及び情報記録媒体
【課題】 本発明は,必要なポリゴンの形状を変化させずに,描画に用いられないポリゴン情報を削除するポリゴン処理装置を提供することを目的とする。
【解決手段】 本発明は,あるポリゴンから複数の走査線を発生させ,その全ての走査線がポリゴンにより遮られるか否か判断する。そして,全ての走査線が遮られたポリゴンは,他のポリゴンに囲まれ,描画されないポリゴンであると推測し,描画のための処理を行わない。本発明は,上記のような処理を行うことで,必要なポリゴンの形状を変化させず,簡単な処理により,描画に用いられないポリゴンを描画対象から除外することができるという知見に基づくものである。
【解決手段】 本発明は,あるポリゴンから複数の走査線を発生させ,その全ての走査線がポリゴンにより遮られるか否か判断する。そして,全ての走査線が遮られたポリゴンは,他のポリゴンに囲まれ,描画されないポリゴンであると推測し,描画のための処理を行わない。本発明は,上記のような処理を行うことで,必要なポリゴンの形状を変化させず,簡単な処理により,描画に用いられないポリゴンを描画対象から除外することができるという知見に基づくものである。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,3次元コンピュータグラフィックスに用いられるポリゴン処理装置に関する。より詳しく説明すると,本発明は,外観のクオリティを落とさずにポリゴンの数を減らすことができるポリゴン処理装置,プログラム及び情報記録媒体に関する。
【背景技術】
【0002】
3次元コンピュータグラフィックス(3DCG)において,3次元オブジェクトをリアルタイムに描画するための方法として,隠面消去処理が知られている。陰面消去処理は,他のオブジェクトに隠れて見えない面を消去する方法である。代表的な隠面消去処理方法は,Zバッファ法である。Zバッファ法は,画面のピクセル毎に各ピクセルのZバッファからZ値を読み出す。そして,Zバッファ法は,その後処理するピクセルが,このZ値より後方であれば描画処理をキャンセルする。このようにしてZバッファ法は,隠面消去処理を達成できる。一方,Zバッファ法は,Zバッファからピクセル単位でZ値を読み出すため,処理コストが高いという問題がある。
【0003】
ピクセル単位の描画処理を行う前に不要なポリゴンを処理対象から除外する方法として,早期Zカリング法が知られている。早期Zカリング法は,ピクセル単位でZ値を比較する必要がないため,リアルタイムな画像処理に有効である。しかしながら,早期Zカリング法も,結局はZバッファを参照するため,処理コストが高くなる。
【0004】
特に3DCGを用いて映画を作成した場合,各オブジェクトが多数のポリゴンを含むこととなる。そして,そのような3DCGをゲームに用いる場合,ポリゴン処理コストが多くなるため,リアルタイムな描画を達成することが難しい。このため,ポリゴンの数を減らす処理を行うことが好ましい。
【0005】
特開2000−57368号公報には,ポリゴンの数を減少させるポリゴン処理方法が開示されている。ポリゴンは,通常複数の頂点を含む平面によって構成される。この公報に開示された方法は,ポリゴンの頂点を格子点に一致させることで,隣接する微小ポリゴンを削除するというものである(図8)。リアルタイムな3次元コンピュータグラフィックスを実現するためには,描画のための処理量を減らすことが望ましい。よって,ポリゴンの数を減らす処理を行うことは,リアルタイムなコンピュータグラフィック表示に寄与することとなる。
【0006】
また,3DCGをリアルタイムに処理する技術として,米国特許明細書第5751291号には,オクルージョンカリング法が開示されている。この方法は,オブジェクトを基本的図形で覆う。そして,あるオブジェクトを覆った基本図形が,他の基本図形にオクルードされているか否かが判断される。この方法は,他の基本図形にオクルードされている基本図形に覆われたオブジェクトを描画対象から除外する。このようにオクルージョンカリング法は,描画対象となるオブジェクトを減らすことができるので,画像処理コストを軽減できる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2000−57368号公報
【特許文献2】米国特許明細書第5751291号
【発明の概要】
【発明が解決しようとする課題】
【0008】
特開2000−57368号公報に開示された方法では,頂点を格子点に一致させる際にポリゴンの形状が変化する。また,この方法は,頂点を格子点に一致させる際の頂点処理が複雑となる。
【0009】
また,オクルージョンカリング法は,描画されないオブジェクトを検出する方法である。このため,描画されないポリゴンを見出すものではない。さらに,この方法は,オブジェクトを基本図形に近似した上で処理を行うため,精密なコンピュータグラフィックスを描画するには不向きである。
【0010】
そこで,本発明は,必要なポリゴン(プリミティブ)の形状を変化させずに,描画に用いられないポリゴン情報を削除するポリゴン処理装置を提供することを目的とする。
また,本発明は,比較的簡単な処理で,描画に用いられないポリゴン情報を削除するポリゴン処理装置を提供することを目的とする。
さらに本発明は,コンピュータに上記のようなポリゴン処理装置を実装させるためのプログラムや,そのようなプログラムを記録した情報記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は,あるポリゴンから複数の走査線を発生させ,その全ての走査線がポリゴンにより遮られるか否か判断する。そして,全ての走査線が遮られたポリゴンは,他のポリゴンに囲まれ,描画されないポリゴンであると推測し,描画のための処理を行わない。本発明は,上記のような処理を行うことで,必要なポリゴンの形状を変化させず,簡単な処理により,描画に用いられないポリゴンを描画対象から除外することができるという知見に基づくものである。
【0012】
本発明の第1の側面は,3次元コンピュータグラフィックに用いられるポリゴン処理装置に関する。このポリゴン処理装置は,ポリゴン情報記憶手段と,走査線発生手段と,遮蔽判断手段と,描画処理手段とを含む。ポリゴン情報記憶手段は,ポリゴンに関する情報を記憶するための手段である。走査線発生手段は,ポリゴン情報記憶手段に記憶されたあるポリゴンから,複数の方向へ複数の走査線を発生するための手段である。遮蔽判断手段は,走査線が他のポリゴンにより遮られるか否かを判断するための手段である。描画処理手段は,遮蔽判断手段が,あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,あるポリゴンに関する所定の描画処理を行わないように制御するための手段である。
【0013】
本発明の第1の側面に係るポリゴン処理装置の好ましい態様は,走査線発生手段が,あるポリゴン内のランダムな位置から,ランダムな方向へ複数の走査線を発生するための手段を含むものである。
【0014】
本発明の第1の側面に係るポリゴン処理装置の好ましい態様は,ポリゴン透明度判断手段をさらに有するものである。ポリゴン透明度判断手段は,走査線が交差したポリゴンが透明又は半透明であるか否か判断するための手段である。そして,遮蔽判断手段は,走査線が交差したポリゴンが透明又は半透明である場合に,走査線はこのポリゴンにより遮られないと判断する。この態様のポリゴン処理装置は,上記したいずれの態様をも組み合わせることができる。
【0015】
これにより,透明又は半透明のポリゴンと走査線が接触した場合であっても,走査線が遮蔽されないとして描画処理を進めることができる。
【0016】
本発明の第2の側面は,3次元コンピュータグラフィック用プログラムに関する。このプログラムは,コンピュータに,あるポリゴンから複数の方向へ複数の走査線を発生するためのステップと,走査線が他のポリゴンにより遮られるか否かを判断するためのステップと,あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,あるポリゴンに関する所定の描画処理を行わないように制御するためのステップと,を実行させるようにしたプログラムである。換言すると,このプログラムは,コンピュータを上記した第1の側面に係るポリゴン処理装置として機能させることができるプログラムといえる。
【0017】
本発明の第2の側面の好ましい態様は,コンピュータに走査線が交差したポリゴンが透明又は半透明であるか否か判断するためのステップをさらに実行させるプログラムに関する。そして,このコンピュータは,走査線が交差したポリゴンが透明又は半透明である場合に,走査線はこのポリゴンにより遮られないと判断する。
【0018】
本発明の第3の側面は,上記のプログラムを記憶した,コンピュータ読み取り可能な情報記録媒体に関する。
【発明の効果】
【0019】
本発明は,あるポリゴンから複数の走査線を発生させ,その全ての走査線がポリゴンにより遮られるか否か判断する。本発明のポリゴン処理装置は,これにより,必要なポリゴンの形状を変化させずに,比較的簡単な処理で,描画に用いられないポリゴン情報を削除することができる。さらに本発明によれば,コンピュータに上記のようなポリゴン処理装置を実装させるためのプログラムや,そのようなプログラムを記録した情報記憶媒体を提供することができる。
【図面の簡単な説明】
【0020】
【図1】図1は,本発明のひとつの実施態様であるポリゴン処理装置のブロック図である。
【図2】図2は,あるポリゴンにおける走査線がランダムに発生する場合の例を説明するための図である。
【図3】図3は,あるポリゴン上の格子点を示す。
【図4】図4は,あるポリゴンにおける走査線がある規則をもって発生する場合の例を説明するための図である。
【図5】図5は,走査線が遮蔽される様子を示す概念図である。
【図6】図6は,少なくとも1本の走査線が遮蔽されない様子を示す概念図である。
【図7】図7は,走査線が交差したポリゴンが透明又は半透明である場合の様子を示す概念図である。
【図8】図8は,本発明のある実施態様に係るポリゴン処理装置のブロック図である。
【図9】図9は,本発明のコンピュータグラフィックスの描画方法の基本工程を説明するためのフローチャートである。
【図10】図10は,本発明のコンピュータグラフィックスの描画方法を説明するためのフローチャートである。
【図11】図11は,映像作成システムの全体構成を例示するブロック図である。
【図12】図12は,に係る映像作成システムの動作手順を例示するフローチャートである。
【発明を実施するための形態】
【0021】
以下,発明を実施するための形態について説明する。本発明は,以下に説明する実施態
様に限定されるものではない。本発明は,以下に説明する実施態様から当業者に自明な範
囲で適宜修正される範囲を含む。
【0022】
図1は,本発明のひとつの実施態様であるポリゴン処理装置のブロック図である。図1に示されるように,このポリゴン処理装置11は,ポリゴン情報記憶装置13,走査線発生装置15,遮蔽判断装置17,描画処理装置19,ポリゴン透明度判断装置21,及びランダム値発生装置23を含む。このポリゴン処理装置11は,3次元コンピュータグラフィックスを描画処理するために用いられるものである。ポリゴン処理装置11は,例えば,ゲーム機,パーソナルコンピュータ,ナビゲーション装置又は携帯用通信端末に実装される。各装置は,ハードウェアにより実装されてもよい。また,各装置は,ハードウェアとソフトウェアにより実装されてもよい。
【0023】
ポリゴン情報記憶装置13は,ポリゴンに関する情報を記憶するための装置である。本明細書においてポリゴンとは,あるオブジェクトを複数の平面で表した際のそれぞれの平面(プリミティブ)を意味する。ポリゴンの形状例は,三角形である。ポリゴンに関する情報の例は,あるポリゴンを構成する頂点座標,各頂点における色情報,各頂点における透明度情報,各頂点における反射率に関する情報,ポリゴンのテクスチャに関する情報,及び画像処理に用いられる各種情報である。
【0024】
走査線発生装置15は,あるポリゴンから,複数の方向へ複数の走査線を発生するための装置である。走査線発生装置15は,ポリゴン情報記憶装置13からあるポリゴンの頂点座標を読み出す。そして,読み出した頂点座標を用いて,ポリゴン上の座標値を求める。走査線発生装置15は,求めたポリゴン上の点から走査線を発生させる。後述するように,この走査線は,遮蔽判断処理を行う際に用いられる。ひとつのポリゴンから発生する走査線の本数は,あらかじめ定められることが望ましい。すなわち,精度の高い描画処理を行う場合は,あるポリゴンから発生する走査線の数を多くすればよい。走査線の数の例は,3本以上102本以下である。精度の高い描画処理を行う場合の走査線の数の例は,10本以上102本以下である。
【0025】
走査線を完全にランダムで発生させる場合,ある方向に走査線が偏ることも起こりうる。この場合,適切な画像処理が行えなくなる恐れがある。このため本発明のポリゴン処理装置11は,複数の走査線に,ポリゴンの法線方向の走査線又は法線方向と逆方向の走査線を含めるように処理することが好ましい。この場合,例えば,法線方向の走査線と,ランダムな方向の複数の走査線とを発生させることとなる。また,本発明のポリゴン処理装置11は,複数の走査線に,ポリゴンのZ方向の走査線を含めるように処理することが好ましい。さらに本発明のポリゴン処理装置11は,複数の走査線に,ユーザの視点方向の走査線を含めるように処理することが好ましい。
【0026】
複数の走査線は,ポリゴン内のある1点から発生してもよい。また,複数の走査線は,ポリゴン内の所定の箇所から発生するものであってもよい。ポリゴン内の所定の箇所の例は,頂点,及び2つの頂点の中点である。また,複数の走査線は,ポリゴン内のランダムな位置から発生してもよい。
【0027】
遮蔽判断装置17は,走査線が他のポリゴンにより遮られるか否かを判断するための装置である。換言すると,他のポリゴンが透明でない場合,遮蔽判断装置17は,走査線が他のポリゴンと交差するか否かを判断する装置である。
【0028】
遮蔽判断装置17は,ポリゴン情報記憶装置13に記憶されるポリゴンの頂点座標を読み出す。そして遮蔽判断装置17は,読み出したポリゴンの頂点座標を用いて,走査線とポリゴンとが交差するか否か判断する。
【0029】
描画処理装置19は,遮蔽判断装置17が,あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,あるポリゴンに関する所定の描画処理を行わないように制御するための装置である。これによりあるポリゴンが描画対象から除外される。所定の描画処理の例は,テクスチャ読出し処理,及び掃引処理があげられる。掃引処理の例は,各頂点間の色味を徐々に変化させるための色掃引処理があげられる。
【0030】
描画処理装置19は,遮蔽判断装置17から全ての走査線が他のポリゴンにより遮られたという情報を受け取る。すると,描画処理装置19は,この走査線を発したポリゴンは表示する必要がないポリゴンであると判断する。そうすると,描画処理装置19は,描画処理を行う際に,ポリゴン情報記憶装置13からこのポリゴンに関する情報を読み出さない。一方,描画処理装置19が,遮蔽判断装置17から全ての走査線が他のポリゴンにより遮られてはいないという情報を受け取った場合は,ポリゴン情報記憶装置13からこのポリゴンに関する情報を読み出し,通常の画像処理を行う。
【0031】
ポリゴン透明度判断装置21は,走査線が交差したポリゴンが透明又は半透明であるか否か判断するための装置である。遮蔽判断装置17は,走査線が交差したポリゴンが透明又は半透明である場合に,走査線がポリゴンにより遮られないと判断すればよい。
【0032】
次に,本発明のポリゴン処理装置11の好ましい態様を説明する。遮蔽判断装置17がある走査線が他のポリゴンと交差すると判断した場合,遮蔽判断装置17は,そのポリゴンに関する情報を,ポリゴン透明度判断装置21へ伝える。すると,ポリゴン透明度判断装置21は,ポリゴン情報記憶装置13からそのポリゴンを構成する頂点の透明度に関する情報を読み出す。そして,そのポリゴンが透明であるか否か,又は半透明であるか否か判断する。そのポリゴンが透明であるか,又はそのポリゴンの透明度が所定の透明度以上である場合,ポリゴン透明度判断装置21は,そのポリゴンが透明又は半透明であると判断する。ポリゴン透明度判断装置21は,判断結果を遮蔽判断装置17へ伝える。そして,遮蔽判断装置17は,ある走査線が交差したポリゴンが透明又は半透明である場合,走査線が遮られないと判断する。
【0033】
本発明のポリゴン処理装置11は,上記のような構成を採用するため,あるポリゴンが描画処理する必要がないポリゴンであるか否かを適切に把握することができる。
【0034】
次に,上記のポリゴン処理装置11の動作例を,図面を用いて説明する。図2は,あるポリゴンにおける走査線がランダムに発生する場合の例を説明するための図である。図3は,あるポリゴン上の格子点を示す。図4は,あるポリゴンにおける走査線がある規則をもって発生する場合の例を説明するための図である。なお,図2において符号37,39,及び41は,第1のポリゴン30に隣接するポリゴンの頂点である。
【0035】
走査線発生装置15は,ポリゴン情報記憶装置13からあるポリゴン30の頂点31,33,35の座標を読み出す。なお,頂点31の座標をV(X31,Y31,Z31)のように表記する。走査線発生装置15は,これらの頂点座標により,第1のポリゴン30の位置を把握することができる。走査線を発生する方法の例を以下に説明する。第1のポリゴン30の空間位置を把握するためには,まず三角形の辺上の点の座標を求める。例えば,V(X31,Y31,Z31)とV(X33,Y33,Z33)とを用いて,これらの値を掃引することで,辺31,33上の点を求めることができる。その後,隣接する辺上の2点間を掃引することで,三角形面内の座標を求めることができる。このようにしてポリゴン上の各点の座標を求めることができる。
【0036】
図2に示される,走査線がランダムの方向に発生する場合の方向の決め方の例を説明する。ある点を基準点とする3次元空間内の直線の進行方向は,例えば,XY平面内のX軸とその直線のXY平面上への射影とのなす角θ,その直線とXY平面上への射影とのなす角φとにより表すことができる。図1に示す例では,ある走査線を発生させる場合,走査線発生装置15は,ランダム数発生装置23からランダムな数を受け取る。走査線発生装置15は,θを求めるため,ランダム数発生装置23に,1から360のいずれかの数をランダムに発生させる。また,走査線発生装置15は,φを求めるため,ランダム数発生装置23に,1から360のいずれかの数をランダムに発生させる。この作業を走査線の数だけ実行する。このようにして,複数の走査線の方向を求めることができる。
【0037】
次に,走査線がポリゴン上のランダムな位置から発生する場合,走査線が発生する位置は,例えば以下のように求めればよい。まず,ポリゴンをメッシュ状に分割する。図3は,あるポリゴン上の格子点の様子を示す。例えば,ポリゴン上の1辺をd個に分割した場合,ポリゴン上の格子点の数は,(d2+3d+2)/2個となる。ポリゴンを構成する3つの頂点のうち,最もx座標の小さいものを第1の頂点31とし,次にx座標の小さいものを第2の頂点33とする。なお,x座標が同じ2つの頂点については,y座標が小さいものを前の頂点とすればよい。そして,第1の頂点31を番号1で特定される格子点とし,以下格子点に(d2+3d+2)/2までの番号を割り振る。例えば,第2の頂点33の番号は,(d2+1d+2)/2番であり,第3の頂点35の番号は,(d2+3d+2)/2番である。
【0038】
走査線発生装置15は,走査線が発生する格子点を決定するため,ランダム数発生装置23に,1から(d2+3d+2)/2までの数をランダムに発生させる。そして,走査線発生装置15は,ランダム数発生装置23が発生した数を受け取る。走査線発生装置15は,受け取った数で特定される番号の格子点を,走査線が発生する格子点とする。このようにすれば,ポリゴン上のランダムな位置から走査線を発生させることができる。
【0039】
第1の走査線43を発生するためには,以下のように処理を行えばよい。走査線発生装置15は,ポリゴン情報記憶装置13からポリゴン分割数dに関する情報を受け取る。すると,走査線発生装置15は,ランダム数発生装置23へ(d2+3d+2)/2までの数をランダムに発生させるよう要求する。そして,走査線発生装置15は,得られた数を番地として用いて,第1の走査線43が発生するポリゴン上の点を求める。次に,走査線発生装置15は,1〜360までの数を2つランダムに発生するように求める。走査線発生装置15は,得られた2つの数をそれぞれθ及びφとして求めて,第1の走査線43の方向を決める。このようにして,走査線発生装置15は,第1の走査線43を求めることができる。走査線発生装置15は,第1の走査線43を求めたのと同様の方法で,第2の走査線45,第3の走査線47,及び第4の走査線49を求めることができる。走査線発生装置15は,それ以降の走査線も同様に発生させることができる。
【0040】
走査線は,例えば第1の頂点31のみから発生するものであってもよい。この場合,所定の数(n本)の走査線についてのθ及びφを求めることで,必要な走査線を求めることもできる。また,図4に示すように,第1の頂点31,第2の頂点33,及び第3の頂点35からは走査線が発生するようにしてもよい。この場合,これら頂点以外の点から発生する走査線の位置を求めればよい。また,例えば,第1の走査線43の方向を,ポリゴン30の法線方向にしてもよい。この場合は,第2の走査線45以降の走査線の方向をあらかじめ定めた方向としてもよいし,ランダムな方向としてもよい。
【0041】
次に,遮蔽判断装置17が,走査線が他のポリゴンにより遮られるか否かを判断する動作例について説明する。例えば,第1の走査線43が他のポリゴンにより遮られる場合,遮蔽判断装置17は,第2の走査線45が他のポリゴンにより遮られるか否かを判断する。遮蔽判断装置17は,第2の走査線45以降の走査線についても同様に処理を行う。一方,遮蔽判断装置17が,走査線が他のポリゴンにより遮られないと判断した場合,第2の走査線45についての処理を行わない。この場合,遮蔽判断装置17が,走査線は他のポリゴンにより遮られないと判断する。
【0042】
第1の走査線43が,第2のオブジェクト51上のポリゴン59と交差するかどうかは例えば以下のようにして判断すればよい。遮蔽判断装置17は,ポリゴン情報記憶装置13から,ポリゴン59の第1の頂点53の座標V(X53,Y53,Z53),第2の頂点55の座標V(X55,Y55,Z55)及び第3の頂点57の座標V(X57,Y57,Z57)を読み出す。遮蔽判断装置17は,第1の走査線43のZ53におけるx座標値を求める。この求めたx座標値がX53より小さいか,X57より大きい場合,遮蔽判断装置17は,第1の走査線43がポリゴン59と交差しないと判断する。求めたx座標値が,X53より大きく,X57より小さい場合,遮蔽判断装置17は,Y53,Y55及びY57から最大値(Ymax)及び最小値(Ymin)を求める。遮蔽判断装置17は,第1の走査線43のZ53におけるy座標値を求める。この求めたy座標値がYminより小さいか,Ymaxより大きい場合,遮蔽判断装置17は,第1の走査線43がポリゴン59と交差しないと判断する。このような近似法を用いて走査線とポリゴンの接触の有無を判断することで,情報処理量を大幅に減少させることができる。なお,上記の判断方法を1次スクリーニング法としてもよい。その場合,上記の方法により第1の走査線43がポリゴン59と交差すると判断された場合について,さらに第1の走査線43がポリゴン59とが交差するか判断してもよい。
【0043】
遮蔽判断装置17が第1の走査線43はポリゴン59と交差しないと判断した場合,遮蔽判断装置17は,次のポリゴンが第1の走査線43と交差するか否かを判断する。遮蔽判断装置17は,この動作を繰り返す。
【0044】
遮蔽判断装置17が,第1の走査線43はポリゴンにより遮蔽されると判断した場合,遮蔽判断装置17は,第2の走査線45がポリゴンにより遮蔽されるか否かを判断する。図5は,走査線が遮蔽される様子を示す概念図である。図6は,少なくとも1本の走査線が遮蔽されない様子を示す概念図である。図7は,走査線が交差したポリゴンが透明又は半透明である場合の様子を示す概念図である。図5の場合,第1の走査線43は,第2のポリゴン59により遮蔽される。また,第2の走査線45は,第2のオブジェクト61における第3のポリゴン69(頂点63,65,67により規定される)により遮蔽されている。このように全ての走査線について順にポリゴンとの接触の有無を判断すればよい。
【0045】
遮蔽判断装置17が,あるポリゴンについての全ての走査線が他のポリゴンにより遮蔽されると判断した場合,そのポリゴンは描画する必要のないポリゴンである。この場合,遮蔽判断装置17は,描画不要情報(あるポリゴンについての全ての走査線が他のポリゴンにより遮蔽されると判断したことについての情報)を描画処理装置19へ伝える。
【0046】
描画処理装置19は,3次元コンピュータグラフィックスに関する画像処理を行うための装置である。描画処理装置19は,遮蔽判断装置17から描画不要情報を受け取った場合,あるポリゴンに関する所定の描画処理を行わないように制御する。例えば,描画処理装置19は,あるポリゴンの描画処理を行わず,他のポリゴンの描画処理を行う。
【0047】
一方,図6に示す例では,第2の走査線45が,いずれのポリゴンにも遮蔽されていない。すなわち図5の場合と比較すると第2の走査線45を遮蔽した第3のポリゴン65が存在しない。この場合,あるポリゴン30は,描画される可能性のあるポリゴンである。この場合,第3の走査線47以降の走査線について,他のポリゴンに遮蔽されるか否かを判断する必要がない。このため,遮蔽判断装置17は,走査線がポリゴンに遮蔽されるか否かの判断をこれ以上行わない。
【0048】
ポリゴン処理装置11の好ましい態様は,透明又は半透明ポリゴンを考慮したコンピュータグラフィックスを可能にするものである。図7を参照してこの態様の動作例について説明する。遮蔽判断装置17が,ある走査線43があるポリゴン59と交差すると判断した場合,遮蔽判断装置17は,そのポリゴン59に関する情報をポリゴン透明度判断装置21へ伝える。すると,ポリゴン透明度判断装置21は,ポリゴン情報記憶装置13からそのポリゴン59を構成する頂点53,55,57における透明度に関する情報を読み出す。そして,そのポリゴンが透明であるか否か,又は半透明であるか否か判断する。ポリゴン透明度判断装置21は,全ての頂点53,55,57における透明度が100%である場合,ポリゴン59が透明であると判断する。そのポリゴンの透明度が所定の透明度以上である場合,ポリゴン透明度判断装置21は,そのポリゴンが半透明であると判断する。なお,ポリゴン透明度判断装置21が半透明であると判断する際の「所定の透明度」は,ポリゴン情報記憶装置13に格納されていればよい。もっとも,所定の透明度は,適宜変更できるようにされていてもよい。ポリゴン透明度判断装置21は,半透明であるか否かを判断する際に,ポリゴン情報記憶装置13に格納されている所定の透明度を読み出す。そして,ポリゴン透明度判断装置21は,ある走査線とポリゴンとの交点における透明度と,読み出した所定の透明度とを比較する。ポリゴンとの交点における透明度は,ポリゴン透明度判断装置21が頂点53,55,57における透明度を掃引することで求めることができる。もっとも,交点における透明度は,頂点53,55,57における透明度の算術平均として求めてもよい。この場合,ポリゴン透明度判断装置21は,頂点53,55,57における透明度をポリゴン情報記憶装置13から読出し,読み出した値を加算して,3で割る演算処理を行う。このようにして,ポリゴン透明度判断装置21は,そのポリゴンが半透明であるか否かを判断する。ポリゴン透明度判断装置21は,判断結果を遮蔽判断装置17へ伝える。そして,遮蔽判断装置17は,ある走査線が交差したポリゴンが透明又は半透明である場合,走査線が遮られないと判断する。
【0049】
例えば,ある走査線43が最初に接したポリゴン59が透明又は半透明である場合,遮蔽判断装置17は,さらに走査線43が,他のポリゴンにより走査線43が遮られるかどうか判断する。そして,遮蔽判断装置17は,走査線43が次のオブジェクト71と接した場合,頂点73,75,77で規定される第4のポリゴン79が透明であるか否か,又はこのポリゴン79が半透明であるか否か判断する。第4のポリゴン79が透明でもなく半透明でもない場合,第1の走査線は遮蔽される。このため,ポリゴン処理装置11は,第1の走査線に関する処理をやめ,第2の走査線が他のポリゴンにより遮蔽されるか否かの演算を始める。
【0050】
図8は,本発明のある実施態様に係るポリゴン処理装置のブロック図である。このポリゴン処理装置11は,入力装置91,CPU92,演算装置93,記憶装置94及び画像処理ブロック95を有する。そして,各要素はバス96により情報の授受ができるように接続されている。また,このポリゴン処理装置11は,バス96を介してインターフェース(I/F)97と接続されている。このため,たとえばこのポリゴン処理装置11は,I/F97を介して,プログラムを格納した情報記録媒体98と接続することができる。このプログラムは,コンピュータや画像処理装置を,所定の手段として機能させるためのものである。また,このプログラムは,コンピュータや画像処理装置に所定のステップを実行させるためのものである。なお,I/F97を介して接続されるメモリが,記憶装置94の全部又は一部として機能してもよい。
【0051】
画像処理ブロック95は,グラフィック処理ユニット(GPU)99及びビデオRAM(VRAM)100を有する。そして,GPU99及びVRAM100は,情報の授受を行うことができるように接続されている。図中符号101は表示画面(モニタ)を示し,符号102はスピーカを示す。
【0052】
この実施態様では,例えば,CPU92,演算装置93,記憶装置94の作業空間,及び情報記録媒体98に格納されたゲーム用プログラムが,走査線発生装置15,遮蔽判断装置17,描画処理装置19,ポリゴン透明度判断装置21,及びランダム値発生装置23として機能する。そして,記憶装置95及び情報記録媒体98の記憶領域が,ポリゴン情報記憶装置13及び作業領域として機能する。入力装置91から操作情報が入力された場合,操作情報はバス96を介してCPU92へ伝えられる。すると,CPU92は,情報記録媒体98に格納されるプログラムを読出し,所定の処理を行う。CPU92は,プログラムからの指令に従って,記憶装置94や情報記録媒体98に記憶される各種情報を読出し,演算装置93において所定の演算を行う。CPU92は,演算結果を適宜記憶装置94に記憶し,演算結果を用いてモニタ101やスピーカ102から適切な情報を出力する。
【0053】
次に,このポリゴン処理装置11の基本動作例について説明する。図9は,本発明のコンピュータグラフィックスの描画方法の基本工程を説明するためのフローチャートである。図中符号Sはステップを意味する。図9に示されるように,本発明の3DCGの描画方法は,走査線発生工程(ステップ101),遮蔽判断工程(ステップ102),ポリゴン描画処理工程(ステップ103),及び画像表示工程(ステップ104)を含む。すなわち,図8に示される例では,情報記録媒体98に格納されたプログラムが,コンピュータに上記の各工程を実行させる。
【0054】
走査線発生工程(ステップ101)は,あるポリゴンから複数の方向へ複数の走査線を発生するためのステップである。遮蔽判断工程(ステップ102)は,走査線が他のポリゴンにより遮られるか否かを判断するためのステップである。ポリゴン描画処理工程(ステップ103)は,あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,あるポリゴンに関する所定の描画処理を行わないように制御するためのステップである。画像表示工程(ステップ104)は,ポリゴン描画処理工程(ステップ103)での描画処理に基づいてモニタ101に表示するための画像データを求め,モニタ101に画像を表示するための工程である。
【0055】
以下では,図10を用いて,各工程における動作例について詳細に説明する。図10は,本発明のコンピュータグラフィックスの描画方法を説明するためのフローチャートである。ポリゴン処理装置11は,描画対象に含まれるポリゴンから,あるポリゴン30を選択する(ステップ201)。複数存在するポリゴンからあるポリゴン30を読み出す順番は任意である。例えば,記憶装置94は,ポリゴンが形成された際にポリゴンに順番を振って記憶してもよい。そして,CPU92は,記憶装置94から,振られた順番にポリゴンを読み出す。
【0056】
ポリゴン処理装置11は,ステップ201で選択されたポリゴン30の頂点の座標を読み出す(ステップ202)。CPU92は,記憶装置94からあるポリゴンの頂点31,33,35の座標を読み出す。CPU92は,読み出した情報を用いて,演算装置93に三角形面内の座標を求めるよう指令を出す。ポリゴン処理装置11は,このようにしてポリゴン上の各点の座標を求めることができる。
【0057】
次に,ポリゴン処理装置11は,あるポリゴン30から走査線を発生させる(ステップ203)。CPU92は,例えば,最初に走査線を発生させるポリゴン上の位置を求める。CPU92は,演算装置93に対し,ポリゴンの頂点31,33,35の座標を用いて,図3に示されるようにポリゴンを分割し,複数の格子点を求めるよう指令を出す。演算装置93は,記憶装置94から分割数dに関する情報を読出し,ポリゴンの頂点31,33,35の座標を用いて,複数の格子点を求める演算を行う。
【0058】
次にCPU92は,演算装置93に対し,(d2+3d+2)/2までの数をランダムに発生させるよう指令を出す。そして,CPU92は,受け取ったランダムな数を記憶装置94に一時的に記憶させる。このランダムな数が,走査線の発生番地を特定する数である。
【0059】
次に,ポリゴン処理装置11は,走査線の方向を求める演算を行う。CPU92は,演算装置93に,1〜360までの数を2つランダムに発生するよう指令を出す。CPU92は,得られた2つの数を記憶装置94に記憶する。ポリゴン処理装置11は,この2つの数を,走査線の方向を定めるθ及びφとして用いる。CPU92は,演算装置93に対し,(d2+3d+2)/2までのランダムな数を用いて走査線の発生位置とし,1〜360までの数を2つランダムな数を用いて,走査線を発生させるよう指令を出す。このようにして,ポリゴン処理装置11は,あるポリゴンから走査線を発生させることができる。
【0060】
次に,ポリゴン処理装置11は,他のポリゴンに関する情報を読み出す(ステップ204)。例えば,CPU92は,記憶装置94から他のポリゴン59の第1の頂点53の座標,第2の頂点55の座標及び第3の頂点57の座標を読み出す。
【0061】
ポリゴン処理装置11は,第1の走査線43が他のポリゴン59と交差するか否かを判断する(ステップ205)。CPU92は,演算装置93に対し,読み出した3つの頂点53,55,57の座標を用いて,このポリゴン59と第1の走査線43と交差するか否か判断するよう指令を出す。そして,CPU92は,演算装置93から演算結果を受け取る。ある走査線がいずれのポリゴンとも交差しない場合,走査線が発生したポリゴンは描画対象となるポリゴンである。CPU92は,第1の走査線43と他のポリゴン59とが交差するか否か判断したという情報を,記憶装置94に記憶する。
【0062】
ポリゴン処理装置11は,走査線と交差するポリゴンが透明又は半透明であるか否かを判断する(ステップ206)。第1の走査線43が他のポリゴン59と交差するとCPU92が判断した場合,CPU92は,演算装置93に,このポリゴン59が透明又は半透明であるか否かを判断するよう指令を出す。なお,ポリゴン処理装置11は,描画対象に透明又は半透明のオブジェクトが存在しない場合,このステップを行わないように描画処理を進めてもよい。
【0063】
CPU92は,記憶装置94から,そのポリゴン59を構成する頂点53,55,57における透明度に関する情報を読み出す。そして,CPU92は,演算装置93に対し,そのポリゴンが透明であるか否か,又は半透明であるか否か判断するよう指令を出す。演算装置93は,全ての頂点53,55,57における透明度が100%である場合,ポリゴン59が透明であると判断する。演算装置93は,ポリゴン59が半透明であるか否かを判断する際に,記憶装置94に格納されている所定の透明度(閾値)を読み出す。そして,演算装置93は,走査線43とポリゴン59との交点における透明度と,読み出した所定の透明度とを比較する。このようにして,演算装置93は,そのポリゴン59が半透明であるか否かを判断する。そして,CPU92は,演算装置93から演算結果を受け取る。走査線が交差したポリゴンが透明でなく,半透明でもない場合は,走査線が発生したポリゴン30は,描画対象ではないポリゴンである可能性がある。
【0064】
ポリゴン処理装置11は,全てのポリゴンについて,発生した走査線が他のポリゴンにより遮蔽されるか否かを判断したか否かを判断する(ステップ207)。具体的には,CPU92は,ステップ201〜ステップ206の処理を終えたポリゴンの番号を記憶装置94に記憶させる。そして,CPU92は,演算装置93に対し,記憶装置94が記憶した処理済のポリゴンの番号を用いて,全てのポリゴンについて描画の要否を判断したか否か判断させる。そして,CPU92は,演算装置93から演算結果を受け取る。
【0065】
ポリゴン処理装置11は,全てのポリゴンについて,走査線が遮蔽されるか否かを判断したと判断した場合,ポリゴン処理を終える(ステップ208)。CPU92は,演算結果を演算装置93から受け取り,全てのポリゴンについて描画する必要があるか否か判断したと判断した場合,ポリゴン処理を終える。これにより描画処理に必要なポリゴンの数が減少する。このため,このポリゴン処理装置11を含む画像表示装置は,コンピュータグラフィックスを高速かつ適切に表示できることとなる。
【0066】
ステップ205において第1の走査線43が他のポリゴン59と交差しないと判断した場合,ステップ209に進む。この工程は,ポリゴン処理装置11が,ある走査線について全てのポリゴンとの交差の有無を判断したか否か判断する工程である(ステップ209)。CPU92は,記憶装置94に記憶される交差判断情報を読出し,演算装置93に,ある走査線について全てのポリゴンとの交差の有無を判断したか否か判断するよう指令を出す。CPU92は,演算装置93から演算結果を受け取る。CPU92が,ある走査線について全てのポリゴンとの交差の有無を判断していないと判断した場合は,ステップ204へ戻り,新たなポリゴンを読み出す(ステップ204)。そして,ある走査線と新たに読み出されたポリゴンとの交差の有無を判断する(ステップ205)。
【0067】
一方,CPU92が,ある走査線について全てのポリゴンとの交差の有無を判断したと判断した場合は,ステップ210へと進む。この工程では,ポリゴン処理装置11が,全ての走査線について全てのポリゴンとの交差の有無を判断したか否か判断する(ステップ210)。CPU92は,記憶装置94からポリゴンとの交差の有無を判断した走査線に関する情報を読み出して,演算装置93に,全ての走査線について全てのポリゴンとの交差の有無を判断したか否か判断するよう指令を出す。CPU92は,演算装置93から演算結果を受け取る。そして,CPU92が全ての走査線について全てのポリゴンとの交差の有無を判断したと判断した場合,走査線を発生させたポリゴン30は,描画対象である。この場合,CPU92は,ポリゴン30を描画対象とするような処理を行い,ステップ207へと進む。一方,CPU92が全ての走査線について全てのポリゴンとの交差の有無を判断していないと判断した場合,ステップ203へと戻る。そして,新たに走査線を発生させ(ステップ203),発生させた走査線が他のポリゴンに遮蔽されるか否かの判断を行う(ステップ204〜ステップ206)。
【0068】
ステップ207において,全てのポリゴンについて,発生した走査線が他のポリゴンにより遮蔽されていないと判断した場合,ポリゴン処理装置11はステップ201に戻り,次のポリゴンについて他のポリゴンに覆われるか否か判断する(ステップ201〜ステップ206)。
【0069】
このように処理を行うことで,本発明のポリゴン処理装置11は,外観上のクオリティを下げずに,ポリゴンの数を減らすことができる。たとえば,キャラクタの服装を変更できるゲームがある。このようなゲームのゲーム画像を作成する際に,キャラクタの服装が変わることに伴い描画する必要がないポリゴンが変わる。本発明のポリゴン処理装置11を用いれば,服装が変わったことに伴い隠れるポリゴンを容易に把握できる。これにより本発明のポリゴン処理装置11を用いれば,ランタイムの負荷を軽減できることとなる。また,アニメーションを実現する3DCGにおいては,本発明のポリゴン処理方法を全てのフレームについて行うことで,アニメーションにおける外観のクオリティを損なわずに,画像処理量を減少させることができる。このように,本発明のポリゴン処理装置11は,リアルタイムに3DCGを描画するために特に有効である。
【実施例1】
【0070】
本実施例は,複数の映像構成データを統合することで一つの映像作品を完成させる映像作成システムに,上記したポリゴン処理装置を用いたものに関する。
三次元CG(Computer Graphics)等によるビデオゲームやアニメーションは,キャラクタデザイン,モーションデザイン,エフェクト制作,レイアウト設計,サウンドデザイン,シーン編集などの工程で,膨大な人数のデザイナーが共同作業を行うことによって制作されている。ビデオゲームやアニメーションの制作は,作業の規模が非常に大きいために全体を把握することが難しく,その結果,作業の非効率化,開発作業相互間のバランス調整の困難化などの問題が生じ易い。特に,映像作品の制作においては,最終結果としての見え方を確認しつつ個別の作業を進めなければならないという特有の課題を抱えており,これらを解決できる新たなシステムが必要とされていた。
【0071】
本実施例は,映像作品の大規模開発を行う場合に,開発作業を効率的に行うことができ,さらに開発作業相互間のバランス調整を容易に行うことができる新たなシステムを提供するものである。
【0072】
すなわち,この映像作成システムは,複数の映像構成データを統合することで一つの映像作品を完成させる映像作成システムであって,前記複数の映像構成データを作成および/又は編集する複数の個別編集ツールと,作成および/又は編集された前記複数の映像構成データを取得し,これらを統合することで一つの映像データを作成するサーバと,前記サーバから取得した前記映像データを所定のマシンプラットフォーム上で表示するターゲット表示手段と,を備え,前記複数の個別編集ツールは,各個別編集ツール上で継続して稼働するデータ送信手段を備えており,当該データ送信手段は,前記映像構成データが作成および/又は編集される都度,前記サーバに対して作成および/又は編集された新たな映像構成データを送信し,前記サーバは,前記新たな映像構成データを取得する度に,当該新たな映像構成データを含む複数の映像構成データを統合することで,継続して最新の映像データを作成することを特徴とする映像作成システムに関する。そして,本発明のポリゴン処理装置は,個別編集ツールの一つとして機能する。
【0073】
図11は,本実施例に係る映像作成システムの全体構成を例示するブロック図である。本実施例に係る映像作成システムは,1つの映像データ(アニメーションなど)の構成要素となる複数の映像構成データ(たとえば,モデルデー夕,エフェクトデー夕,シーン編集情報,位置編集情報,サウンドデータなど)をそれぞれ編集するための個別編集ツール122,123,124,125を複数有している。個別編集ツールの具体例として,本実施例では,作成されたオブジェクト(映像に登場するアイテムなど)の座標位置を定義編集する位置編集手段122と,演出効果画像を作成するエフェクト編集手段123と,効果音を作成するサウンド編集手段124と,オブジェクト,モーション,編集画像,座標位置,演出効果画像,効果音を統合して映像シーンを表示出力するシーン編集手段125と,が示されている。
【0074】
上記したポリゴン処理装置は,個別編集ツールの一つとして利用されうるものである。特に,ポリゴン処理装置はシーン編集手段125のある要素として機能する。また,上記したポリゴン処理装置は,後述するオブジェクト作成手段111の一要素として機能しオブジェクトの作成や編集を行う際に用いられてもよい。
【0075】
また,モデルデータを編集する個別編集ツールとして,本実施例では,オブジェクトの作成および/又は編集を行うオブジェクト作成手段111と,オブジェクトのモーションを作成および/又は編集するモーション作成手段112と,作成されたオブジェクトおよびモーションの画像を編集する画像編集手段113と,作成されたオブジェクトおよびモーションを表示出力する表示出力手段121と,が例示されている。これら個別編集ツール111,112,113,121,122,123,124,125が編集する映像構成データは,後述するサーバ140によって実施されるデータの統合という処理を経ることで,映像データとして構築されるものである。なお,データの統合とは,互いに異質な映像構成データを有機的に連携させる処理のことである。
【0076】
各個別編集ツール111〜125の具体的構成は,コンビュータ(1台でもよいし,図11のブロック図で示される手段ごとにコンピュータを配置し,これら複数台のコンピュータを組み合わせることによって構成してもよい。)と,そのコンビュータ上で動作するアプリケーション等である。
【0077】
また,各個別編集ツール111〜125で映像構成データが作成又は編集された際には,編集途中の映像構成データは,常時ハードディスク等の記憶装置に一時保存(上書き保存)されることとなる。つまり,各個別編集ツール111〜125での映像構成データの編集は,編集途中の映像構成データがハードディスク等に常に一時保存(上書き保存)されながら行われることになるので,各個別編集ツール111〜125が有するハードディスク等の記憶装置には,常時最新版の映像構成データが存在することとなる。
【0078】
さらに,本実施例に係る映像作成システムの特徴として,各個別編集ツール111〜125には,常時稼働するデータ送信手段127が設けられている。このデータ送信手段127は,監視・データ送信用プログラムからなる手段であって,各個別編集ツール111〜125が有するハードディスク等の記憶装置に対する映像構成データの一時保存動作を常に監視しており,一時保存が行われると,一時保存された映像構成データを後述するサーバ140に向けて送信するように構成されている。
【0079】
本実施例に係る映像作成システムは,サーバ140を有している。サーバ140は,具体的構成としてはコンピュータであり,前述した複数の個別編集ツール111〜125および後述する再生装置としてのターゲット表示手段130と,当該サーバ140との間をネットワーク接続する設備(たとえば,LAN接続設備など)を備えている。
【0080】
また,本実施例の特徴として,サーバ140は,映像構成データ管理手段141を有している。この映像構成データ管理手段141を具体的に説明すると,映像構成データ管理手段141は,各個別編集ツール111〜125から送信されてくる映像構成データをハードディスク等の記憶装置に一時保存(上書き保存)しておく映像構成データ保存手段142と,映像構成データ保存手段142に保存されている映像構成データを読み出してこれらを統合処理するデータ統合手段143(統合処理アプリケーション等からなる)と,統合されたデータをハードディスク等に一時保存(上書き保存)する統合データ保存手段144とを有している。
【0081】
かかる構成を有する映像構成データ管理手段141は,各個別編集ツール111〜125から映像構成データが送信されてくると,映像構成データ保存手段142がこれを一時保存する。ここで映像構成データには,モデルデー夕,エフェクトデー夕,シーン編集情報,位置編集情報,サウンドデータなどの複数種類が存在しているが,映像構成データ保存手段142によって行われる一時保存は,種類ごとに区別して保存されている。また,映像構成データは,全種類同時一斉に送信されるのではなく,通常は一種類ごとにバラバラに送信されてくるので,一時保存もそのつど一種類ずつ保存することとなる。ただし,稀な現象として,映像構成データが全く同一の時刻に送信されてくる場合も存在するが,そのような場合であっても,映像構成データ保存手段142では,同一時刻に送信されてきた複数の映像構成データを一時保存することが可能なように構成されている。
【0082】
一方,データ統合手段143は,常駐プログラムとして映像構成データの一時保存の有無を監視しており,一種類でも映像構成データの一時保存があれば,これら映像構成データのデータ統合を実行することとなる。すなわち,映像構成データ保存手段142に保存された全ての映像構成データを読み出して統合処理を行い,統合したデータを統合データ保存手段144に一時保存するのである。
【0083】
以上のようにしてサーバ140内に映像データが完成するが,本実施例に係る映像作成システムは,さらに,ターゲット表示手段130を有しており,完成した映像データを再生することができるようになっている。
【0084】
ターゲット表示手段130は,具体的構成として,複数種類の再生装置と表示装置とを有している。各再生装置の具体的例は,ゲーム機としてのコンピュータである。再生装置の種類とは,ゲーム機の種類を意味し,ゲーム機の種類(Playstation3(登録商標),XBOX360(登録商標),Wii(登録商標)など)とはマシンアーキテクチャやオペレーティングシステム等により実現されるアプリケーションプログラムを実行するために提供されるプラットフォームの種類を意味する。
【0085】
なお,本実施例に係るターゲット表示手段130においては,各再生装置に適宜ランタイム等が設けられているため,所定の単一フォーマットで統合されたデータである統合データ(すなわち,映像データ)は,種類の異なる再生装置のいずれにおいても再生可能となっている。
【0086】
ターゲット表示手段130としての各再生装置は,再生指示を受けると再生処理を実行する。ここでの再生指示は,ゲーム機のコントローラ等を介して入力するコマンドでもよいし,各個別編集ツールからネットワーク(サーバ140)を介して当該再生装置に送信されるコマンドなどであってもよい。再生装置がこの再生指示を受けると,サーバ140を介して統合データ保存手段144に一時保存された映像データを読み出し,読み出した映像データを再生することとなる。再生した映像データは,上述した表示装置に表示させることができる。たとえば,表示装置がゲーム機に接続されたモニタ等である場合には,このモニタに映像データが表示されることとなる。
【0087】
なお,ターゲット表示手段130の取り得る別の構成として,表示装置を再生装置とは別個のコンビュータとして構成することも可能である。たとえば,この場合の表示装置は,映像編集等を行っている各開発者の席に設置されたパソコンとして構成することができる。このパソコンは,ネットワーク(サーバ140)を介して再生装置と接続されており,また,該パソコンには,ビューア手段(たとえば,遠隔操作のクライアントアプリケーション等)を備えることが好適である。各開発者が,パソコンのキーボード等より再生指示のコマンドを入力すると,ビューア手段がこれを受けて再生指示のコマンドが送信され,送信されたコマンドを受けた各再生装置は,上述した再生を行うこととなる。
【0088】
一方,再生装置には,前記ビューア手段にディスプレイ情報を提供する画像サービス手段(例えば遠隔操作のサーバアプリケーション等)を備えることができ,当該画像サービス手段は,再生装置におけるディスプレイ情報(具体的には,ビデオバッファメモリに単位時間毎にレンダリングされる画像データ)を前記コマンドの送信元であるパソコンに送信する。パソコンでは,送信されてくるディスプレイ情報をビューア手段が画面表示する。これによって,パソコンでは,再生装置で再生されるディスプレイ映像を当該パソコンのディスプレイで確認することができる。
【0089】
なお,再生装置は複数種類あることから,パソコンのディスプレイでの映像の表示は,再生装置ごとに個別のウインドウ表示とする構成を採用してもよい。あるいは,単一ウインドウとしてタブ等により切替表示するようにしてもよい。また別の方法として,再生指示のコマンドを再生装置の種類を指定して入力するようにしてもよい。再生装置の種類を指定した場合,指定された種類の再生装置においてのみ再生が行われることとなる。
【0090】
また,上記パソコンである表示装置のさらなる別構成として,個別編集ツールのコンピュータが当該パソコンを兼用するように構成してもよい。この場合,画像等の編集をしながら,同じディスプレイの画面内で再生結果を確認できるので好都合である。
【0091】
次に,本実施例に係る映像作成システムの動作手順について,図12を用いて説明を行う。ここで,図12は,本実施例に係る映像作成システムの動作手順を例示するフローチャートである。
【0092】
各個別編集ツール111〜125において映像構成データが作成又は編集されると(ステップS301),各個別編集ツール111〜125を構成するコンビュータにインストールされた監視ソフトウェアによって編集作業の有無が確認され(ステップS302),編集作業が行われたと判断された場合には,各個別編集ツール111〜125が備えるハードディスク等の記憶装置に対して作成又は編集された映像構成データが一時保存(上書き保存)されることとなる(ステップS303)。この一時保存(上書き保存)は,映像構成データの編集途中から実施されており,各個別編集ツール111〜125が有するハードディスク等の記憶装置には,常時最新版の映像構成データが存在するようになっている。
【0093】
また,各個別編集ツール111〜125を構成するコンピュータは,映像構成データが自己の記憶装置に一時保存(上書き保存)される状態をインストールされた監視ソフトウェアによって常時監視しており,映像構成データが一時保存(上書き保存)されたことを確認すると(ステップS304),各個別編集ツール111〜125を構成するコンピュータが有するデータ送信手段127を動作させることで,この一時保存された映像構成データをサーバ140に向けて送信する(ステップS305)。
【0094】
各個別編集ツール111〜125から送られてくる映像構成データを取得したコンピュータであるサーバ140はインストールされたソフトウェアによって映像構成データ保存手段142を動作させ,各個別編集ツール111〜125から送信されてくる映像構成データをサーバ140側の記憶装置に一時保存(上書き保存)する(ステップS306)。
【0095】
さらに,サーバ140は,統合処理アプリケーション等からなるデータ統合手段143を用いることによって映像構成データ保存手段142に保存されている映像構成データを読み出してこれらを統合処理し(ステップS307),その後,これまたインストールされたソフトウェアによって統合データ保存手段144を動作させることで,統合された映像データを記憶装置に一時保存(上書き保存)する処理を実行する(ステップS308)。
【0096】
以上のようにしてサーバ140内に映像データが完成し,サーバ140が有するLAN接続設備などのネットワーク接続設備を利用することでターゲット表示手段130に対して統合された映像データが送信され(ステップS309),これを受信したターゲット表示手段130では,常に最新版の映像データを再生することができるようになっている(ステップS310)。
【0097】
なお,各個別編集ツール111〜125での処理であるステップS301〜ステップS305については,並列時間的に処理を進めることができるようになっているので,本実施例に係る映像作成システムは,大規模なソフトウェア開発の現場において好適に用いることができるように構成されている。
【0098】
以上,本実施例に係る映像作成システムの全体構成および動作手順について説明を行った。特に,本実施例に係る映像作成システムでは,映像構成データ管理手段141によって,大人数で進められる開発作業での統合データ(映像データ)が,個別編集ツール111〜125での個々の進捗に応じでほぼリアルタイムに更新されることとなる。従来行われていた通常の分散開発環境では,個々のPCでのモジュール作成作業を進捗に応じてリアルタイムで統合することができなかったが,映像作成システムが有する上記映像構成データ管理手段141により,開発作業相互間のバランス調整を容易に行うことが可能となっている。
【0099】
また,本実施例に係る映像作成システムは,統合データ(映像データ)を所定のフォーマットで保存しておき,各種の再生装置ではランタイムを用いて当該所定のフォーマットのデータを共用する構成を採用している。通常は,最初に1つのプラットフォームに適合したソフトウェアの開発を行い,それが完成した後に他のプラットフォームへの変換移植を行うこととなるが,この移植作業では,プログラムの動作が適正かどうかが問題となり,細かい素材(デザインなど)を調整することはできなかった。特に,映像作品の場合,プラットフォームが異なると色彩やカメラ角度,解像度などが異なることから,細かい素材に関する問題を手当する必要が生じ,開発工程の後戻りが大きい。しかし,本実施例に係る映像作成システムでは,全てのプラットフォーム共通のものを開発工程の初めから進めるようにしたので,開発工程の後戻りをすることなく映像作品を開発することが可能である。
【0100】
さらに,本実施例に係る映像作成システムでは,複数種類の再生装置を同時に備えることが容易となっている。これは,統合データ(映像データ)を所定のフォーマットで保存しておき,各種の再生装置ではランタイムを用いて当該所定のフォーマットのデータを共用する構成にしたためである。かかる構成によれば,統合データのフォーマットをプラットフォームごとに複数作成する必要がないので,従来技術に比して簡単な構成となるという利点がある。
【0101】
以上,本発明の好適な実施例について説明したが,本発明の技術的範囲は上記実施例に記載の範囲には限定されない。上記実施例には,多様な変更又は改良を加えることが可能である。
【0102】
たとえば,上述した本実施例に係るターゲット表示手段130については,各再生装置とネットワーク(サーバ140)を介して接続されたデータ配信サーバを有するように構成することも可能である。この構成の場合,再生指示は,統合データ保存手段144が統合データ(映像データ)を一時保存する際に,当該統合データ保存手段144が各再生装置に向けて送信するようになる。つまり,統合データ(映像データ)が更新される度に,各再生装置では直ちにこのデータを再生開始することとなる。再生とともに前記画像サーピス手段(たとえば,遠隔操作のサーバアプリケーション等)はこの再生画像をデータ配信サーバに送信し,再生画像を取得したデータ配信サーバでは,再生装置の種類ごとに,これら再生装置から送信されるディスプレイ情報(動画データ)を保存することとなる。また,データ配信サーバには,動画をストリーミング配信する配信手段(配信制御プログラムによる)を備えることができ,各パソコンからの指示によって前記ディスプレイ情報を配信することとなる。以上の構成によると,再生装置での再生処理は統合データの更新ごとに一回で済むので,マシン負荷を低減することができる。また,多数のパソコンから時間差のある指示があっても,データ配信サーバでのストリーミング配信により支障なくディスプレイ情報を配信できるので好都合である。
【0103】
また,本実施例に係る映像作成システムでは,個別編集ツール111〜125での個々の進捗に応じてほぼリアルタイムに映像データが統合更新される構成を採用しているが,更新直前に保存されていた映像データについては,それを保管しておき,所望の際に当該映像データを復活させて利用できるような構成としても良いし,過去の映像データは常時破棄し,常に最新の映像データのみを保管するような構成としてもよい。
【産業上の利用可能性】
【0104】
本発明は,3次元コンピュータグラフィックスを描画するためのコンピュータ関連産業や,3DCGを用いたゲーム機器,及びソフトウェアの産業において利用されうる。
【符号の説明】
【0105】
11 ポリゴン処理装置; 13 ポリゴン情報記憶装置; 15 走査線発生装置; 17 遮蔽判断装置; 19 描画処理装置; 21 ポリゴン透明度判断装置; 23 ランダム値発生装置; 30 第1のポリゴン; 31,33,35 第1のポリゴンの頂点; 37,39,41 第1のポリゴンに隣接するポリゴンの頂点; 43 第1の走査線; 45 第2の走査線; 47 第3の走査線; 49 第4の走査線; 51 第2のオブジェクト; 53,55,57 第2のポリゴンの頂点; 59 第2のポリゴン; 61 第2のオブジェクト; 63,65,67 第3のポリゴンの頂点; 69 第3のポリゴン; 71 第3のオブジェクト; 73,75,77 第4のポリゴンの頂点; 79 第4のポリゴン; 91 入力装置; 92 CPU; 93 演算装置; 94 記憶装置; 95 画像処理ブロック; 96 バス; 97 インターフェース; 98 情報記録媒体; 99 グラフィック処理ユニット; 100 ビデオRAM; 101 表示画面(モニタ); 102 スピーカ;
111 オブジェクト作成手段; 112 モーション作成手段; 113 画像編集手段; 121 表示出力手段; 122 位置編集手段; 123 エフェクト編集手段; 124 サウンド編集手段; 125 シーン編集手段; 127 データ送信手段; 130 ターゲット表示手段; 140 サーバ; 141 映像構成データ管理手段; 142 映像構成データ保存手段; 143 データ統合手段; 144 統合データ保存手段
【技術分野】
【0001】
本発明は,3次元コンピュータグラフィックスに用いられるポリゴン処理装置に関する。より詳しく説明すると,本発明は,外観のクオリティを落とさずにポリゴンの数を減らすことができるポリゴン処理装置,プログラム及び情報記録媒体に関する。
【背景技術】
【0002】
3次元コンピュータグラフィックス(3DCG)において,3次元オブジェクトをリアルタイムに描画するための方法として,隠面消去処理が知られている。陰面消去処理は,他のオブジェクトに隠れて見えない面を消去する方法である。代表的な隠面消去処理方法は,Zバッファ法である。Zバッファ法は,画面のピクセル毎に各ピクセルのZバッファからZ値を読み出す。そして,Zバッファ法は,その後処理するピクセルが,このZ値より後方であれば描画処理をキャンセルする。このようにしてZバッファ法は,隠面消去処理を達成できる。一方,Zバッファ法は,Zバッファからピクセル単位でZ値を読み出すため,処理コストが高いという問題がある。
【0003】
ピクセル単位の描画処理を行う前に不要なポリゴンを処理対象から除外する方法として,早期Zカリング法が知られている。早期Zカリング法は,ピクセル単位でZ値を比較する必要がないため,リアルタイムな画像処理に有効である。しかしながら,早期Zカリング法も,結局はZバッファを参照するため,処理コストが高くなる。
【0004】
特に3DCGを用いて映画を作成した場合,各オブジェクトが多数のポリゴンを含むこととなる。そして,そのような3DCGをゲームに用いる場合,ポリゴン処理コストが多くなるため,リアルタイムな描画を達成することが難しい。このため,ポリゴンの数を減らす処理を行うことが好ましい。
【0005】
特開2000−57368号公報には,ポリゴンの数を減少させるポリゴン処理方法が開示されている。ポリゴンは,通常複数の頂点を含む平面によって構成される。この公報に開示された方法は,ポリゴンの頂点を格子点に一致させることで,隣接する微小ポリゴンを削除するというものである(図8)。リアルタイムな3次元コンピュータグラフィックスを実現するためには,描画のための処理量を減らすことが望ましい。よって,ポリゴンの数を減らす処理を行うことは,リアルタイムなコンピュータグラフィック表示に寄与することとなる。
【0006】
また,3DCGをリアルタイムに処理する技術として,米国特許明細書第5751291号には,オクルージョンカリング法が開示されている。この方法は,オブジェクトを基本的図形で覆う。そして,あるオブジェクトを覆った基本図形が,他の基本図形にオクルードされているか否かが判断される。この方法は,他の基本図形にオクルードされている基本図形に覆われたオブジェクトを描画対象から除外する。このようにオクルージョンカリング法は,描画対象となるオブジェクトを減らすことができるので,画像処理コストを軽減できる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2000−57368号公報
【特許文献2】米国特許明細書第5751291号
【発明の概要】
【発明が解決しようとする課題】
【0008】
特開2000−57368号公報に開示された方法では,頂点を格子点に一致させる際にポリゴンの形状が変化する。また,この方法は,頂点を格子点に一致させる際の頂点処理が複雑となる。
【0009】
また,オクルージョンカリング法は,描画されないオブジェクトを検出する方法である。このため,描画されないポリゴンを見出すものではない。さらに,この方法は,オブジェクトを基本図形に近似した上で処理を行うため,精密なコンピュータグラフィックスを描画するには不向きである。
【0010】
そこで,本発明は,必要なポリゴン(プリミティブ)の形状を変化させずに,描画に用いられないポリゴン情報を削除するポリゴン処理装置を提供することを目的とする。
また,本発明は,比較的簡単な処理で,描画に用いられないポリゴン情報を削除するポリゴン処理装置を提供することを目的とする。
さらに本発明は,コンピュータに上記のようなポリゴン処理装置を実装させるためのプログラムや,そのようなプログラムを記録した情報記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は,あるポリゴンから複数の走査線を発生させ,その全ての走査線がポリゴンにより遮られるか否か判断する。そして,全ての走査線が遮られたポリゴンは,他のポリゴンに囲まれ,描画されないポリゴンであると推測し,描画のための処理を行わない。本発明は,上記のような処理を行うことで,必要なポリゴンの形状を変化させず,簡単な処理により,描画に用いられないポリゴンを描画対象から除外することができるという知見に基づくものである。
【0012】
本発明の第1の側面は,3次元コンピュータグラフィックに用いられるポリゴン処理装置に関する。このポリゴン処理装置は,ポリゴン情報記憶手段と,走査線発生手段と,遮蔽判断手段と,描画処理手段とを含む。ポリゴン情報記憶手段は,ポリゴンに関する情報を記憶するための手段である。走査線発生手段は,ポリゴン情報記憶手段に記憶されたあるポリゴンから,複数の方向へ複数の走査線を発生するための手段である。遮蔽判断手段は,走査線が他のポリゴンにより遮られるか否かを判断するための手段である。描画処理手段は,遮蔽判断手段が,あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,あるポリゴンに関する所定の描画処理を行わないように制御するための手段である。
【0013】
本発明の第1の側面に係るポリゴン処理装置の好ましい態様は,走査線発生手段が,あるポリゴン内のランダムな位置から,ランダムな方向へ複数の走査線を発生するための手段を含むものである。
【0014】
本発明の第1の側面に係るポリゴン処理装置の好ましい態様は,ポリゴン透明度判断手段をさらに有するものである。ポリゴン透明度判断手段は,走査線が交差したポリゴンが透明又は半透明であるか否か判断するための手段である。そして,遮蔽判断手段は,走査線が交差したポリゴンが透明又は半透明である場合に,走査線はこのポリゴンにより遮られないと判断する。この態様のポリゴン処理装置は,上記したいずれの態様をも組み合わせることができる。
【0015】
これにより,透明又は半透明のポリゴンと走査線が接触した場合であっても,走査線が遮蔽されないとして描画処理を進めることができる。
【0016】
本発明の第2の側面は,3次元コンピュータグラフィック用プログラムに関する。このプログラムは,コンピュータに,あるポリゴンから複数の方向へ複数の走査線を発生するためのステップと,走査線が他のポリゴンにより遮られるか否かを判断するためのステップと,あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,あるポリゴンに関する所定の描画処理を行わないように制御するためのステップと,を実行させるようにしたプログラムである。換言すると,このプログラムは,コンピュータを上記した第1の側面に係るポリゴン処理装置として機能させることができるプログラムといえる。
【0017】
本発明の第2の側面の好ましい態様は,コンピュータに走査線が交差したポリゴンが透明又は半透明であるか否か判断するためのステップをさらに実行させるプログラムに関する。そして,このコンピュータは,走査線が交差したポリゴンが透明又は半透明である場合に,走査線はこのポリゴンにより遮られないと判断する。
【0018】
本発明の第3の側面は,上記のプログラムを記憶した,コンピュータ読み取り可能な情報記録媒体に関する。
【発明の効果】
【0019】
本発明は,あるポリゴンから複数の走査線を発生させ,その全ての走査線がポリゴンにより遮られるか否か判断する。本発明のポリゴン処理装置は,これにより,必要なポリゴンの形状を変化させずに,比較的簡単な処理で,描画に用いられないポリゴン情報を削除することができる。さらに本発明によれば,コンピュータに上記のようなポリゴン処理装置を実装させるためのプログラムや,そのようなプログラムを記録した情報記憶媒体を提供することができる。
【図面の簡単な説明】
【0020】
【図1】図1は,本発明のひとつの実施態様であるポリゴン処理装置のブロック図である。
【図2】図2は,あるポリゴンにおける走査線がランダムに発生する場合の例を説明するための図である。
【図3】図3は,あるポリゴン上の格子点を示す。
【図4】図4は,あるポリゴンにおける走査線がある規則をもって発生する場合の例を説明するための図である。
【図5】図5は,走査線が遮蔽される様子を示す概念図である。
【図6】図6は,少なくとも1本の走査線が遮蔽されない様子を示す概念図である。
【図7】図7は,走査線が交差したポリゴンが透明又は半透明である場合の様子を示す概念図である。
【図8】図8は,本発明のある実施態様に係るポリゴン処理装置のブロック図である。
【図9】図9は,本発明のコンピュータグラフィックスの描画方法の基本工程を説明するためのフローチャートである。
【図10】図10は,本発明のコンピュータグラフィックスの描画方法を説明するためのフローチャートである。
【図11】図11は,映像作成システムの全体構成を例示するブロック図である。
【図12】図12は,に係る映像作成システムの動作手順を例示するフローチャートである。
【発明を実施するための形態】
【0021】
以下,発明を実施するための形態について説明する。本発明は,以下に説明する実施態
様に限定されるものではない。本発明は,以下に説明する実施態様から当業者に自明な範
囲で適宜修正される範囲を含む。
【0022】
図1は,本発明のひとつの実施態様であるポリゴン処理装置のブロック図である。図1に示されるように,このポリゴン処理装置11は,ポリゴン情報記憶装置13,走査線発生装置15,遮蔽判断装置17,描画処理装置19,ポリゴン透明度判断装置21,及びランダム値発生装置23を含む。このポリゴン処理装置11は,3次元コンピュータグラフィックスを描画処理するために用いられるものである。ポリゴン処理装置11は,例えば,ゲーム機,パーソナルコンピュータ,ナビゲーション装置又は携帯用通信端末に実装される。各装置は,ハードウェアにより実装されてもよい。また,各装置は,ハードウェアとソフトウェアにより実装されてもよい。
【0023】
ポリゴン情報記憶装置13は,ポリゴンに関する情報を記憶するための装置である。本明細書においてポリゴンとは,あるオブジェクトを複数の平面で表した際のそれぞれの平面(プリミティブ)を意味する。ポリゴンの形状例は,三角形である。ポリゴンに関する情報の例は,あるポリゴンを構成する頂点座標,各頂点における色情報,各頂点における透明度情報,各頂点における反射率に関する情報,ポリゴンのテクスチャに関する情報,及び画像処理に用いられる各種情報である。
【0024】
走査線発生装置15は,あるポリゴンから,複数の方向へ複数の走査線を発生するための装置である。走査線発生装置15は,ポリゴン情報記憶装置13からあるポリゴンの頂点座標を読み出す。そして,読み出した頂点座標を用いて,ポリゴン上の座標値を求める。走査線発生装置15は,求めたポリゴン上の点から走査線を発生させる。後述するように,この走査線は,遮蔽判断処理を行う際に用いられる。ひとつのポリゴンから発生する走査線の本数は,あらかじめ定められることが望ましい。すなわち,精度の高い描画処理を行う場合は,あるポリゴンから発生する走査線の数を多くすればよい。走査線の数の例は,3本以上102本以下である。精度の高い描画処理を行う場合の走査線の数の例は,10本以上102本以下である。
【0025】
走査線を完全にランダムで発生させる場合,ある方向に走査線が偏ることも起こりうる。この場合,適切な画像処理が行えなくなる恐れがある。このため本発明のポリゴン処理装置11は,複数の走査線に,ポリゴンの法線方向の走査線又は法線方向と逆方向の走査線を含めるように処理することが好ましい。この場合,例えば,法線方向の走査線と,ランダムな方向の複数の走査線とを発生させることとなる。また,本発明のポリゴン処理装置11は,複数の走査線に,ポリゴンのZ方向の走査線を含めるように処理することが好ましい。さらに本発明のポリゴン処理装置11は,複数の走査線に,ユーザの視点方向の走査線を含めるように処理することが好ましい。
【0026】
複数の走査線は,ポリゴン内のある1点から発生してもよい。また,複数の走査線は,ポリゴン内の所定の箇所から発生するものであってもよい。ポリゴン内の所定の箇所の例は,頂点,及び2つの頂点の中点である。また,複数の走査線は,ポリゴン内のランダムな位置から発生してもよい。
【0027】
遮蔽判断装置17は,走査線が他のポリゴンにより遮られるか否かを判断するための装置である。換言すると,他のポリゴンが透明でない場合,遮蔽判断装置17は,走査線が他のポリゴンと交差するか否かを判断する装置である。
【0028】
遮蔽判断装置17は,ポリゴン情報記憶装置13に記憶されるポリゴンの頂点座標を読み出す。そして遮蔽判断装置17は,読み出したポリゴンの頂点座標を用いて,走査線とポリゴンとが交差するか否か判断する。
【0029】
描画処理装置19は,遮蔽判断装置17が,あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,あるポリゴンに関する所定の描画処理を行わないように制御するための装置である。これによりあるポリゴンが描画対象から除外される。所定の描画処理の例は,テクスチャ読出し処理,及び掃引処理があげられる。掃引処理の例は,各頂点間の色味を徐々に変化させるための色掃引処理があげられる。
【0030】
描画処理装置19は,遮蔽判断装置17から全ての走査線が他のポリゴンにより遮られたという情報を受け取る。すると,描画処理装置19は,この走査線を発したポリゴンは表示する必要がないポリゴンであると判断する。そうすると,描画処理装置19は,描画処理を行う際に,ポリゴン情報記憶装置13からこのポリゴンに関する情報を読み出さない。一方,描画処理装置19が,遮蔽判断装置17から全ての走査線が他のポリゴンにより遮られてはいないという情報を受け取った場合は,ポリゴン情報記憶装置13からこのポリゴンに関する情報を読み出し,通常の画像処理を行う。
【0031】
ポリゴン透明度判断装置21は,走査線が交差したポリゴンが透明又は半透明であるか否か判断するための装置である。遮蔽判断装置17は,走査線が交差したポリゴンが透明又は半透明である場合に,走査線がポリゴンにより遮られないと判断すればよい。
【0032】
次に,本発明のポリゴン処理装置11の好ましい態様を説明する。遮蔽判断装置17がある走査線が他のポリゴンと交差すると判断した場合,遮蔽判断装置17は,そのポリゴンに関する情報を,ポリゴン透明度判断装置21へ伝える。すると,ポリゴン透明度判断装置21は,ポリゴン情報記憶装置13からそのポリゴンを構成する頂点の透明度に関する情報を読み出す。そして,そのポリゴンが透明であるか否か,又は半透明であるか否か判断する。そのポリゴンが透明であるか,又はそのポリゴンの透明度が所定の透明度以上である場合,ポリゴン透明度判断装置21は,そのポリゴンが透明又は半透明であると判断する。ポリゴン透明度判断装置21は,判断結果を遮蔽判断装置17へ伝える。そして,遮蔽判断装置17は,ある走査線が交差したポリゴンが透明又は半透明である場合,走査線が遮られないと判断する。
【0033】
本発明のポリゴン処理装置11は,上記のような構成を採用するため,あるポリゴンが描画処理する必要がないポリゴンであるか否かを適切に把握することができる。
【0034】
次に,上記のポリゴン処理装置11の動作例を,図面を用いて説明する。図2は,あるポリゴンにおける走査線がランダムに発生する場合の例を説明するための図である。図3は,あるポリゴン上の格子点を示す。図4は,あるポリゴンにおける走査線がある規則をもって発生する場合の例を説明するための図である。なお,図2において符号37,39,及び41は,第1のポリゴン30に隣接するポリゴンの頂点である。
【0035】
走査線発生装置15は,ポリゴン情報記憶装置13からあるポリゴン30の頂点31,33,35の座標を読み出す。なお,頂点31の座標をV(X31,Y31,Z31)のように表記する。走査線発生装置15は,これらの頂点座標により,第1のポリゴン30の位置を把握することができる。走査線を発生する方法の例を以下に説明する。第1のポリゴン30の空間位置を把握するためには,まず三角形の辺上の点の座標を求める。例えば,V(X31,Y31,Z31)とV(X33,Y33,Z33)とを用いて,これらの値を掃引することで,辺31,33上の点を求めることができる。その後,隣接する辺上の2点間を掃引することで,三角形面内の座標を求めることができる。このようにしてポリゴン上の各点の座標を求めることができる。
【0036】
図2に示される,走査線がランダムの方向に発生する場合の方向の決め方の例を説明する。ある点を基準点とする3次元空間内の直線の進行方向は,例えば,XY平面内のX軸とその直線のXY平面上への射影とのなす角θ,その直線とXY平面上への射影とのなす角φとにより表すことができる。図1に示す例では,ある走査線を発生させる場合,走査線発生装置15は,ランダム数発生装置23からランダムな数を受け取る。走査線発生装置15は,θを求めるため,ランダム数発生装置23に,1から360のいずれかの数をランダムに発生させる。また,走査線発生装置15は,φを求めるため,ランダム数発生装置23に,1から360のいずれかの数をランダムに発生させる。この作業を走査線の数だけ実行する。このようにして,複数の走査線の方向を求めることができる。
【0037】
次に,走査線がポリゴン上のランダムな位置から発生する場合,走査線が発生する位置は,例えば以下のように求めればよい。まず,ポリゴンをメッシュ状に分割する。図3は,あるポリゴン上の格子点の様子を示す。例えば,ポリゴン上の1辺をd個に分割した場合,ポリゴン上の格子点の数は,(d2+3d+2)/2個となる。ポリゴンを構成する3つの頂点のうち,最もx座標の小さいものを第1の頂点31とし,次にx座標の小さいものを第2の頂点33とする。なお,x座標が同じ2つの頂点については,y座標が小さいものを前の頂点とすればよい。そして,第1の頂点31を番号1で特定される格子点とし,以下格子点に(d2+3d+2)/2までの番号を割り振る。例えば,第2の頂点33の番号は,(d2+1d+2)/2番であり,第3の頂点35の番号は,(d2+3d+2)/2番である。
【0038】
走査線発生装置15は,走査線が発生する格子点を決定するため,ランダム数発生装置23に,1から(d2+3d+2)/2までの数をランダムに発生させる。そして,走査線発生装置15は,ランダム数発生装置23が発生した数を受け取る。走査線発生装置15は,受け取った数で特定される番号の格子点を,走査線が発生する格子点とする。このようにすれば,ポリゴン上のランダムな位置から走査線を発生させることができる。
【0039】
第1の走査線43を発生するためには,以下のように処理を行えばよい。走査線発生装置15は,ポリゴン情報記憶装置13からポリゴン分割数dに関する情報を受け取る。すると,走査線発生装置15は,ランダム数発生装置23へ(d2+3d+2)/2までの数をランダムに発生させるよう要求する。そして,走査線発生装置15は,得られた数を番地として用いて,第1の走査線43が発生するポリゴン上の点を求める。次に,走査線発生装置15は,1〜360までの数を2つランダムに発生するように求める。走査線発生装置15は,得られた2つの数をそれぞれθ及びφとして求めて,第1の走査線43の方向を決める。このようにして,走査線発生装置15は,第1の走査線43を求めることができる。走査線発生装置15は,第1の走査線43を求めたのと同様の方法で,第2の走査線45,第3の走査線47,及び第4の走査線49を求めることができる。走査線発生装置15は,それ以降の走査線も同様に発生させることができる。
【0040】
走査線は,例えば第1の頂点31のみから発生するものであってもよい。この場合,所定の数(n本)の走査線についてのθ及びφを求めることで,必要な走査線を求めることもできる。また,図4に示すように,第1の頂点31,第2の頂点33,及び第3の頂点35からは走査線が発生するようにしてもよい。この場合,これら頂点以外の点から発生する走査線の位置を求めればよい。また,例えば,第1の走査線43の方向を,ポリゴン30の法線方向にしてもよい。この場合は,第2の走査線45以降の走査線の方向をあらかじめ定めた方向としてもよいし,ランダムな方向としてもよい。
【0041】
次に,遮蔽判断装置17が,走査線が他のポリゴンにより遮られるか否かを判断する動作例について説明する。例えば,第1の走査線43が他のポリゴンにより遮られる場合,遮蔽判断装置17は,第2の走査線45が他のポリゴンにより遮られるか否かを判断する。遮蔽判断装置17は,第2の走査線45以降の走査線についても同様に処理を行う。一方,遮蔽判断装置17が,走査線が他のポリゴンにより遮られないと判断した場合,第2の走査線45についての処理を行わない。この場合,遮蔽判断装置17が,走査線は他のポリゴンにより遮られないと判断する。
【0042】
第1の走査線43が,第2のオブジェクト51上のポリゴン59と交差するかどうかは例えば以下のようにして判断すればよい。遮蔽判断装置17は,ポリゴン情報記憶装置13から,ポリゴン59の第1の頂点53の座標V(X53,Y53,Z53),第2の頂点55の座標V(X55,Y55,Z55)及び第3の頂点57の座標V(X57,Y57,Z57)を読み出す。遮蔽判断装置17は,第1の走査線43のZ53におけるx座標値を求める。この求めたx座標値がX53より小さいか,X57より大きい場合,遮蔽判断装置17は,第1の走査線43がポリゴン59と交差しないと判断する。求めたx座標値が,X53より大きく,X57より小さい場合,遮蔽判断装置17は,Y53,Y55及びY57から最大値(Ymax)及び最小値(Ymin)を求める。遮蔽判断装置17は,第1の走査線43のZ53におけるy座標値を求める。この求めたy座標値がYminより小さいか,Ymaxより大きい場合,遮蔽判断装置17は,第1の走査線43がポリゴン59と交差しないと判断する。このような近似法を用いて走査線とポリゴンの接触の有無を判断することで,情報処理量を大幅に減少させることができる。なお,上記の判断方法を1次スクリーニング法としてもよい。その場合,上記の方法により第1の走査線43がポリゴン59と交差すると判断された場合について,さらに第1の走査線43がポリゴン59とが交差するか判断してもよい。
【0043】
遮蔽判断装置17が第1の走査線43はポリゴン59と交差しないと判断した場合,遮蔽判断装置17は,次のポリゴンが第1の走査線43と交差するか否かを判断する。遮蔽判断装置17は,この動作を繰り返す。
【0044】
遮蔽判断装置17が,第1の走査線43はポリゴンにより遮蔽されると判断した場合,遮蔽判断装置17は,第2の走査線45がポリゴンにより遮蔽されるか否かを判断する。図5は,走査線が遮蔽される様子を示す概念図である。図6は,少なくとも1本の走査線が遮蔽されない様子を示す概念図である。図7は,走査線が交差したポリゴンが透明又は半透明である場合の様子を示す概念図である。図5の場合,第1の走査線43は,第2のポリゴン59により遮蔽される。また,第2の走査線45は,第2のオブジェクト61における第3のポリゴン69(頂点63,65,67により規定される)により遮蔽されている。このように全ての走査線について順にポリゴンとの接触の有無を判断すればよい。
【0045】
遮蔽判断装置17が,あるポリゴンについての全ての走査線が他のポリゴンにより遮蔽されると判断した場合,そのポリゴンは描画する必要のないポリゴンである。この場合,遮蔽判断装置17は,描画不要情報(あるポリゴンについての全ての走査線が他のポリゴンにより遮蔽されると判断したことについての情報)を描画処理装置19へ伝える。
【0046】
描画処理装置19は,3次元コンピュータグラフィックスに関する画像処理を行うための装置である。描画処理装置19は,遮蔽判断装置17から描画不要情報を受け取った場合,あるポリゴンに関する所定の描画処理を行わないように制御する。例えば,描画処理装置19は,あるポリゴンの描画処理を行わず,他のポリゴンの描画処理を行う。
【0047】
一方,図6に示す例では,第2の走査線45が,いずれのポリゴンにも遮蔽されていない。すなわち図5の場合と比較すると第2の走査線45を遮蔽した第3のポリゴン65が存在しない。この場合,あるポリゴン30は,描画される可能性のあるポリゴンである。この場合,第3の走査線47以降の走査線について,他のポリゴンに遮蔽されるか否かを判断する必要がない。このため,遮蔽判断装置17は,走査線がポリゴンに遮蔽されるか否かの判断をこれ以上行わない。
【0048】
ポリゴン処理装置11の好ましい態様は,透明又は半透明ポリゴンを考慮したコンピュータグラフィックスを可能にするものである。図7を参照してこの態様の動作例について説明する。遮蔽判断装置17が,ある走査線43があるポリゴン59と交差すると判断した場合,遮蔽判断装置17は,そのポリゴン59に関する情報をポリゴン透明度判断装置21へ伝える。すると,ポリゴン透明度判断装置21は,ポリゴン情報記憶装置13からそのポリゴン59を構成する頂点53,55,57における透明度に関する情報を読み出す。そして,そのポリゴンが透明であるか否か,又は半透明であるか否か判断する。ポリゴン透明度判断装置21は,全ての頂点53,55,57における透明度が100%である場合,ポリゴン59が透明であると判断する。そのポリゴンの透明度が所定の透明度以上である場合,ポリゴン透明度判断装置21は,そのポリゴンが半透明であると判断する。なお,ポリゴン透明度判断装置21が半透明であると判断する際の「所定の透明度」は,ポリゴン情報記憶装置13に格納されていればよい。もっとも,所定の透明度は,適宜変更できるようにされていてもよい。ポリゴン透明度判断装置21は,半透明であるか否かを判断する際に,ポリゴン情報記憶装置13に格納されている所定の透明度を読み出す。そして,ポリゴン透明度判断装置21は,ある走査線とポリゴンとの交点における透明度と,読み出した所定の透明度とを比較する。ポリゴンとの交点における透明度は,ポリゴン透明度判断装置21が頂点53,55,57における透明度を掃引することで求めることができる。もっとも,交点における透明度は,頂点53,55,57における透明度の算術平均として求めてもよい。この場合,ポリゴン透明度判断装置21は,頂点53,55,57における透明度をポリゴン情報記憶装置13から読出し,読み出した値を加算して,3で割る演算処理を行う。このようにして,ポリゴン透明度判断装置21は,そのポリゴンが半透明であるか否かを判断する。ポリゴン透明度判断装置21は,判断結果を遮蔽判断装置17へ伝える。そして,遮蔽判断装置17は,ある走査線が交差したポリゴンが透明又は半透明である場合,走査線が遮られないと判断する。
【0049】
例えば,ある走査線43が最初に接したポリゴン59が透明又は半透明である場合,遮蔽判断装置17は,さらに走査線43が,他のポリゴンにより走査線43が遮られるかどうか判断する。そして,遮蔽判断装置17は,走査線43が次のオブジェクト71と接した場合,頂点73,75,77で規定される第4のポリゴン79が透明であるか否か,又はこのポリゴン79が半透明であるか否か判断する。第4のポリゴン79が透明でもなく半透明でもない場合,第1の走査線は遮蔽される。このため,ポリゴン処理装置11は,第1の走査線に関する処理をやめ,第2の走査線が他のポリゴンにより遮蔽されるか否かの演算を始める。
【0050】
図8は,本発明のある実施態様に係るポリゴン処理装置のブロック図である。このポリゴン処理装置11は,入力装置91,CPU92,演算装置93,記憶装置94及び画像処理ブロック95を有する。そして,各要素はバス96により情報の授受ができるように接続されている。また,このポリゴン処理装置11は,バス96を介してインターフェース(I/F)97と接続されている。このため,たとえばこのポリゴン処理装置11は,I/F97を介して,プログラムを格納した情報記録媒体98と接続することができる。このプログラムは,コンピュータや画像処理装置を,所定の手段として機能させるためのものである。また,このプログラムは,コンピュータや画像処理装置に所定のステップを実行させるためのものである。なお,I/F97を介して接続されるメモリが,記憶装置94の全部又は一部として機能してもよい。
【0051】
画像処理ブロック95は,グラフィック処理ユニット(GPU)99及びビデオRAM(VRAM)100を有する。そして,GPU99及びVRAM100は,情報の授受を行うことができるように接続されている。図中符号101は表示画面(モニタ)を示し,符号102はスピーカを示す。
【0052】
この実施態様では,例えば,CPU92,演算装置93,記憶装置94の作業空間,及び情報記録媒体98に格納されたゲーム用プログラムが,走査線発生装置15,遮蔽判断装置17,描画処理装置19,ポリゴン透明度判断装置21,及びランダム値発生装置23として機能する。そして,記憶装置95及び情報記録媒体98の記憶領域が,ポリゴン情報記憶装置13及び作業領域として機能する。入力装置91から操作情報が入力された場合,操作情報はバス96を介してCPU92へ伝えられる。すると,CPU92は,情報記録媒体98に格納されるプログラムを読出し,所定の処理を行う。CPU92は,プログラムからの指令に従って,記憶装置94や情報記録媒体98に記憶される各種情報を読出し,演算装置93において所定の演算を行う。CPU92は,演算結果を適宜記憶装置94に記憶し,演算結果を用いてモニタ101やスピーカ102から適切な情報を出力する。
【0053】
次に,このポリゴン処理装置11の基本動作例について説明する。図9は,本発明のコンピュータグラフィックスの描画方法の基本工程を説明するためのフローチャートである。図中符号Sはステップを意味する。図9に示されるように,本発明の3DCGの描画方法は,走査線発生工程(ステップ101),遮蔽判断工程(ステップ102),ポリゴン描画処理工程(ステップ103),及び画像表示工程(ステップ104)を含む。すなわち,図8に示される例では,情報記録媒体98に格納されたプログラムが,コンピュータに上記の各工程を実行させる。
【0054】
走査線発生工程(ステップ101)は,あるポリゴンから複数の方向へ複数の走査線を発生するためのステップである。遮蔽判断工程(ステップ102)は,走査線が他のポリゴンにより遮られるか否かを判断するためのステップである。ポリゴン描画処理工程(ステップ103)は,あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,あるポリゴンに関する所定の描画処理を行わないように制御するためのステップである。画像表示工程(ステップ104)は,ポリゴン描画処理工程(ステップ103)での描画処理に基づいてモニタ101に表示するための画像データを求め,モニタ101に画像を表示するための工程である。
【0055】
以下では,図10を用いて,各工程における動作例について詳細に説明する。図10は,本発明のコンピュータグラフィックスの描画方法を説明するためのフローチャートである。ポリゴン処理装置11は,描画対象に含まれるポリゴンから,あるポリゴン30を選択する(ステップ201)。複数存在するポリゴンからあるポリゴン30を読み出す順番は任意である。例えば,記憶装置94は,ポリゴンが形成された際にポリゴンに順番を振って記憶してもよい。そして,CPU92は,記憶装置94から,振られた順番にポリゴンを読み出す。
【0056】
ポリゴン処理装置11は,ステップ201で選択されたポリゴン30の頂点の座標を読み出す(ステップ202)。CPU92は,記憶装置94からあるポリゴンの頂点31,33,35の座標を読み出す。CPU92は,読み出した情報を用いて,演算装置93に三角形面内の座標を求めるよう指令を出す。ポリゴン処理装置11は,このようにしてポリゴン上の各点の座標を求めることができる。
【0057】
次に,ポリゴン処理装置11は,あるポリゴン30から走査線を発生させる(ステップ203)。CPU92は,例えば,最初に走査線を発生させるポリゴン上の位置を求める。CPU92は,演算装置93に対し,ポリゴンの頂点31,33,35の座標を用いて,図3に示されるようにポリゴンを分割し,複数の格子点を求めるよう指令を出す。演算装置93は,記憶装置94から分割数dに関する情報を読出し,ポリゴンの頂点31,33,35の座標を用いて,複数の格子点を求める演算を行う。
【0058】
次にCPU92は,演算装置93に対し,(d2+3d+2)/2までの数をランダムに発生させるよう指令を出す。そして,CPU92は,受け取ったランダムな数を記憶装置94に一時的に記憶させる。このランダムな数が,走査線の発生番地を特定する数である。
【0059】
次に,ポリゴン処理装置11は,走査線の方向を求める演算を行う。CPU92は,演算装置93に,1〜360までの数を2つランダムに発生するよう指令を出す。CPU92は,得られた2つの数を記憶装置94に記憶する。ポリゴン処理装置11は,この2つの数を,走査線の方向を定めるθ及びφとして用いる。CPU92は,演算装置93に対し,(d2+3d+2)/2までのランダムな数を用いて走査線の発生位置とし,1〜360までの数を2つランダムな数を用いて,走査線を発生させるよう指令を出す。このようにして,ポリゴン処理装置11は,あるポリゴンから走査線を発生させることができる。
【0060】
次に,ポリゴン処理装置11は,他のポリゴンに関する情報を読み出す(ステップ204)。例えば,CPU92は,記憶装置94から他のポリゴン59の第1の頂点53の座標,第2の頂点55の座標及び第3の頂点57の座標を読み出す。
【0061】
ポリゴン処理装置11は,第1の走査線43が他のポリゴン59と交差するか否かを判断する(ステップ205)。CPU92は,演算装置93に対し,読み出した3つの頂点53,55,57の座標を用いて,このポリゴン59と第1の走査線43と交差するか否か判断するよう指令を出す。そして,CPU92は,演算装置93から演算結果を受け取る。ある走査線がいずれのポリゴンとも交差しない場合,走査線が発生したポリゴンは描画対象となるポリゴンである。CPU92は,第1の走査線43と他のポリゴン59とが交差するか否か判断したという情報を,記憶装置94に記憶する。
【0062】
ポリゴン処理装置11は,走査線と交差するポリゴンが透明又は半透明であるか否かを判断する(ステップ206)。第1の走査線43が他のポリゴン59と交差するとCPU92が判断した場合,CPU92は,演算装置93に,このポリゴン59が透明又は半透明であるか否かを判断するよう指令を出す。なお,ポリゴン処理装置11は,描画対象に透明又は半透明のオブジェクトが存在しない場合,このステップを行わないように描画処理を進めてもよい。
【0063】
CPU92は,記憶装置94から,そのポリゴン59を構成する頂点53,55,57における透明度に関する情報を読み出す。そして,CPU92は,演算装置93に対し,そのポリゴンが透明であるか否か,又は半透明であるか否か判断するよう指令を出す。演算装置93は,全ての頂点53,55,57における透明度が100%である場合,ポリゴン59が透明であると判断する。演算装置93は,ポリゴン59が半透明であるか否かを判断する際に,記憶装置94に格納されている所定の透明度(閾値)を読み出す。そして,演算装置93は,走査線43とポリゴン59との交点における透明度と,読み出した所定の透明度とを比較する。このようにして,演算装置93は,そのポリゴン59が半透明であるか否かを判断する。そして,CPU92は,演算装置93から演算結果を受け取る。走査線が交差したポリゴンが透明でなく,半透明でもない場合は,走査線が発生したポリゴン30は,描画対象ではないポリゴンである可能性がある。
【0064】
ポリゴン処理装置11は,全てのポリゴンについて,発生した走査線が他のポリゴンにより遮蔽されるか否かを判断したか否かを判断する(ステップ207)。具体的には,CPU92は,ステップ201〜ステップ206の処理を終えたポリゴンの番号を記憶装置94に記憶させる。そして,CPU92は,演算装置93に対し,記憶装置94が記憶した処理済のポリゴンの番号を用いて,全てのポリゴンについて描画の要否を判断したか否か判断させる。そして,CPU92は,演算装置93から演算結果を受け取る。
【0065】
ポリゴン処理装置11は,全てのポリゴンについて,走査線が遮蔽されるか否かを判断したと判断した場合,ポリゴン処理を終える(ステップ208)。CPU92は,演算結果を演算装置93から受け取り,全てのポリゴンについて描画する必要があるか否か判断したと判断した場合,ポリゴン処理を終える。これにより描画処理に必要なポリゴンの数が減少する。このため,このポリゴン処理装置11を含む画像表示装置は,コンピュータグラフィックスを高速かつ適切に表示できることとなる。
【0066】
ステップ205において第1の走査線43が他のポリゴン59と交差しないと判断した場合,ステップ209に進む。この工程は,ポリゴン処理装置11が,ある走査線について全てのポリゴンとの交差の有無を判断したか否か判断する工程である(ステップ209)。CPU92は,記憶装置94に記憶される交差判断情報を読出し,演算装置93に,ある走査線について全てのポリゴンとの交差の有無を判断したか否か判断するよう指令を出す。CPU92は,演算装置93から演算結果を受け取る。CPU92が,ある走査線について全てのポリゴンとの交差の有無を判断していないと判断した場合は,ステップ204へ戻り,新たなポリゴンを読み出す(ステップ204)。そして,ある走査線と新たに読み出されたポリゴンとの交差の有無を判断する(ステップ205)。
【0067】
一方,CPU92が,ある走査線について全てのポリゴンとの交差の有無を判断したと判断した場合は,ステップ210へと進む。この工程では,ポリゴン処理装置11が,全ての走査線について全てのポリゴンとの交差の有無を判断したか否か判断する(ステップ210)。CPU92は,記憶装置94からポリゴンとの交差の有無を判断した走査線に関する情報を読み出して,演算装置93に,全ての走査線について全てのポリゴンとの交差の有無を判断したか否か判断するよう指令を出す。CPU92は,演算装置93から演算結果を受け取る。そして,CPU92が全ての走査線について全てのポリゴンとの交差の有無を判断したと判断した場合,走査線を発生させたポリゴン30は,描画対象である。この場合,CPU92は,ポリゴン30を描画対象とするような処理を行い,ステップ207へと進む。一方,CPU92が全ての走査線について全てのポリゴンとの交差の有無を判断していないと判断した場合,ステップ203へと戻る。そして,新たに走査線を発生させ(ステップ203),発生させた走査線が他のポリゴンに遮蔽されるか否かの判断を行う(ステップ204〜ステップ206)。
【0068】
ステップ207において,全てのポリゴンについて,発生した走査線が他のポリゴンにより遮蔽されていないと判断した場合,ポリゴン処理装置11はステップ201に戻り,次のポリゴンについて他のポリゴンに覆われるか否か判断する(ステップ201〜ステップ206)。
【0069】
このように処理を行うことで,本発明のポリゴン処理装置11は,外観上のクオリティを下げずに,ポリゴンの数を減らすことができる。たとえば,キャラクタの服装を変更できるゲームがある。このようなゲームのゲーム画像を作成する際に,キャラクタの服装が変わることに伴い描画する必要がないポリゴンが変わる。本発明のポリゴン処理装置11を用いれば,服装が変わったことに伴い隠れるポリゴンを容易に把握できる。これにより本発明のポリゴン処理装置11を用いれば,ランタイムの負荷を軽減できることとなる。また,アニメーションを実現する3DCGにおいては,本発明のポリゴン処理方法を全てのフレームについて行うことで,アニメーションにおける外観のクオリティを損なわずに,画像処理量を減少させることができる。このように,本発明のポリゴン処理装置11は,リアルタイムに3DCGを描画するために特に有効である。
【実施例1】
【0070】
本実施例は,複数の映像構成データを統合することで一つの映像作品を完成させる映像作成システムに,上記したポリゴン処理装置を用いたものに関する。
三次元CG(Computer Graphics)等によるビデオゲームやアニメーションは,キャラクタデザイン,モーションデザイン,エフェクト制作,レイアウト設計,サウンドデザイン,シーン編集などの工程で,膨大な人数のデザイナーが共同作業を行うことによって制作されている。ビデオゲームやアニメーションの制作は,作業の規模が非常に大きいために全体を把握することが難しく,その結果,作業の非効率化,開発作業相互間のバランス調整の困難化などの問題が生じ易い。特に,映像作品の制作においては,最終結果としての見え方を確認しつつ個別の作業を進めなければならないという特有の課題を抱えており,これらを解決できる新たなシステムが必要とされていた。
【0071】
本実施例は,映像作品の大規模開発を行う場合に,開発作業を効率的に行うことができ,さらに開発作業相互間のバランス調整を容易に行うことができる新たなシステムを提供するものである。
【0072】
すなわち,この映像作成システムは,複数の映像構成データを統合することで一つの映像作品を完成させる映像作成システムであって,前記複数の映像構成データを作成および/又は編集する複数の個別編集ツールと,作成および/又は編集された前記複数の映像構成データを取得し,これらを統合することで一つの映像データを作成するサーバと,前記サーバから取得した前記映像データを所定のマシンプラットフォーム上で表示するターゲット表示手段と,を備え,前記複数の個別編集ツールは,各個別編集ツール上で継続して稼働するデータ送信手段を備えており,当該データ送信手段は,前記映像構成データが作成および/又は編集される都度,前記サーバに対して作成および/又は編集された新たな映像構成データを送信し,前記サーバは,前記新たな映像構成データを取得する度に,当該新たな映像構成データを含む複数の映像構成データを統合することで,継続して最新の映像データを作成することを特徴とする映像作成システムに関する。そして,本発明のポリゴン処理装置は,個別編集ツールの一つとして機能する。
【0073】
図11は,本実施例に係る映像作成システムの全体構成を例示するブロック図である。本実施例に係る映像作成システムは,1つの映像データ(アニメーションなど)の構成要素となる複数の映像構成データ(たとえば,モデルデー夕,エフェクトデー夕,シーン編集情報,位置編集情報,サウンドデータなど)をそれぞれ編集するための個別編集ツール122,123,124,125を複数有している。個別編集ツールの具体例として,本実施例では,作成されたオブジェクト(映像に登場するアイテムなど)の座標位置を定義編集する位置編集手段122と,演出効果画像を作成するエフェクト編集手段123と,効果音を作成するサウンド編集手段124と,オブジェクト,モーション,編集画像,座標位置,演出効果画像,効果音を統合して映像シーンを表示出力するシーン編集手段125と,が示されている。
【0074】
上記したポリゴン処理装置は,個別編集ツールの一つとして利用されうるものである。特に,ポリゴン処理装置はシーン編集手段125のある要素として機能する。また,上記したポリゴン処理装置は,後述するオブジェクト作成手段111の一要素として機能しオブジェクトの作成や編集を行う際に用いられてもよい。
【0075】
また,モデルデータを編集する個別編集ツールとして,本実施例では,オブジェクトの作成および/又は編集を行うオブジェクト作成手段111と,オブジェクトのモーションを作成および/又は編集するモーション作成手段112と,作成されたオブジェクトおよびモーションの画像を編集する画像編集手段113と,作成されたオブジェクトおよびモーションを表示出力する表示出力手段121と,が例示されている。これら個別編集ツール111,112,113,121,122,123,124,125が編集する映像構成データは,後述するサーバ140によって実施されるデータの統合という処理を経ることで,映像データとして構築されるものである。なお,データの統合とは,互いに異質な映像構成データを有機的に連携させる処理のことである。
【0076】
各個別編集ツール111〜125の具体的構成は,コンビュータ(1台でもよいし,図11のブロック図で示される手段ごとにコンピュータを配置し,これら複数台のコンピュータを組み合わせることによって構成してもよい。)と,そのコンビュータ上で動作するアプリケーション等である。
【0077】
また,各個別編集ツール111〜125で映像構成データが作成又は編集された際には,編集途中の映像構成データは,常時ハードディスク等の記憶装置に一時保存(上書き保存)されることとなる。つまり,各個別編集ツール111〜125での映像構成データの編集は,編集途中の映像構成データがハードディスク等に常に一時保存(上書き保存)されながら行われることになるので,各個別編集ツール111〜125が有するハードディスク等の記憶装置には,常時最新版の映像構成データが存在することとなる。
【0078】
さらに,本実施例に係る映像作成システムの特徴として,各個別編集ツール111〜125には,常時稼働するデータ送信手段127が設けられている。このデータ送信手段127は,監視・データ送信用プログラムからなる手段であって,各個別編集ツール111〜125が有するハードディスク等の記憶装置に対する映像構成データの一時保存動作を常に監視しており,一時保存が行われると,一時保存された映像構成データを後述するサーバ140に向けて送信するように構成されている。
【0079】
本実施例に係る映像作成システムは,サーバ140を有している。サーバ140は,具体的構成としてはコンピュータであり,前述した複数の個別編集ツール111〜125および後述する再生装置としてのターゲット表示手段130と,当該サーバ140との間をネットワーク接続する設備(たとえば,LAN接続設備など)を備えている。
【0080】
また,本実施例の特徴として,サーバ140は,映像構成データ管理手段141を有している。この映像構成データ管理手段141を具体的に説明すると,映像構成データ管理手段141は,各個別編集ツール111〜125から送信されてくる映像構成データをハードディスク等の記憶装置に一時保存(上書き保存)しておく映像構成データ保存手段142と,映像構成データ保存手段142に保存されている映像構成データを読み出してこれらを統合処理するデータ統合手段143(統合処理アプリケーション等からなる)と,統合されたデータをハードディスク等に一時保存(上書き保存)する統合データ保存手段144とを有している。
【0081】
かかる構成を有する映像構成データ管理手段141は,各個別編集ツール111〜125から映像構成データが送信されてくると,映像構成データ保存手段142がこれを一時保存する。ここで映像構成データには,モデルデー夕,エフェクトデー夕,シーン編集情報,位置編集情報,サウンドデータなどの複数種類が存在しているが,映像構成データ保存手段142によって行われる一時保存は,種類ごとに区別して保存されている。また,映像構成データは,全種類同時一斉に送信されるのではなく,通常は一種類ごとにバラバラに送信されてくるので,一時保存もそのつど一種類ずつ保存することとなる。ただし,稀な現象として,映像構成データが全く同一の時刻に送信されてくる場合も存在するが,そのような場合であっても,映像構成データ保存手段142では,同一時刻に送信されてきた複数の映像構成データを一時保存することが可能なように構成されている。
【0082】
一方,データ統合手段143は,常駐プログラムとして映像構成データの一時保存の有無を監視しており,一種類でも映像構成データの一時保存があれば,これら映像構成データのデータ統合を実行することとなる。すなわち,映像構成データ保存手段142に保存された全ての映像構成データを読み出して統合処理を行い,統合したデータを統合データ保存手段144に一時保存するのである。
【0083】
以上のようにしてサーバ140内に映像データが完成するが,本実施例に係る映像作成システムは,さらに,ターゲット表示手段130を有しており,完成した映像データを再生することができるようになっている。
【0084】
ターゲット表示手段130は,具体的構成として,複数種類の再生装置と表示装置とを有している。各再生装置の具体的例は,ゲーム機としてのコンピュータである。再生装置の種類とは,ゲーム機の種類を意味し,ゲーム機の種類(Playstation3(登録商標),XBOX360(登録商標),Wii(登録商標)など)とはマシンアーキテクチャやオペレーティングシステム等により実現されるアプリケーションプログラムを実行するために提供されるプラットフォームの種類を意味する。
【0085】
なお,本実施例に係るターゲット表示手段130においては,各再生装置に適宜ランタイム等が設けられているため,所定の単一フォーマットで統合されたデータである統合データ(すなわち,映像データ)は,種類の異なる再生装置のいずれにおいても再生可能となっている。
【0086】
ターゲット表示手段130としての各再生装置は,再生指示を受けると再生処理を実行する。ここでの再生指示は,ゲーム機のコントローラ等を介して入力するコマンドでもよいし,各個別編集ツールからネットワーク(サーバ140)を介して当該再生装置に送信されるコマンドなどであってもよい。再生装置がこの再生指示を受けると,サーバ140を介して統合データ保存手段144に一時保存された映像データを読み出し,読み出した映像データを再生することとなる。再生した映像データは,上述した表示装置に表示させることができる。たとえば,表示装置がゲーム機に接続されたモニタ等である場合には,このモニタに映像データが表示されることとなる。
【0087】
なお,ターゲット表示手段130の取り得る別の構成として,表示装置を再生装置とは別個のコンビュータとして構成することも可能である。たとえば,この場合の表示装置は,映像編集等を行っている各開発者の席に設置されたパソコンとして構成することができる。このパソコンは,ネットワーク(サーバ140)を介して再生装置と接続されており,また,該パソコンには,ビューア手段(たとえば,遠隔操作のクライアントアプリケーション等)を備えることが好適である。各開発者が,パソコンのキーボード等より再生指示のコマンドを入力すると,ビューア手段がこれを受けて再生指示のコマンドが送信され,送信されたコマンドを受けた各再生装置は,上述した再生を行うこととなる。
【0088】
一方,再生装置には,前記ビューア手段にディスプレイ情報を提供する画像サービス手段(例えば遠隔操作のサーバアプリケーション等)を備えることができ,当該画像サービス手段は,再生装置におけるディスプレイ情報(具体的には,ビデオバッファメモリに単位時間毎にレンダリングされる画像データ)を前記コマンドの送信元であるパソコンに送信する。パソコンでは,送信されてくるディスプレイ情報をビューア手段が画面表示する。これによって,パソコンでは,再生装置で再生されるディスプレイ映像を当該パソコンのディスプレイで確認することができる。
【0089】
なお,再生装置は複数種類あることから,パソコンのディスプレイでの映像の表示は,再生装置ごとに個別のウインドウ表示とする構成を採用してもよい。あるいは,単一ウインドウとしてタブ等により切替表示するようにしてもよい。また別の方法として,再生指示のコマンドを再生装置の種類を指定して入力するようにしてもよい。再生装置の種類を指定した場合,指定された種類の再生装置においてのみ再生が行われることとなる。
【0090】
また,上記パソコンである表示装置のさらなる別構成として,個別編集ツールのコンピュータが当該パソコンを兼用するように構成してもよい。この場合,画像等の編集をしながら,同じディスプレイの画面内で再生結果を確認できるので好都合である。
【0091】
次に,本実施例に係る映像作成システムの動作手順について,図12を用いて説明を行う。ここで,図12は,本実施例に係る映像作成システムの動作手順を例示するフローチャートである。
【0092】
各個別編集ツール111〜125において映像構成データが作成又は編集されると(ステップS301),各個別編集ツール111〜125を構成するコンビュータにインストールされた監視ソフトウェアによって編集作業の有無が確認され(ステップS302),編集作業が行われたと判断された場合には,各個別編集ツール111〜125が備えるハードディスク等の記憶装置に対して作成又は編集された映像構成データが一時保存(上書き保存)されることとなる(ステップS303)。この一時保存(上書き保存)は,映像構成データの編集途中から実施されており,各個別編集ツール111〜125が有するハードディスク等の記憶装置には,常時最新版の映像構成データが存在するようになっている。
【0093】
また,各個別編集ツール111〜125を構成するコンピュータは,映像構成データが自己の記憶装置に一時保存(上書き保存)される状態をインストールされた監視ソフトウェアによって常時監視しており,映像構成データが一時保存(上書き保存)されたことを確認すると(ステップS304),各個別編集ツール111〜125を構成するコンピュータが有するデータ送信手段127を動作させることで,この一時保存された映像構成データをサーバ140に向けて送信する(ステップS305)。
【0094】
各個別編集ツール111〜125から送られてくる映像構成データを取得したコンピュータであるサーバ140はインストールされたソフトウェアによって映像構成データ保存手段142を動作させ,各個別編集ツール111〜125から送信されてくる映像構成データをサーバ140側の記憶装置に一時保存(上書き保存)する(ステップS306)。
【0095】
さらに,サーバ140は,統合処理アプリケーション等からなるデータ統合手段143を用いることによって映像構成データ保存手段142に保存されている映像構成データを読み出してこれらを統合処理し(ステップS307),その後,これまたインストールされたソフトウェアによって統合データ保存手段144を動作させることで,統合された映像データを記憶装置に一時保存(上書き保存)する処理を実行する(ステップS308)。
【0096】
以上のようにしてサーバ140内に映像データが完成し,サーバ140が有するLAN接続設備などのネットワーク接続設備を利用することでターゲット表示手段130に対して統合された映像データが送信され(ステップS309),これを受信したターゲット表示手段130では,常に最新版の映像データを再生することができるようになっている(ステップS310)。
【0097】
なお,各個別編集ツール111〜125での処理であるステップS301〜ステップS305については,並列時間的に処理を進めることができるようになっているので,本実施例に係る映像作成システムは,大規模なソフトウェア開発の現場において好適に用いることができるように構成されている。
【0098】
以上,本実施例に係る映像作成システムの全体構成および動作手順について説明を行った。特に,本実施例に係る映像作成システムでは,映像構成データ管理手段141によって,大人数で進められる開発作業での統合データ(映像データ)が,個別編集ツール111〜125での個々の進捗に応じでほぼリアルタイムに更新されることとなる。従来行われていた通常の分散開発環境では,個々のPCでのモジュール作成作業を進捗に応じてリアルタイムで統合することができなかったが,映像作成システムが有する上記映像構成データ管理手段141により,開発作業相互間のバランス調整を容易に行うことが可能となっている。
【0099】
また,本実施例に係る映像作成システムは,統合データ(映像データ)を所定のフォーマットで保存しておき,各種の再生装置ではランタイムを用いて当該所定のフォーマットのデータを共用する構成を採用している。通常は,最初に1つのプラットフォームに適合したソフトウェアの開発を行い,それが完成した後に他のプラットフォームへの変換移植を行うこととなるが,この移植作業では,プログラムの動作が適正かどうかが問題となり,細かい素材(デザインなど)を調整することはできなかった。特に,映像作品の場合,プラットフォームが異なると色彩やカメラ角度,解像度などが異なることから,細かい素材に関する問題を手当する必要が生じ,開発工程の後戻りが大きい。しかし,本実施例に係る映像作成システムでは,全てのプラットフォーム共通のものを開発工程の初めから進めるようにしたので,開発工程の後戻りをすることなく映像作品を開発することが可能である。
【0100】
さらに,本実施例に係る映像作成システムでは,複数種類の再生装置を同時に備えることが容易となっている。これは,統合データ(映像データ)を所定のフォーマットで保存しておき,各種の再生装置ではランタイムを用いて当該所定のフォーマットのデータを共用する構成にしたためである。かかる構成によれば,統合データのフォーマットをプラットフォームごとに複数作成する必要がないので,従来技術に比して簡単な構成となるという利点がある。
【0101】
以上,本発明の好適な実施例について説明したが,本発明の技術的範囲は上記実施例に記載の範囲には限定されない。上記実施例には,多様な変更又は改良を加えることが可能である。
【0102】
たとえば,上述した本実施例に係るターゲット表示手段130については,各再生装置とネットワーク(サーバ140)を介して接続されたデータ配信サーバを有するように構成することも可能である。この構成の場合,再生指示は,統合データ保存手段144が統合データ(映像データ)を一時保存する際に,当該統合データ保存手段144が各再生装置に向けて送信するようになる。つまり,統合データ(映像データ)が更新される度に,各再生装置では直ちにこのデータを再生開始することとなる。再生とともに前記画像サーピス手段(たとえば,遠隔操作のサーバアプリケーション等)はこの再生画像をデータ配信サーバに送信し,再生画像を取得したデータ配信サーバでは,再生装置の種類ごとに,これら再生装置から送信されるディスプレイ情報(動画データ)を保存することとなる。また,データ配信サーバには,動画をストリーミング配信する配信手段(配信制御プログラムによる)を備えることができ,各パソコンからの指示によって前記ディスプレイ情報を配信することとなる。以上の構成によると,再生装置での再生処理は統合データの更新ごとに一回で済むので,マシン負荷を低減することができる。また,多数のパソコンから時間差のある指示があっても,データ配信サーバでのストリーミング配信により支障なくディスプレイ情報を配信できるので好都合である。
【0103】
また,本実施例に係る映像作成システムでは,個別編集ツール111〜125での個々の進捗に応じてほぼリアルタイムに映像データが統合更新される構成を採用しているが,更新直前に保存されていた映像データについては,それを保管しておき,所望の際に当該映像データを復活させて利用できるような構成としても良いし,過去の映像データは常時破棄し,常に最新の映像データのみを保管するような構成としてもよい。
【産業上の利用可能性】
【0104】
本発明は,3次元コンピュータグラフィックスを描画するためのコンピュータ関連産業や,3DCGを用いたゲーム機器,及びソフトウェアの産業において利用されうる。
【符号の説明】
【0105】
11 ポリゴン処理装置; 13 ポリゴン情報記憶装置; 15 走査線発生装置; 17 遮蔽判断装置; 19 描画処理装置; 21 ポリゴン透明度判断装置; 23 ランダム値発生装置; 30 第1のポリゴン; 31,33,35 第1のポリゴンの頂点; 37,39,41 第1のポリゴンに隣接するポリゴンの頂点; 43 第1の走査線; 45 第2の走査線; 47 第3の走査線; 49 第4の走査線; 51 第2のオブジェクト; 53,55,57 第2のポリゴンの頂点; 59 第2のポリゴン; 61 第2のオブジェクト; 63,65,67 第3のポリゴンの頂点; 69 第3のポリゴン; 71 第3のオブジェクト; 73,75,77 第4のポリゴンの頂点; 79 第4のポリゴン; 91 入力装置; 92 CPU; 93 演算装置; 94 記憶装置; 95 画像処理ブロック; 96 バス; 97 インターフェース; 98 情報記録媒体; 99 グラフィック処理ユニット; 100 ビデオRAM; 101 表示画面(モニタ); 102 スピーカ;
111 オブジェクト作成手段; 112 モーション作成手段; 113 画像編集手段; 121 表示出力手段; 122 位置編集手段; 123 エフェクト編集手段; 124 サウンド編集手段; 125 シーン編集手段; 127 データ送信手段; 130 ターゲット表示手段; 140 サーバ; 141 映像構成データ管理手段; 142 映像構成データ保存手段; 143 データ統合手段; 144 統合データ保存手段
【特許請求の範囲】
【請求項1】
ポリゴンに関する情報を記憶するためのポリゴン情報記憶手段と,
前記ポリゴン情報記憶手段に記憶されたあるポリゴンから,複数の方向へ複数の走査線を発生するための走査線発生手段と,
前記走査線が他のポリゴンにより遮られるか否かを判断するための遮蔽判断手段と,
前記遮蔽判断手段が,前記あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,前記あるポリゴンに関する所定の描画処理を行わないように制御するための描画処理手段と,
を含む,3次元コンピュータグラフィックに用いられるポリゴン処理装置。
【請求項2】
前記走査線発生手段は,
前記あるポリゴン内のランダムの位置から,ランダムの方向へ複数の走査線を発生するための手段を含む,
請求項1に記載のポリゴン処理装置。
【請求項3】
請求項1に記載のポリゴン処理装置であって,ポリゴン透明度判断手段をさらに有し,
前記ポリゴン透明度判断手段は,
前記走査線が交差したポリゴンが透明又は半透明であるか否か判断するための手段であり,
ここで,前記遮蔽判断手段は,
前記走査線が交差したポリゴンが透明又は半透明である場合に,前記走査線は当該ポリゴンにより遮られないと判断する,
ポリゴン処理装置。
【請求項4】
コンピュータに,
あるポリゴンから複数の方向へ複数の走査線を発生するためのステップと,
前記走査線が他のポリゴンにより遮られるか否かを判断するためのステップと,
前記あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,前記あるポリゴンに関する所定の描画処理を行わないように制御するためのステップと,
を実行させるようにした,
3次元コンピュータグラフィック用プログラム。
【請求項5】
請求項4に記載のプログラムであって,
前記走査線が交差したポリゴンが透明又は半透明であるか否か判断するためのステップをさらに含み,
前記走査線が交差したポリゴンが透明又は半透明である場合に,前記走査線は当該ポリゴンにより遮られないと判断する,
プログラム。
【請求項6】
請求項4又は請求項5に記載のプログラムを記憶した,コンピュータ読み取り可能な情報記録媒体。
【請求項1】
ポリゴンに関する情報を記憶するためのポリゴン情報記憶手段と,
前記ポリゴン情報記憶手段に記憶されたあるポリゴンから,複数の方向へ複数の走査線を発生するための走査線発生手段と,
前記走査線が他のポリゴンにより遮られるか否かを判断するための遮蔽判断手段と,
前記遮蔽判断手段が,前記あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,前記あるポリゴンに関する所定の描画処理を行わないように制御するための描画処理手段と,
を含む,3次元コンピュータグラフィックに用いられるポリゴン処理装置。
【請求項2】
前記走査線発生手段は,
前記あるポリゴン内のランダムの位置から,ランダムの方向へ複数の走査線を発生するための手段を含む,
請求項1に記載のポリゴン処理装置。
【請求項3】
請求項1に記載のポリゴン処理装置であって,ポリゴン透明度判断手段をさらに有し,
前記ポリゴン透明度判断手段は,
前記走査線が交差したポリゴンが透明又は半透明であるか否か判断するための手段であり,
ここで,前記遮蔽判断手段は,
前記走査線が交差したポリゴンが透明又は半透明である場合に,前記走査線は当該ポリゴンにより遮られないと判断する,
ポリゴン処理装置。
【請求項4】
コンピュータに,
あるポリゴンから複数の方向へ複数の走査線を発生するためのステップと,
前記走査線が他のポリゴンにより遮られるか否かを判断するためのステップと,
前記あるポリゴンから発生された全ての走査線が他のポリゴンにより遮られたと判断した場合に,前記あるポリゴンに関する所定の描画処理を行わないように制御するためのステップと,
を実行させるようにした,
3次元コンピュータグラフィック用プログラム。
【請求項5】
請求項4に記載のプログラムであって,
前記走査線が交差したポリゴンが透明又は半透明であるか否か判断するためのステップをさらに含み,
前記走査線が交差したポリゴンが透明又は半透明である場合に,前記走査線は当該ポリゴンにより遮られないと判断する,
プログラム。
【請求項6】
請求項4又は請求項5に記載のプログラムを記憶した,コンピュータ読み取り可能な情報記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−282498(P2010−282498A)
【公開日】平成22年12月16日(2010.12.16)
【国際特許分類】
【出願番号】特願2009−136472(P2009−136472)
【出願日】平成21年6月5日(2009.6.5)
【出願人】(308033283)株式会社スクウェア・エニックス (173)
【Fターム(参考)】
【公開日】平成22年12月16日(2010.12.16)
【国際特許分類】
【出願日】平成21年6月5日(2009.6.5)
【出願人】(308033283)株式会社スクウェア・エニックス (173)
【Fターム(参考)】
[ Back to top ]