コンピュータグラフイックスのデータ処理方法及び装置
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータグラフイックスのデータ処理方法及び装置、特にコンピュータグラフィックスの表示装置のスクリーンに表示しようとする平面多角形(ポリゴン)が視点の前後にまたがった時の処理を簡略化したZ−クリッピング機能を有するコンピュータグラフイックスのデータ処理方法及び装置に関するものである。
【0002】
【従来の技術】テレビゲーム等で用いるコンピュータグラフイックスを利用した装置では、スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、ポリゴンをスクリーンの大きさに合うように、ポリゴン自体を加工している。図20はポリゴン100をスクリーン101に表示する様子を示しており、視点110からの視野に対してポリゴン100は全て前方にあり、ポリゴン100がスクリーン101に画像100Aとして表示される。しかし、図21に示すようにポリゴン102が視点の前後にまたがる場合、スクリーン101と視点110とを結ぶ所でポリゴン102を分割し、視点の後方の部分すなわち視野領域外に存在する部分を除外してポリゴン102を斜線部に示すように変形させている。
【0003】
【発明が解決しようとする課題】上述のように従来の装置では、ポリゴンがスクリーンに対する視点の付近に存在するとき、又は視点の前後にまたがって存在するとき、透視変換を行なう前にポリゴンを所定の奥行き座標で分割し、視点の前方の頂点で構成されたポリゴンのみを抽出して透視変換し、それをスクリーンに表示するようになっている。このため、ポリゴンがスクリーンに納まるか否かのチェックを各ポリゴンについて実行しなければならず、また変形に要する演算を行なわなければならない。従って、ポリゴンを高速にスクリーンに表示することができない。
【0004】本発明は上述のような事情よりなされたものであり、本発明の目的は、分割処理を行なわずに透視変換後のポリゴンを、高速にかつ正確に表示できるZ−クリッピング機能を有するコンピュータグラフイックスのデータ処理方法及び装置を提供することにある。
【0005】
【課題を解決するための手段】本発明の装置は、ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイックスのデータ処理装置に関するもので、本発明の上記目的は、前記スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、前記視点の前後にまたがるポリゴンの辺の2つの点の3次元座標を視点奥行き方向を正として透視変換の式により座標変換し、座標変換後の2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線と前記スクリーンの枠との交点を求め、求めた交点と前記正の点とを結ぶ線分を透視変換後の辺とする変換手段を描画部に設け、前記視点の前後にまたがったポリゴンを前記描画部にてフレームメモリ書込み時に変換して表示することによって達成される。さらに、前記変換手段は、前記透視変換前のポリゴンの各頂点の座標(x,y,z)を視点奥行き方向をzの正に大きくなる方向として透視変換の式により座標変換し、前記座標変換前のポリゴンの辺に対応する前記座標変換後の辺にて、該辺の2つの点の前記zの符号を検査し、共に正であれば前記2つの点を結ぶ線分を稜線とし、一方が負であれば前記2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線を稜線とし、共に負であれば稜線化の対象外とし、前記各稜線と前記スクリーンの枠とで囲まれた領域を変換後のポリゴンとすることによって効果的に達成される。また、本発明の方法は、ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイック方法に関するもので、本発明の上記目的は、前記スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、前記視点の前後にまたがるポリゴンの辺の2つの点の3次元座標を視点奥行き方向を正として透視変換の式により座標変換し、座標変換後の2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線と前記スクリーンの枠との交点を求め、求めた交点と前記正の点とを結ぶ線分を透視変換後の辺として描画するようにすることよって達成される。さらに、透視変換前の前記ポリゴンの各頂点の座標(x,y,z)を視点奥行き方向をzの正に大きくなる方向として透視変換の式により座標変換し、前記座標変換前のポリゴンの辺に対応する座標変換後の辺にて、該辺の2つの点の前記zの符号を検査し、共に正であれば前記2つの点を結ぶ線分を稜線とし、一方が負であれば前記2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線を稜線とし、共に負であれば稜線化の対象外とし、前記各稜線と前記スクリーンの枠とで囲まれた領域を透視変換後のポリゴンとして描画するようにすることよって達成される。
【0006】
【作用】本発明では、ポリゴンがスクリーンに対してどうなのかは演算部では評価せず、ポリゴンを透視変換してスクリーンに描画する時に、周知の透視変換の式によっては正常に像を成さない視点の前後にまたがったポリゴンを、透視変換した前後の各頂点座標データ及びスクリーン設定データに基づいて変換し、スクリーンに描画する。このため、演算部の処理を簡略化でき、高速化できる。
【0007】
【実施例】図1は本発明の一実施例を示しており、CPU1はキーボード等の操作部2と協働して全体の制御を実行し、パラメータメモリ3には3次元データ加工用のパラメータ(回転、移動等)が格納されている。ROM又はRAMのデータメモリ5には3次元モデルが格納されており、演算部4は、パラメータメモリ3からのパラメータ及びデータメモリ5からの3次元モデルを用いてモデリング変換及び視野変換を行なうと共に、画面上の輝度値を算出する。つまり、演算部4は3次元モデルデータをパラメータに従って回転、移動すると共に、物体表面の輝度をポリゴン毎に算出する。演算部の演算結果は透視変換部6に送られ、2次元のスクリーンに投影される。そして、ポリゴン展開部7は、透視変換された3次元モデルデータを分解し、分解したポリゴンをZソート部8に送る。Zソート部8は、ポリゴン単位で視野に対する奥行き方向順の並べ換えを行ない、描画部9はポリゴンをスクリーンに合わせてフレームメモリ10に書込み、その後に読出して色付け部11に送る。
【0008】本発明では、ポリゴンがスクリーンに対してどのような位置関係になるかは演算部4では評価せず、描画部9がポリゴンをスクリーンに描画するときに、透視変換部6の透視変換によって得られる式を利用してフレームメモリ10に書込む。図2に示すように、視点奥行き方向をzの正に大きくなる方向とし、視点右手方向をxの正に大きくなる方向とし、視点上方向をyの正に大きくなる方向とする。この場合、図3に示すように、スクリーンをz=h(h>0)に置くと、ポリゴンのある点P(x,y,z)は、スクリーン上の点P′(x′,y′,z′)に変換されるのは次の数1で表わされる。
【0009】
【数1】
ここにおいて、数1でスクリーンに現われる点は、z>0なので図4のようになり、各頂点P1,P2,P3を結ぶ領域内をポリゴンとしてフレームメモリ10に書込む。そして、上記ポリゴンのうち、例えば頂点P3が視点の後方にあるとすれば、数1でz<0なので図5に示すような点P3′となる。しかし、実際にポリゴンとして書込むときは、点P′3は反対方向ということがz<0から分るので、点P1′とP3′を通る直線上で点P1′を端点としP3′側と反対側の半直線、点P1′とP2′を結ぶ線、点P2′とP3′を通る直線上で点P′を端点としP3′側と反対側の半直線とスクリーン枠とで囲まれた領域内(図5中の斜線部)をポリゴンとする。すなわち、透視変換前のポリゴンの各頂点P1,P2,P3の座標(x,y,z)を周知の透視変換の式である上記数1により座標変換し、座標変換前のポリゴンの辺に対応する座標変換後の辺にて、該辺の2つの点のzの符号を検査し、点P1′とP2′のように共に正であれば2つの点を結ぶ線分を稜線とし、点P1′とP3′,点P2′とP3′のように一方が負であれば2つの点を通る直線上で符号が正の点を端点とし符号が負の点側と反対側の半直線を稜線とし、各稜線とスクリーンの枠とで囲まれた領域を変換後のポリゴンとする。
【0010】図6は描画部9の詳細を示しており、カラーデータメモリ20はポリゴンの色指定データを格納し、格納されたカラーデータはフレームバッファ書込制御部34に送られる。図7に示すようなスクリーン設定データ(XY中心値、XY開始値、XY終了値)はスクリーンデータメモリ21に格納され、X方向スクリーンサイズイング制御部30及びY方向スクリーンサイズイング制御部23に入力される。スクリーン設定データは、画面の大きさが有限なために画面サイズを決定させるためのデータである。ポイントデータバッファ22は、ポリゴンの頂点データを格納する。この場合、図8に示すように右回りなどで順序をもたせ、ポリゴンの各頂点に対してxyz値を格納する。
【0011】Y方向スクリーンサイズイング制御部23は、入力されるスクリーンデータとポイントデータとを比較しながらフレームメモリ10のY最小値24及びそのときの処理の頂点の番号25を求めてX方向スクリーンサイズイング制御部30に送る。ただし、y方向の画面有効範囲にないポリゴンは次段にデータを送らないで終了し、次のポリゴンの処理に移行する。図9の例ではポリゴンA及びBは終了し、ポリゴンC〜Eは処理を続行する。そして、X方向スクリーンサイズイング制御部30は、Y方向スクリーンサイズイング制御部23から入力したY最小値24及び頂点の番号25と、ポイントデータバッファ22から入力したポイントデータとから、図10に示すように稜線1及び稜線2の傾きを逆数テーブル26から算出し、YPの位置でのX始点値及びX終点値を導き、任意に設定されたYP値をY値として次段のフレームバッファ書込制御部34へ送る。次に、Y値に「1」を加えた値を新たなYP値とし、更に、上述と同様の動作を繰返し、YP値が画面の終了又は、ポリゴンの終了になった時点に終了し、次のポリゴンの処理に移る。例えば図11に示すようなポリゴンが存在すれば点P2のY最小値からP2P3,P3P4,P4P0が稜線し、P2P1,P1P0が稜線2としてYの増加する方向、すなわち上方向へと処理が進行して行き、稜線1及び2で囲まれた部分をポリゴンとする。また、フレームバッファ書込制御部34は、X方向スクリーンサイズイング制御部30から送られて来るX始点値、X終点値、Y値からフレームメモリ10のアドレスを算出し、カラーデータメモリ20からのカラーデータからフレームメモリ10のデータを出力し、書込制御信号CSを出力する。読出の場合は、別途読出制御信号CSがフレームメモリ10に入力される。
【0012】次に、ポリゴン描画例を具体的に示して説明する。実際はn多角形で描画できるが、ここでは簡単な三角形の例を挙げる。図12〜図15で●印はz≧0を示し、×印はz<0である。また、点PnのXY座標をxn,yn とする。
【0013】図12の例は頂点P0,P1,P2が共にz≧0の場合であり、Y最小値をy1とし、線分P1P2及びP2P0を稜線し、線分は頂点P1,P0を稜線2として稜線1及び2で囲まれた領域をポリゴンとする。図13は頂点P0,P1がz≧0、頂点P2がz<0でかつy2>y0,y2>y1の場合である。この場合、Y最小値をY開始値とし、線分P2P1及びP1P0を稜線2、線分P2P0と画面のX開始値と交わる位置まで並びにX開始値を稜線し、それより上方の線分P2P0の線上の頂点P0を最大値とする位置までを稜線2として両者に囲まれた部分をポリゴンとする。また、図14は頂点P0,P1がz≧0、頂点P2がz<0でかつy2≦y0、y2>y1の場合である。Y最小値をY開始値とし、Y開始値から線分P0P2を結ぶ直線とX開始値の直線とが交わる位置までのX開始値を稜線1とする。また、直線P2P1とY開始値とが交わる位置から点P1までと、線分P1P0と、直線P2P0とX開始値とが交わる位置から点P0までを稜線2とし、稜線1及び2で囲まれた部分をポリゴンとしている。更に、図15の例では頂点P0,P1がz≧0、頂点P2がz<0でかつy2≦y0、y2≦y1の場合である。Y最小値をy1とし、稜線1は直線P2P1と、X開始値と交わる位置からP1と、その上方からY終了値までのX開始値としている。稜線2は、線分P1P0と、直線P0P2とY終了値とが交わる位置から点P0までとして、稜線1及び2で囲まれた部分をポリゴンとする。
【0014】続いて、視点の後方にポリゴンの頂点が2つ以上存在する場合のポリゴン描画例を具体的に示して説明する。図16〜図19で●印はz≧0を示し、×印はz<0である。また、点PnのXY座標をxn,ynとする。
【0015】図16は透視変換前の四角形の例を示しており、同図のように4つの頂点P0,P1,P2,P3のうち、視点の後方に2つの頂点P1,P2が存在する場合、2つの頂点P0,P3は視点の前方にあるので正しい像を結ぶが、頂点P1,P2は後方にあるので正しい像を結ばない。図17は、図16の四角形を演算部4により視野変換(回転、移動等)した後、前記数1による透視変換によって得られた各頂点P0,P1,P2,P3の位置の例であり、透視変換後の各頂点をそのまま結ぶと正しい像を成さない。そこで描画部9では、上述した三角形の例と同様に次の処理により得られたポリゴンをフレームメモリ10に書込む。
【0016】図17の例では、透視変換後のポリゴン頂点P1,P2(数1にてz<0)は正しい値ではないので描画にはそれぞれ、正しい像である線分P0P3の稜線1,線分P3P2はP2がz<0なので図17中のP2P3の延長線とY開始値とが交わる位置をP2’として線分P3P2’の稜線2,線分P1P2はともに正しくない(z<0)即ち視点の後方にありスクリーン上にありえないのでスキップ,線分P1P0はP1がz<0なのでP1P0の延長線とX開始値とが交わる位置をP1’として線分P0P1’の稜線3を用いる。そして、稜線1(線分),稜線2(P3を端点とする半直線)及び稜線3(P0を端点とする半直線)で囲まれた部分をポリゴンとし、スクリーン枠内に存在する部分すなわち図17中の稜線1,2,3,4及び5で囲まれた領域内を描画対象のポリゴンとしてフレームメモリ10に書込む。
【0017】視点の後方に3つ以上の頂点が存在する場合も同様であり、図18の例にある多角形(n+1角形:n≧3)の場合、正しい像はP0であり、透視変換後のP0を端点とするP1P0の延長線上の半直線,透視変換後のP0を端点とするPnP0の延長線上の半直線で囲まれた部分をポリゴンとし、スクリーン枠内に存在する部分が描画の対象となる。例えば、透視変換によって得られた各頂点P0〜Pnが図19のようになれば、図19中の稜線1,2及び3で囲まれた領域内が描画対象のポリゴンとなり、フレームメモリ10に書込まれる。
【0018】
【発明の効果】以上のように本発明によれば、分割処理を行なわずに透視変換後のポリゴンを表示するようにしているので、演算部の処理を簡略でき高速化が図れる。その間、CPUは他の処理を実行でき、システムの効率化を図ることができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示すブロック図である。
【図2】本発明の座標を示す図である。
【図3】本発明の座標変換を説明するための図である。
【図4】視点の前方にあるポリゴンの表示例である。
【図5】視点の前後をまたぐポリゴンの表示例である。
【図6】描画部の詳細を示すブロック構成図である。
【図7】スクリーンデータを説明するための図である。
【図8】ポリゴンの頂点データを説明するための図である。
【図9】ポリゴンと画面有効範囲との関係を説明する図である。
【図10】スクリーンサイズイングを説明するための図である。
【図11】スクリーンサイズイングを説明するための図である。
【図12】ポリゴンの描画例を説明するための図である。
【図13】ポリゴンの描画例を説明するための図である。
【図14】ポリゴンの描画例を説明するための図である。
【図15】ポリゴンの描画例を説明するための図である。
【図16】ポリゴンの描画例を説明するための図である。
【図17】ポリゴンの描画例を説明するための図である。
【図18】ポリゴンの描画例を説明するための図である。
【図19】ポリゴンの描画例を説明するための図である。
【図20】ポリゴンとスクリーン、視点の関係を示す図である。
【図21】従来の処理を説明するための図である。
【符号の説明】
1 CPU
2 操作部
4 演算部
6 透視変換部
9 描画部
100、102 ポリゴン
101 スクリーン
【0001】
【産業上の利用分野】本発明はコンピュータグラフイックスのデータ処理方法及び装置、特にコンピュータグラフィックスの表示装置のスクリーンに表示しようとする平面多角形(ポリゴン)が視点の前後にまたがった時の処理を簡略化したZ−クリッピング機能を有するコンピュータグラフイックスのデータ処理方法及び装置に関するものである。
【0002】
【従来の技術】テレビゲーム等で用いるコンピュータグラフイックスを利用した装置では、スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、ポリゴンをスクリーンの大きさに合うように、ポリゴン自体を加工している。図20はポリゴン100をスクリーン101に表示する様子を示しており、視点110からの視野に対してポリゴン100は全て前方にあり、ポリゴン100がスクリーン101に画像100Aとして表示される。しかし、図21に示すようにポリゴン102が視点の前後にまたがる場合、スクリーン101と視点110とを結ぶ所でポリゴン102を分割し、視点の後方の部分すなわち視野領域外に存在する部分を除外してポリゴン102を斜線部に示すように変形させている。
【0003】
【発明が解決しようとする課題】上述のように従来の装置では、ポリゴンがスクリーンに対する視点の付近に存在するとき、又は視点の前後にまたがって存在するとき、透視変換を行なう前にポリゴンを所定の奥行き座標で分割し、視点の前方の頂点で構成されたポリゴンのみを抽出して透視変換し、それをスクリーンに表示するようになっている。このため、ポリゴンがスクリーンに納まるか否かのチェックを各ポリゴンについて実行しなければならず、また変形に要する演算を行なわなければならない。従って、ポリゴンを高速にスクリーンに表示することができない。
【0004】本発明は上述のような事情よりなされたものであり、本発明の目的は、分割処理を行なわずに透視変換後のポリゴンを、高速にかつ正確に表示できるZ−クリッピング機能を有するコンピュータグラフイックスのデータ処理方法及び装置を提供することにある。
【0005】
【課題を解決するための手段】本発明の装置は、ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイックスのデータ処理装置に関するもので、本発明の上記目的は、前記スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、前記視点の前後にまたがるポリゴンの辺の2つの点の3次元座標を視点奥行き方向を正として透視変換の式により座標変換し、座標変換後の2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線と前記スクリーンの枠との交点を求め、求めた交点と前記正の点とを結ぶ線分を透視変換後の辺とする変換手段を描画部に設け、前記視点の前後にまたがったポリゴンを前記描画部にてフレームメモリ書込み時に変換して表示することによって達成される。さらに、前記変換手段は、前記透視変換前のポリゴンの各頂点の座標(x,y,z)を視点奥行き方向をzの正に大きくなる方向として透視変換の式により座標変換し、前記座標変換前のポリゴンの辺に対応する前記座標変換後の辺にて、該辺の2つの点の前記zの符号を検査し、共に正であれば前記2つの点を結ぶ線分を稜線とし、一方が負であれば前記2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線を稜線とし、共に負であれば稜線化の対象外とし、前記各稜線と前記スクリーンの枠とで囲まれた領域を変換後のポリゴンとすることによって効果的に達成される。また、本発明の方法は、ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイック方法に関するもので、本発明の上記目的は、前記スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、前記視点の前後にまたがるポリゴンの辺の2つの点の3次元座標を視点奥行き方向を正として透視変換の式により座標変換し、座標変換後の2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線と前記スクリーンの枠との交点を求め、求めた交点と前記正の点とを結ぶ線分を透視変換後の辺として描画するようにすることよって達成される。さらに、透視変換前の前記ポリゴンの各頂点の座標(x,y,z)を視点奥行き方向をzの正に大きくなる方向として透視変換の式により座標変換し、前記座標変換前のポリゴンの辺に対応する座標変換後の辺にて、該辺の2つの点の前記zの符号を検査し、共に正であれば前記2つの点を結ぶ線分を稜線とし、一方が負であれば前記2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線を稜線とし、共に負であれば稜線化の対象外とし、前記各稜線と前記スクリーンの枠とで囲まれた領域を透視変換後のポリゴンとして描画するようにすることよって達成される。
【0006】
【作用】本発明では、ポリゴンがスクリーンに対してどうなのかは演算部では評価せず、ポリゴンを透視変換してスクリーンに描画する時に、周知の透視変換の式によっては正常に像を成さない視点の前後にまたがったポリゴンを、透視変換した前後の各頂点座標データ及びスクリーン設定データに基づいて変換し、スクリーンに描画する。このため、演算部の処理を簡略化でき、高速化できる。
【0007】
【実施例】図1は本発明の一実施例を示しており、CPU1はキーボード等の操作部2と協働して全体の制御を実行し、パラメータメモリ3には3次元データ加工用のパラメータ(回転、移動等)が格納されている。ROM又はRAMのデータメモリ5には3次元モデルが格納されており、演算部4は、パラメータメモリ3からのパラメータ及びデータメモリ5からの3次元モデルを用いてモデリング変換及び視野変換を行なうと共に、画面上の輝度値を算出する。つまり、演算部4は3次元モデルデータをパラメータに従って回転、移動すると共に、物体表面の輝度をポリゴン毎に算出する。演算部の演算結果は透視変換部6に送られ、2次元のスクリーンに投影される。そして、ポリゴン展開部7は、透視変換された3次元モデルデータを分解し、分解したポリゴンをZソート部8に送る。Zソート部8は、ポリゴン単位で視野に対する奥行き方向順の並べ換えを行ない、描画部9はポリゴンをスクリーンに合わせてフレームメモリ10に書込み、その後に読出して色付け部11に送る。
【0008】本発明では、ポリゴンがスクリーンに対してどのような位置関係になるかは演算部4では評価せず、描画部9がポリゴンをスクリーンに描画するときに、透視変換部6の透視変換によって得られる式を利用してフレームメモリ10に書込む。図2に示すように、視点奥行き方向をzの正に大きくなる方向とし、視点右手方向をxの正に大きくなる方向とし、視点上方向をyの正に大きくなる方向とする。この場合、図3に示すように、スクリーンをz=h(h>0)に置くと、ポリゴンのある点P(x,y,z)は、スクリーン上の点P′(x′,y′,z′)に変換されるのは次の数1で表わされる。
【0009】
【数1】
ここにおいて、数1でスクリーンに現われる点は、z>0なので図4のようになり、各頂点P1,P2,P3を結ぶ領域内をポリゴンとしてフレームメモリ10に書込む。そして、上記ポリゴンのうち、例えば頂点P3が視点の後方にあるとすれば、数1でz<0なので図5に示すような点P3′となる。しかし、実際にポリゴンとして書込むときは、点P′3は反対方向ということがz<0から分るので、点P1′とP3′を通る直線上で点P1′を端点としP3′側と反対側の半直線、点P1′とP2′を結ぶ線、点P2′とP3′を通る直線上で点P′を端点としP3′側と反対側の半直線とスクリーン枠とで囲まれた領域内(図5中の斜線部)をポリゴンとする。すなわち、透視変換前のポリゴンの各頂点P1,P2,P3の座標(x,y,z)を周知の透視変換の式である上記数1により座標変換し、座標変換前のポリゴンの辺に対応する座標変換後の辺にて、該辺の2つの点のzの符号を検査し、点P1′とP2′のように共に正であれば2つの点を結ぶ線分を稜線とし、点P1′とP3′,点P2′とP3′のように一方が負であれば2つの点を通る直線上で符号が正の点を端点とし符号が負の点側と反対側の半直線を稜線とし、各稜線とスクリーンの枠とで囲まれた領域を変換後のポリゴンとする。
【0010】図6は描画部9の詳細を示しており、カラーデータメモリ20はポリゴンの色指定データを格納し、格納されたカラーデータはフレームバッファ書込制御部34に送られる。図7に示すようなスクリーン設定データ(XY中心値、XY開始値、XY終了値)はスクリーンデータメモリ21に格納され、X方向スクリーンサイズイング制御部30及びY方向スクリーンサイズイング制御部23に入力される。スクリーン設定データは、画面の大きさが有限なために画面サイズを決定させるためのデータである。ポイントデータバッファ22は、ポリゴンの頂点データを格納する。この場合、図8に示すように右回りなどで順序をもたせ、ポリゴンの各頂点に対してxyz値を格納する。
【0011】Y方向スクリーンサイズイング制御部23は、入力されるスクリーンデータとポイントデータとを比較しながらフレームメモリ10のY最小値24及びそのときの処理の頂点の番号25を求めてX方向スクリーンサイズイング制御部30に送る。ただし、y方向の画面有効範囲にないポリゴンは次段にデータを送らないで終了し、次のポリゴンの処理に移行する。図9の例ではポリゴンA及びBは終了し、ポリゴンC〜Eは処理を続行する。そして、X方向スクリーンサイズイング制御部30は、Y方向スクリーンサイズイング制御部23から入力したY最小値24及び頂点の番号25と、ポイントデータバッファ22から入力したポイントデータとから、図10に示すように稜線1及び稜線2の傾きを逆数テーブル26から算出し、YPの位置でのX始点値及びX終点値を導き、任意に設定されたYP値をY値として次段のフレームバッファ書込制御部34へ送る。次に、Y値に「1」を加えた値を新たなYP値とし、更に、上述と同様の動作を繰返し、YP値が画面の終了又は、ポリゴンの終了になった時点に終了し、次のポリゴンの処理に移る。例えば図11に示すようなポリゴンが存在すれば点P2のY最小値からP2P3,P3P4,P4P0が稜線し、P2P1,P1P0が稜線2としてYの増加する方向、すなわち上方向へと処理が進行して行き、稜線1及び2で囲まれた部分をポリゴンとする。また、フレームバッファ書込制御部34は、X方向スクリーンサイズイング制御部30から送られて来るX始点値、X終点値、Y値からフレームメモリ10のアドレスを算出し、カラーデータメモリ20からのカラーデータからフレームメモリ10のデータを出力し、書込制御信号CSを出力する。読出の場合は、別途読出制御信号CSがフレームメモリ10に入力される。
【0012】次に、ポリゴン描画例を具体的に示して説明する。実際はn多角形で描画できるが、ここでは簡単な三角形の例を挙げる。図12〜図15で●印はz≧0を示し、×印はz<0である。また、点PnのXY座標をxn,yn とする。
【0013】図12の例は頂点P0,P1,P2が共にz≧0の場合であり、Y最小値をy1とし、線分P1P2及びP2P0を稜線し、線分は頂点P1,P0を稜線2として稜線1及び2で囲まれた領域をポリゴンとする。図13は頂点P0,P1がz≧0、頂点P2がz<0でかつy2>y0,y2>y1の場合である。この場合、Y最小値をY開始値とし、線分P2P1及びP1P0を稜線2、線分P2P0と画面のX開始値と交わる位置まで並びにX開始値を稜線し、それより上方の線分P2P0の線上の頂点P0を最大値とする位置までを稜線2として両者に囲まれた部分をポリゴンとする。また、図14は頂点P0,P1がz≧0、頂点P2がz<0でかつy2≦y0、y2>y1の場合である。Y最小値をY開始値とし、Y開始値から線分P0P2を結ぶ直線とX開始値の直線とが交わる位置までのX開始値を稜線1とする。また、直線P2P1とY開始値とが交わる位置から点P1までと、線分P1P0と、直線P2P0とX開始値とが交わる位置から点P0までを稜線2とし、稜線1及び2で囲まれた部分をポリゴンとしている。更に、図15の例では頂点P0,P1がz≧0、頂点P2がz<0でかつy2≦y0、y2≦y1の場合である。Y最小値をy1とし、稜線1は直線P2P1と、X開始値と交わる位置からP1と、その上方からY終了値までのX開始値としている。稜線2は、線分P1P0と、直線P0P2とY終了値とが交わる位置から点P0までとして、稜線1及び2で囲まれた部分をポリゴンとする。
【0014】続いて、視点の後方にポリゴンの頂点が2つ以上存在する場合のポリゴン描画例を具体的に示して説明する。図16〜図19で●印はz≧0を示し、×印はz<0である。また、点PnのXY座標をxn,ynとする。
【0015】図16は透視変換前の四角形の例を示しており、同図のように4つの頂点P0,P1,P2,P3のうち、視点の後方に2つの頂点P1,P2が存在する場合、2つの頂点P0,P3は視点の前方にあるので正しい像を結ぶが、頂点P1,P2は後方にあるので正しい像を結ばない。図17は、図16の四角形を演算部4により視野変換(回転、移動等)した後、前記数1による透視変換によって得られた各頂点P0,P1,P2,P3の位置の例であり、透視変換後の各頂点をそのまま結ぶと正しい像を成さない。そこで描画部9では、上述した三角形の例と同様に次の処理により得られたポリゴンをフレームメモリ10に書込む。
【0016】図17の例では、透視変換後のポリゴン頂点P1,P2(数1にてz<0)は正しい値ではないので描画にはそれぞれ、正しい像である線分P0P3の稜線1,線分P3P2はP2がz<0なので図17中のP2P3の延長線とY開始値とが交わる位置をP2’として線分P3P2’の稜線2,線分P1P2はともに正しくない(z<0)即ち視点の後方にありスクリーン上にありえないのでスキップ,線分P1P0はP1がz<0なのでP1P0の延長線とX開始値とが交わる位置をP1’として線分P0P1’の稜線3を用いる。そして、稜線1(線分),稜線2(P3を端点とする半直線)及び稜線3(P0を端点とする半直線)で囲まれた部分をポリゴンとし、スクリーン枠内に存在する部分すなわち図17中の稜線1,2,3,4及び5で囲まれた領域内を描画対象のポリゴンとしてフレームメモリ10に書込む。
【0017】視点の後方に3つ以上の頂点が存在する場合も同様であり、図18の例にある多角形(n+1角形:n≧3)の場合、正しい像はP0であり、透視変換後のP0を端点とするP1P0の延長線上の半直線,透視変換後のP0を端点とするPnP0の延長線上の半直線で囲まれた部分をポリゴンとし、スクリーン枠内に存在する部分が描画の対象となる。例えば、透視変換によって得られた各頂点P0〜Pnが図19のようになれば、図19中の稜線1,2及び3で囲まれた領域内が描画対象のポリゴンとなり、フレームメモリ10に書込まれる。
【0018】
【発明の効果】以上のように本発明によれば、分割処理を行なわずに透視変換後のポリゴンを表示するようにしているので、演算部の処理を簡略でき高速化が図れる。その間、CPUは他の処理を実行でき、システムの効率化を図ることができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示すブロック図である。
【図2】本発明の座標を示す図である。
【図3】本発明の座標変換を説明するための図である。
【図4】視点の前方にあるポリゴンの表示例である。
【図5】視点の前後をまたぐポリゴンの表示例である。
【図6】描画部の詳細を示すブロック構成図である。
【図7】スクリーンデータを説明するための図である。
【図8】ポリゴンの頂点データを説明するための図である。
【図9】ポリゴンと画面有効範囲との関係を説明する図である。
【図10】スクリーンサイズイングを説明するための図である。
【図11】スクリーンサイズイングを説明するための図である。
【図12】ポリゴンの描画例を説明するための図である。
【図13】ポリゴンの描画例を説明するための図である。
【図14】ポリゴンの描画例を説明するための図である。
【図15】ポリゴンの描画例を説明するための図である。
【図16】ポリゴンの描画例を説明するための図である。
【図17】ポリゴンの描画例を説明するための図である。
【図18】ポリゴンの描画例を説明するための図である。
【図19】ポリゴンの描画例を説明するための図である。
【図20】ポリゴンとスクリーン、視点の関係を示す図である。
【図21】従来の処理を説明するための図である。
【符号の説明】
1 CPU
2 操作部
4 演算部
6 透視変換部
9 描画部
100、102 ポリゴン
101 スクリーン
【特許請求の範囲】
【請求項1】 ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイックスのデータ処理装置において、前記スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、前記視点の前後にまたがるポリゴンの辺の2つの点の3次元座標を視点奥行き方向を正として透視変換の式により座標変換し、座標変換後の2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線と前記スクリーンの枠との交点を求め、求めた交点と前記正の点とを結ぶ線分を透視変換後の辺とする変換手段を描画部に設け、前記視点の前後にまたがったポリゴンを前記描画部にてフレームメモリ書込み時に変換して表示するようにしたことを特徴とするコンピュータグラフイックスのデータ処理装置。
【請求項2】 前記変換手段は、前記透視変換前のポリゴンの各頂点の座標(x,y,z)を視点奥行き方向をzの正に大きくなる方向として透視変換の式により座標変換し、前記座標変換前のポリゴンの辺に対応する前記座標変換後の辺にて、該辺の2つの点の前記zの符号を検査し、共に正であれば前記2つの点を結ぶ線分を稜線とし、一方が負であれば前記2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線を稜線とし、共に負であれば稜線化の対象外とし、前記各稜線と前記スクリーンの枠とで囲まれた領域を変換後のポリゴンとするようになっている請求項1に記載のコンピュータグラフイックスのデータ処理装置。
【請求項3】 ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイック方法において、前記スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、前記視点の前後にまたがるポリゴンの辺の2つの点の3次元座標を視点奥行き方向を正として透視変換の式により座標変換し、座標変換後の2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線と前記スクリーンの枠との交点を求め、求めた交点と前記正の点とを結ぶ線分を透視変換後の辺として描画するようにしたことを特徴とするコンピュータグラフイックスのデータ処理方法。
【請求項4】 ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイック方法において、透視変換前の前記ポリゴンの各頂点の座標(x,y,z)を視点奥行き方向をzの正に大きくなる方向として透視変換の式により座標変換し、前記座標変換前のポリゴンの辺に対応する座標変換後の辺にて、該辺の2つの点の前記zの符号を検査し、共に正であれば前記2つの点を結ぶ線分を稜線とし、一方が負であれば前記2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線を稜線とし、共に負であれば稜線化の対象外とし、前記各稜線と前記スクリーンの枠とで囲まれた領域を透視変換後のポリゴンとして描画するようにしたことを特徴とするコンピュータグラフイックスのデータ処理方法。
【請求項1】 ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイックスのデータ処理装置において、前記スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、前記視点の前後にまたがるポリゴンの辺の2つの点の3次元座標を視点奥行き方向を正として透視変換の式により座標変換し、座標変換後の2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線と前記スクリーンの枠との交点を求め、求めた交点と前記正の点とを結ぶ線分を透視変換後の辺とする変換手段を描画部に設け、前記視点の前後にまたがったポリゴンを前記描画部にてフレームメモリ書込み時に変換して表示するようにしたことを特徴とするコンピュータグラフイックスのデータ処理装置。
【請求項2】 前記変換手段は、前記透視変換前のポリゴンの各頂点の座標(x,y,z)を視点奥行き方向をzの正に大きくなる方向として透視変換の式により座標変換し、前記座標変換前のポリゴンの辺に対応する前記座標変換後の辺にて、該辺の2つの点の前記zの符号を検査し、共に正であれば前記2つの点を結ぶ線分を稜線とし、一方が負であれば前記2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線を稜線とし、共に負であれば稜線化の対象外とし、前記各稜線と前記スクリーンの枠とで囲まれた領域を変換後のポリゴンとするようになっている請求項1に記載のコンピュータグラフイックスのデータ処理装置。
【請求項3】 ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイック方法において、前記スクリーンに表示しようとするポリゴンが視点の前後にまたがる場合、前記視点の前後にまたがるポリゴンの辺の2つの点の3次元座標を視点奥行き方向を正として透視変換の式により座標変換し、座標変換後の2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線と前記スクリーンの枠との交点を求め、求めた交点と前記正の点とを結ぶ線分を透視変換後の辺として描画するようにしたことを特徴とするコンピュータグラフイックスのデータ処理方法。
【請求項4】 ポリゴンを合成すると共に奥行き関係を処理して、表示装置のスクリーンに動画を表示するコンピュータグラフイック方法において、透視変換前の前記ポリゴンの各頂点の座標(x,y,z)を視点奥行き方向をzの正に大きくなる方向として透視変換の式により座標変換し、前記座標変換前のポリゴンの辺に対応する座標変換後の辺にて、該辺の2つの点の前記zの符号を検査し、共に正であれば前記2つの点を結ぶ線分を稜線とし、一方が負であれば前記2つの点を通る直線上で前記符号が正の点を端点とし前記符号が負の点側と反対側の半直線を稜線とし、共に負であれば稜線化の対象外とし、前記各稜線と前記スクリーンの枠とで囲まれた領域を透視変換後のポリゴンとして描画するようにしたことを特徴とするコンピュータグラフイックスのデータ処理方法。
【図2】
【図3】
【図4】
【図5】
【図7】
【図8】
【図9】
【図10】
【図15】
【図18】
【図11】
【図12】
【図13】
【図14】
【図16】
【図17】
【図19】
【図1】
【図20】
【図21】
【図6】
【図3】
【図4】
【図5】
【図7】
【図8】
【図9】
【図10】
【図15】
【図18】
【図11】
【図12】
【図13】
【図14】
【図16】
【図17】
【図19】
【図1】
【図20】
【図21】
【図6】
【特許番号】第2611599号
【登録日】平成9年(1997)2月27日
【発行日】平成9年(1997)5月21日
【国際特許分類】
【出願番号】特願平4−100622
【出願日】平成4年(1992)3月26日
【公開番号】特開平6−44384
【公開日】平成6年(1994)2月18日
【出願人】(000132471)株式会社セガ・エンタープライゼス (811)
【登録日】平成9年(1997)2月27日
【発行日】平成9年(1997)5月21日
【国際特許分類】
【出願日】平成4年(1992)3月26日
【公開番号】特開平6−44384
【公開日】平成6年(1994)2月18日
【出願人】(000132471)株式会社セガ・エンタープライゼス (811)
[ Back to top ]