(57)【特許請求の範囲】
【請求項１】
多数の四角形ポリゴンを組み合わせて３次元物体の表面を表現する場合に、各四角形ポリゴンについて、一方の対角線で分割した場合に得られる２個の三角形と、他方の対角線で分割した場合に得られる２個の三角形とからなる４個の三角形から１個の三角形を選択し、その選択した三角形の平面について前記３次元物体の外側へ向けて立てた法線ベクトルが視点側への成分を有するか否かを判定し、視点側への成分を有している場合に当該四角形ポリゴンを表示対象とするポリゴンデータの処理方法において、
前記３次元物体の表面を表現する各四角形ポリゴンの頂点座標データをメモリにセーブさせ、表示画像処理部が、前記メモリにセーブさせた四角形ポリゴンの頂点座標データを用いて、四角形ポリゴンの２本の対角線又はその延長線に対してそれら対角線上にない四角形ポリゴンの頂点から垂線を降ろした場合の４本の垂線の長さを演算する第１演算手順と、前記第１演算手順で得られた各垂線の長さを比較し、最長の垂線に対応した頂点とそれに隣接した頂点で構成される三角形を選択する選択手順と、前記選択手順で選択された三角形の頂点座標データを用いて３次元物体の外側へ向けて立てた法線ベクトルを求める第２演算手順とを実行し、前記第２演算手順で求められた法線ベクトルが視点側への成分を有している場合に当該四角形ポリゴンを表示対象とすることを特徴としたポリゴンデータの処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はポリゴンデータの処理方法に係り、３次元コンピュータグラフィックス(３Ｄ-ＣＧ)機能を有するゲーム機等の表示システムに適用され、多数の四角形ポリゴンを組み合わせによって３次元物体の表面を表現する場合に、視点側(表示)と背面側(非表示)のポリゴンの判定基準を合理的に設定し、高品質で安定した表示状態を得るための改善に関する。
【０００２】
【従来の技術】
近年、家庭用テレビゲームおもちゃや業務用ゲーム機が広範に普及し、更にはマルチメディアシステム等の拡充も目覚ましく、３Ｄ-ＣＧに係る分野では、高速なデータ処理と共に、リアリティに富んだ高精細な画像の表示が益々求められるようになっている。
特に、ゲーム機の分野では高品位な動画像表示の要望が強く、ハードウェア仕様の範囲内で如何にその要求に応えられるかが課題になっている。
【０００３】
そして、３Ｄ-ＣＧで３次元物体を表現する手法としては、従来から多数の三角形平面又は四角形平面のポリゴンを組み合わせて３次元物体の表面を表現することが行われているが、三角形ポリゴンよりも四角形ポリゴンの方が自由度が大きく、見かけ上でより滑らかな表面を表現できることから、業務用ゲーム機等では主として四角形ポリゴンによる表現手法が採用されつつある。
【０００４】
四角形ポリゴンによる３次元物体の表現方式では、例えば、図４に示すような楕円形の球体状物体51の場合に、その表面を隣接した各種形状の四角形ポリゴン52-iで分割し、視点を基準にして曲率半径が大きな面に相当する領域では大きな平面のポリゴンを、逆に曲率半径の小さな面に相当する領域では小さな平面のポリゴンを割り付けながら、視点側と背面側に係る３次元物体の表面全体を各四角形ポリゴンの各頂点の空間座標として表現する。
また、一般には、個々の四角形ポリゴン内に一様な明度の色彩を施しながら各四角形ポリゴンの明度を変化させることでシェーディング効果を持たせたり(Lambert Shading)、各四角形ポリゴン内にグラデーションを施してより精細な自然さを与えることにより(Grouraud Shading)、視覚的にリアルな立体表現を実現させるようになっている。
尚、後述の問題点に係る理解を容易にする便宜上、図４では各四角形ポリゴン52-iをそれぞれ大きくとってあるが、実際にはもっと細分化されて表面全体を滑らかに表現する場合が多い。
【０００５】
ところで、ポリゴンによって仮想的表面を表現した３次元物体を表示する場合、ディスプレイ上では平面画像として表示されるため、後面側に存在する各四角形ポリゴンは表示させる必要がない。
従って、視点側と後面側の各四角形ポリゴンデータを一定の基準で判定し、視点側に相当する四角形ポリゴンのみを表示対象とするデータ処理がなされる。
【０００６】
【発明が解決しようとする課題】
上記の四角形ポリゴンを用いた３次元物体の表示に係るデータ表現において、視点側か後面側かに対応した表示／非表示の判定処理は各四角形ポリゴンについて次のような方法で設定される。
(1)  四角形ポリゴンには２つの対角線を引くことができ、それによって分割面に相当する４個の三角形を構成できるが、それらの三角形の内から任意に選択された１個の三角形に係る３頂点の座標データを用いて、その三角形が構成する平面に対して３次元物体の外側へ向けて立てた法線ベクトルを求める。
具体的には、任意に選択した頂点を起点とし隣接する２頂点を終点とする２つのベクトルの外積を演算することにより法線ベクトルを求めることになる。尚、外積する２つのベクトルの順序を一定にしておく必要があるが、３次元物体のモデリングの際に各四角形ポリゴンの４頂点を３次元物体を内側又は外側からみた状態での周回方向順序を一定に定義しておき、その定義に基づいて２つのベクトルの外積順序を設定する。
(2)  各四角形ポリゴンについて求められた法線ベクトルを解析し、そのベクトルが視点側への成分を有しているか否かを判定する。
具体的には、視線ベクトルＶと法線ベクトルＮの内積がＮ・Ｖ＝|Ｎ||Ｖ|cosθ(但し、θは両ベクトルのなす角度)で与えられることから、法線ベクトルＮがＮ・Ｖ＞０の条件を満たすか否かを判定する。
そして、法線ベクトルが視点側への成分を有している四角形ポリゴンのみをフレームメモリに書込み、それをディスプレイに表示させるというデータ処理をフレーム毎に実行する。
【０００７】
ところで、前記(1)で求められた法線ベクトルは、選択された三角形が四角形ポリゴンの平面の一部であることから、基本的には四角形ポリゴンの平面に対して垂直であり、３次元物体の外側へ向かうベクトルである。
従って、原理的には、視点側と後面側に区別して各四角形ポリゴンを適正に表示できる筈である。
【０００８】
しかし、前記(1)において任意に選択された三角形から法線ベクトルを求めていることに起因して、次のような不具合が生じる。
先ず、図４の３次元物体51-iの四角形ポリゴンによる表現態様について、例えば、左端側の四角形ポリゴン52-a,52-bを拡大すると、それぞれ図５の(Ａ)と(Ｂ)のようになる。
ここで、四角形ポリゴン52-aの場合には、対角線P1-P3で分割された三角形(P1,P4,P3)は頂点P4が対角線P1-P3から大きく離隔しているが、三角形(P1,P2,P3)側の頂点P2と対角線P1-P3の距離が極めて小さく、また四角形ポリゴン52-bの場合には、対角線P5-P7で分割された三角形(P5,P8,P7)は頂点P8が対角線P5-P7から大きく離隔しているが、三角形(P5,P6,P7)側の頂点P6と対角線P5-P7の距離が極めて小さくなっている。
そして、各四角形ポリゴンの何れの三角形を選択するかは任意であるため、四角形ポリゴン52-aについては三角形(P1,P2,P3)が、四角形ポリゴン52-bについては三角形(P5,P6,P7)が選択されている可能性がある。
【０００９】
その場合、ゲーム機等では、キャラクタを僅かに回転させたり、視点を微妙に移動して静止させるような操作入力がなされる場合が多く、図４の３次元物体51を例にとると、矢印で示す方向へ僅かに回転させたり、又は視点が右側へ少し移動させたりすると、その操作入力に対応したポリゴンデータの処理により、前記の三角形(P1,P2,P3)では頂点P2が対角線P1-P3へ、三角形(P5,P6,P7)では頂点P6が対角線P5-P7へ限りなく近づくことになる。
一方、その状態においても、各四角形ポリゴン52-a,52-bの表示／非表示の判定は当然に各三角形(P1,P2,P3),(P5,P6,P7)で求めた各法線ベクトルに基づいて行われるが、各頂点P2,P6が各対角線P1-P3,P5-P7へ接近した状態では、外積の演算精度に制約があるために演算結果が不定となり、法線ベクトルが求まらないような場合が発生する。
また、そのまま状態で静止させる操作状態であっても、ゲーム実行者は制御用のハンドルやボタンに触ったままであることが多く、意図しない微小入力がなされている場合が多い。
【００１０】
その結果、表示画像についてみると、本来表示されるべきポリゴンの欠落やポリゴンの表示／非表示が不安定に繰り返されるような状態が発生する。即ち、図６に示すように、斜線部分の四角形ポリゴン52-a',52-b'が欠落したり、フレーム単位で表示／非表示が頻繁に繰返されたりすることになる。
更に、前記の対象となる四角形ポリゴンは３次元物体51の曲率半径が小さい部分に相当する場合が多く、一般的に高周波成分が密集する領域であることから、前記のポリゴンの表示／非表示の繰り返し現象が重畳すると、その部分に異常なチラツキが発生する。
尚、上記の従来技術では四角形ポリゴン内の三角形の選択基準が任意であることを前提としているが、仮に四角形ポリゴン内で常に一定位置の三角形を演算基準にとるとしても、やはり前記の不具合は発生する。
【００１１】
そこで、本発明は、四角形ポリゴンによる３次元物体の表示システムにおいて、視点側(表示)と後面側(非表示)のポリゴンを判定するための法線ベクトルの演算を合理的に実行し、前記の各不具合を解消して安定したポリゴン表示を可能にし、高品質な画像表示を実現することを目的として創作された。
【００１２】
【課題を解決するための手段】
本発明は、多数の四角形ポリゴンを組み合わせて３次元物体の表面を表現する場合に、各四角形ポリゴンについて、一方の対角線で分割した場合に得られる２個の三角形と、他方の対角線で分割した場合に得られる２個の三角形とからなる４個の三角形から１個の三角形を選択し、その選択した三角形の平面について前記３次元物体の外側へ向けて立てた法線ベクトルが視点側への成分を有するか否かを判定し、視点側への成分を有している場合に当該四角形ポリゴンを表示対象とするポリゴンデータの処理方法において、前記３次元物体の表面を表現する各四角形ポリゴンの頂点座標データをメモリにセーブさせ、表示画像処理部が、前記メモリにセーブさせた四角形ポリゴンの頂点座標データを用いて、四角形ポリゴンの２本の対角線又はその延長線に対してそれら対角線上にない四角形ポリゴンの頂点から垂線を降ろした場合の４本の垂線の長さを演算する第１演算手順と、前記第１演算手順で得られた各垂線の長さを比較し、最長の垂線に対応した頂点とそれに隣接した頂点で構成される三角形を選択する選択手順と、前記選択手順で選択された三角形の頂点座標データを用いて３次元物体の外側へ向けて立てた法線ベクトルを求める第２演算手順とを実行し、前記第２演算手順で求められた法線ベクトルが視点側への成分を有している場合に当該四角形ポリゴンを表示対象とすることを特徴としたポリゴンデータの処理方法に係る。
【００１３】
本発明は、各四角形ポリゴンにおける表示／非表示を判定するための法線ベクトルを求める上で、その演算基準となる三角形の選択方式に特徴がある。
即ち、それぞれの四角形ポリゴンについて、一方の対角線で分割した場合に得られる２個の三角形と、他方の対角線で分割した場合に得られる２個の三角形とからなる４個の三角形の内、各対角線を底辺とする三角形の頂点から対角線又はその延長線に降ろした垂線の長さが最長となる三角形を選択し、その三角形の各頂点座標データを用いて法線ベクトルを演算するようにしている。
従って、４個の三角形の内から法線ベクトルの演算結果が不定になる可能性が高い三角形を選択することがなく、常に最も安定的に法線ベクトルを演算できる三角形が選択でき、結果的に、表示すべきポリゴンの欠落や表示画像のチラツキを防止できる。
【００１４】
【発明の実施の形態】
以下、本発明のポリゴンデータの処理方法を、図１から図４を用いて詳細に説明する。
先ず、図１は業務用ゲーム機のシステム回路図を示す。
同図において、1はＣＰＵ、2はシステム全体を制御するＳＣＵ(System Control Unit)、3はハンドルレバーやボタンの操作入力手段を備えた操作部、3aは操作部3とシステムとの間の入出力インターフェイス(Ｉ/Ｏ-ＣＯＮＴ)、4はワークメモリであるＲＡＭ、5はゲーム実行過程でキャラクタ(３次元物体)の表面を表現する四角形ポリゴンデータを生成するポリゴン生成部、6はポリゴン生成部5が生成した各四角形ポリゴンデータを書き込むためのＶＲＡＭ(Video-RAM)、7はポリゴン生成部5から得られる四角形ポリゴンデータに基づいて表示画像データを構成する表示画像処理部、8は表示画像処理部7の処理したフレームデータが書き込まれるＶＲＡＭ、9はサウンド用のプロセッサやメモリからなるサウンド部、10は画像処理部7が出力する表示画像データとサウンド部9が出力する音声データを変調する変調回路、11は変調回路10から得られる画像信号と音声信号を再生して画像表示と音声出力を行うディスプレイ、12はゲーム実行プログラムを格納したＲＯＭボードであり、データ処理を実行する各モジュール2,3a,4,5,7,9,12はＣＰＵ1のメインバスにバス接続されている。
そして、ゲームの実行に際しては、操作部3からＩ/Ｏ-ＣＯＮＴ3aを介して入力される操作データに応じてＲＯＭボード12からプログラムがＲＡＭ4へ読出され、そのプログラムに基づくインストラクションに対応した画像データはポリゴン生成部5と表示画像処理部7により、また音声データはサウンド部9で処理されて、キャラクタや音声がディスプレイ11で再生されるようになっている。
【００１５】
前記のシステム回路は通常の業務用ゲーム機で採用されている構成であるが、この実施形態の業務用ゲーム機の特徴は表示画像処理部7における四角形ポリゴンデータの処理方式にあり、より具体的には、ポリゴン生成部5から得られた四角形ポリゴンデータが視点側のデータか後面側のデータかを判定して表示画像を構成するための前処理手順に特徴がある。
【００１６】
先ず、ゲーム実行中には、操作部3の入力に対応して各種キャラクタとその表示態様がフレーム単位で構成されるが、ポリゴン生成部5は３次元物体であるキャラクタの表面を表現するための四角形ポリゴンデータを生成し、１フレーム毎に多数の四角形ポリゴンで構成されたキャラクタデータをＶＲＡＭ6へ書き込み、そのフレームデータを読出して表示画像処理部7へ転送する。
ここに、四角形ポリゴンデータは３次元物体の表面を構成するものであるため、視点側と後面側の四角形ポリゴンデータを含んでいる。
尚、一般に、各四角形ポリゴンのデータは頂点座標データとシェーディングデータ等からなるものであるが、この実施形態の特徴においては各四角形ポリゴンの頂点座標データのみが問題となるため、後の説明ではシェーディングデータ等の処理内容については省略する。
【００１７】
今、一例として、ゲーム実行中に表現されるキャラクタが図４に示した楕円形の球体状物体51とする。
その場合、ポリゴン生成部5は前記球体状物体51の表面を表現する各四角形ポリゴン51-iを生成し、そのデータをＶＲＡＭ6へ書き込むが、上記のように視点側と後面側の四角形ポリゴンを全て含んでいる。
そして、１フレーム分の四角形ポリゴンがＶＲＡＭ6へ書き込まれると、そのデータは表示画像処理部7へ順次転送され、表示画像処理部7では各四角形ポリゴンの頂点座標データを用いて個別ポリゴンのなす平面における前記球体状物体51の外側へ向かう法線ベクトルを求め、法線ベクトルが視点側へ向かう成分を有している場合にのみ、その四角形ポリゴンのデータを表示対象としてＶＲＡＭ8へ書き込むことになるが、この実施形態は前記の法線ベクトルの求め方に次のような特殊な手順を採用している。
但し、ここでは、図４の四角形ポリゴン51-iによる表面の表現状態において、上記の[発明が解決しようとする課題]で検討したように視点側か後面側かの判定が微妙になる四角形ポリゴン52-aに着目し、そのデータ処理手順を図３のフローチャートを参照しながら説明する。
【００１８】
先ず、表示画像処理部7は、四角形ポリゴン52-aのデータ転送を受けると、そのデータを内蔵メモリに一旦セーブし、各頂点P1,P2,P3,P4の座標データを用いてその四角形ポリゴン52-aに係る２本の対角線P1-P3,P2-P4の数式を求める(S1,S2)。
【００１９】
次に、前記手順で求めた各数式を用いて、図２の(Ａ)と(Ｂ)に示すように、対角線P1-P3に対して頂点P2及びP4から垂線を降ろして各垂線P2-H2及びP4-H4の長さを求め、また対角線P2-P4に対して頂点P1及びP3から垂線を降ろして各垂線P1-H1及びP3-H3の長さを求める(S3)。
具体的には、対角線P1-P3上の点と頂点P2及びP4との最小距離を求めてその最小距離を垂線P2-H2及びP4-H4の長さとし、また対角線P2-P4上の点と頂点P1及びP3との最小距離を求めてその最小距離を垂線P1-H1及びP3-H3の長さとする。
尚、この場合には各垂線の足H2,H4,H1,H3が各対角線P1-P3,P2-P4の上に位置するが、四角形ポリゴンの形によっては対角線の延長上に位置する場合もある。
【００２０】
次に、前記で求められた各垂線P2-H2,P4-H4,P1-H1,P3-H3の長さを比較し、その長さが最大の垂線を求め、その垂線に対応する三角形を選択する(S4,S5)。
即ち、この実例であれば、P2-H2＜P4-H4＜P3-H3＜P1-H1となって垂線P1-H1が最長となり、その垂線P1-H1に係る三角形(P1,P2,P4)が選択される。
【００２１】
前記の基準で三角形(P1,P2,P4)が選択されると、その各頂点P1,P2,P4の座標データを用いて、三角形(P1,P2,P4)のなす平面に対して垂直であって、前記の球体状物体(３次元物体)51の外側へ向かう法線ベクトルを求める(S6)。尚、法線ベクトルの求め方は上記に説明した外積演算による。
【００２２】
ここで、従来の法線ベクトルの求め方と比較してみると、従来方式では四角形ポリゴン52-aの対角線で分割される４個の三角形の内から任意に選択されるため、図５に示すように三角形(P1,P2,P3)が選択された場合には頂点P2が対角線P1-P3に極めて接近しているために法線ベクトルが不定になる可能性があるが、前記基準で選択された三角形(P1,P2,P4)では対角線P2-P4に対して頂点P1が大きく離隔しており、外積演算による法線ベクトルが不定になることはない。
また、前記基準で選択された三角形(P1,P2,P4)の対角線P2-P4は、従来方式で三角形(P1,P2,P3)が選択された場合の垂線P2-H4よりも十分に長く、頂点P2,P4が接近しているような四角形ポリゴンに対しても、より良い条件で法線ベクトルを求めることができる。
一方、この実施形態では、従来のように任意に三角形を選択していた場合と比較して、４本の垂線の長さを求める演算と求めた長さを比較する演算が追加されることになる。
しかし、それらは比較的単純な演算であり、データ処理に係るインストラクション数をあまり増大させずに実行できるため、ＣＰＵ1への負担もそれほど問題とならない。
【００２３】
以上の手順によって、四角形ポリゴン52-aの法線ベクトルが求められると、表示画像処理部7はその法線ベクトルが視点方向への成分を有しているか否か、即ち、図２の法線ベクトルＮaと視線ベクトルの内積を演算し、その演算結果の正負に基づいて前記成分の有無を判断する。
そして、前記成分が存在した場合には、四角形ポリゴン52-aに係るデータをＶＲＡＭ8へ書き込み、逆に前記成分が存在しない場合には、そのデータを書き込むことなく消去する(S7→S8,S9)。
尚、この実施形態では四角形ポリゴン52-aに着目したデータ処理を説明したが、表示画像処理部7はＶＲＡＭ8に書き込まれたフレームデータの全ての四角形ポリゴン52-iについて同様の処理を実行する。
【００２４】
このようにして、前記の球体状物体51の表面を表現する各四角形ポリゴン51-iは順次同様の手順で処理され、視点側の四角形ポリゴンのみが１フレーム分だけＶＲＡＭ8に書き込まれると、表示画像処理部7はそのフレームデータを変調回路10側へ読み出し、同フレームデータがディスプレイ11に表示される。
この実施形態によると、各四角形ポリゴン51-iの表示／非表示の判定が前記の一定基準に基づいてなされるため、表示されるべきポリゴンの欠落や不安定な表示状態を解消でき、表示画像の異常なチラツキを防止できる。
【００２５】
【発明の効果】
本発明のポリゴンデータの処理方法は、以上の構成を有していることにより、次のような効果を奏する。
３次元物体の表面を多数の四角形ポリゴンを組み合わせて表現し、各四角形ポリゴンが視点側か後面側かを判定して視点側の四角形ポリゴンのみを表示対象とするデータ処理方法において、各四角形ポリゴンの表示／非表示に合理的判定基準を設けた処理を実行しているため、表示されるべきポリゴンの欠落や不安定な表示状態を解消すると共に、３次元物体の曲率半径が小さい領域での異常なチラツキ現象を防止することができる。
【図面の簡単な説明】
【図１】本発明のポリゴンデータの処理方法を実施する業務用ゲーム機のシステム回路図である。
【図２】法線ベクトルを求めるための三角形を選択する手順を示す参考図である。
【図３】四角形ポリゴンの対角線で分割される４個の三角形から法線ベクトルを求めるための三角形を選択する手順、及び法線ベクトルに基づいて四角形ポリゴンの表示／非表示を判定する手順を示すフローチャートである。
【図４】３次元物体の表面を四角形ポリゴンで表現した場合の一例を示す図である。但し、視点側の四角形ポリゴンのみを示してある。
【図５】四角形ポリゴンから任意的な三角形を選択して法線ベクトルを求める場合に、法線ベクトルの演算が不定になる可能性がある選択条件を示す図である。
【図６】法線ベクトルの演算が不定化した場合の３次元物体の表示状態を示す図である。
【符号の説明】
1…ＣＰＵ、2…ＳＣＵ、3…操作部、3a…Ｉ/Ｏ-ＣＯＮＴ、4…ＲＡＭ、5…ポリゴン生成部、6,8…ＶＲＡＭ、7…表示画像処理部、9…サウンド部、10…変調回路、11…ディスプレイ、12…ＲＯＭボード、Ｎa…法線ベクトル。
【図１】
0004204114.tif 000002
【図２】
0004204114.tif 000003
【図３】
0004204114.tif 000004
【図４】
0004204114.tif 000005
【図５】
0004204114.tif 000006
【図６】
0004204114.tif 000007