(57)【特許請求の範囲】
【請求項１】
仮想空間における三次元オブジェクトを描画する、ビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
前記三次元オブジェクトより大きいサイズを有する輪郭描画用三次元オブジェクトを生成する第１ステップと、
視点から見て前記三次元オブジェクトの面の後ろに前記第１ステップで生成された前記輪郭描画用三次元オブジェクトの対応する面が配置されるように、前記輪郭描画用三次元オブジェクト及び前記三次元オブジェクトの位置を決定する第２ステップと、
前記第２ステップで決定された位置に前記三次元オブジェクトを描画すると共に、視点から見て前記三次元オブジェクトと前記輪郭描画用三次元オブジェクトとが重なる部分を除いて前記第２ステップで決定された位置に前記輪郭描画用三次元オブジェクトを任意の輪郭色で描画する第３ステップと、
を実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２】
前記第３ステップが、
前記第２ステップで決定された位置に、前記輪郭描画用三次元オブジェクト、前記三次元オブジェクトの順で、前記輪郭描画用三次元オブジェクト及び前記三次元オブジェクトを描画するステップ
であることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項３】
前記第３ステップが、
Ｚバッファを用いた隠面消去処理を行って、前記第２ステップで決定された位置に前記三次元オブジェクトを描画すると共に、前記第２ステップで決定された位置に前記輪郭描画用三次元オブジェクトを任意の輪郭色で描画するステップ、
であることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項４】
前記第１ステップが、
前記三次元オブジェクトのサイズを拡大して輪郭描画用三次元オブジェクトを生成するステップ
であることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項５】
前記第２ステップが、
視点から見て前記第１ステップで生成された前記輪郭描画用三次元オブジェクトが前記三次元オブジェクトの縁の外側に現れるように、前記輪郭描画用三次元オブジェクト及び前記三次元オブジェクトの位置を決定するステップ、
であることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項６】
前記第３ステップが、
前記第２ステップで決定された位置に前記三次元オブジェクトを描画すると共に、視点から見て前記三次元オブジェクトと前記輪郭描画用三次元オブジェクトとが重なる部分を除いて前記第２ステップで決定された位置に前記輪郭描画用三次元オブジェクトをテクスチャマッピングを用いて描画するステップ
であることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項７】
前記第３ステップが、
前記第２ステップで決定された位置に前記三次元オブジェクトを描画すると共に、視点から見て前記三次元オブジェクトと前記輪郭描画用三次元オブジェクトとが重なる部分を除いて前記第２ステップで決定された位置に前記輪郭描画用三次元オブジェクトを、時間に応じて変化させたテクスチャによるテクスチャマッピングを用いて描画するステップ、
であることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項８】
複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第１ステップと、
視点から見て前記オブジェクトの後ろに前記第１ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する第２ステップと、
前記第２ステップで設定された視点からの距離が遠い順に前記各ポリゴンを順序付けることにより得られる、前記各ポリゴンの描画順番に従って、前記オブジェクトを構成する各ポリゴンを描画すると共に、前記輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する第３ステップと、
を実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項９】
複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第１ステップと、
視点から見て前記オブジェクトの後ろに前記第１ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する第２ステップと、
画素毎に、当該画素に投影可能なポリゴンのうち前記第２ステップで設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンが前記オブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが前記輪郭描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する第３ステップと、
を実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１０】
仮想空間における三次元オブジェクトを描画する、ビデオゲームにおける三次元オブジェクト描画方法であって、
前記三次元オブジェクトより大きいサイズを有する輪郭描画用三次元オブジェクトを生成する第１ステップと、
視点から見て前記三次元オブジェクトの面の後ろに前記第１ステップで生成された前記輪郭描画用三次元オブジェクトの対応する面が配置されるように、前記輪郭描画用三次元オブジェクト及び前記三次元オブジェクトの位置を決定する第２ステップと、
前記第２ステップで決定された位置に前記三次元オブジェクトを描画すると共に、視点から見て前記三次元オブジェクトと前記輪郭描画用三次元オブジェクトとが重なる部分を除いて前記第２ステップで決定された位置に前記輪郭描画用三次元オブジェクトを任意の輪郭色で描画する第３ステップと、
を含むことを特徴とするビデオゲームにおける三次元オブジェクト描画方法。
【請求項１１】
前記第３ステップが、
前記第２ステップで決定された位置に、前記輪郭描画用三次元オブジェクト、前記三次元オブジェクトの順で、前記輪郭描画用三次元オブジェクト及び前記三次元オブジェクトを描画するステップ
であることを特徴とする請求項１０記載のビデオゲームにおける三次元オブジェクト描画方法。
【請求項１２】
複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲームにおけるオブジェクト描画方法であって、
前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第１ステップと、
視点から見て前記オブジェクトの後ろに前記第１ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する第２ステップと、
前記第２ステップで設定された視点からの距離が遠い順に前記各ポリゴンを順序付けることにより得られる、前記各ポリゴンの描画順番に従って、前記オブジェクトを構成する各ポリゴンを描画すると共に、前記輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する第３ステップと、
を含むことを特徴とする、ビデオゲームにおけるオブジェクト描画方法。
【請求項１３】
複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲームにおけるオブジェクト描画方法であって、
前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第１ステップと、
視点から見て前記オブジェクトの後ろに前記第１ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する第２ステップと、
画素毎に、当該画素に投影可能なポリゴンのうち前記第２ステップで設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンが前記オブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが前記輪郭描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する第３ステップと、
を含むことを特徴とする、ビデオゲームにおけるオブジェクト描画方法。
【請求項１４】
仮想空間における三次元オブジェクトを描画するビデオゲーム装置であって、
前記三次元オブジェクトより大きいサイズを有する輪郭描画用三次元オブジェクトを生成する生成手段と、
視点から見て前記三次元オブジェクトの面の後ろに前記生成手段により生成された前記輪郭描画用三次元オブジェクトの対応する面が配置されるように、前記輪郭描画用三次元オブジェクト及び前記三次元オブジェクトの位置を決定する位置決定手段と、
前記位置決定手段により決定された位置に前記三次元オブジェクトを描画すると共に、視点から見て前記三次元オブジェクトと前記輪郭描画用三次元オブジェクトとが重なる部分を除いて前記位置決定手段により決定された位置に前記輪郭描画用三次元オブジェクトを任意の輪郭色で描画する描画手段と、
を有することを特徴とするビデオゲーム装置。
【請求項１５】
前記描画手段が、
前記位置決定手段により決定された位置に、前記輪郭描画用三次元オブジェクト、前記三次元オブジェクトの順で、前記輪郭描画用三次元オブジェクト及び前記三次元オブジェクトを描画する
ことを特徴とする請求項１４記載のビデオゲーム装置。
【請求項１６】
複数のポリゴンにより構成されるオブジェクトを描画するビデオゲーム装置であって、
前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、
視点から見て前記オブジェクトの後ろに前記生成手段により生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する設定手段と、
前記設定手段により設定された視点からの距離が遠い順に前記各ポリゴンを順序付けることにより得られる、前記各ポリゴンの描画順番に従って、前記オブジェクトを構成する各ポリゴンを描画すると共に、前記輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する描画手段と、
を有することを特徴とするビデオゲーム装置。
【請求項１７】
複数のポリゴンにより構成されるオブジェクトを描画するビデオゲーム装置であって、
前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、
視点から見て前記オブジェクトの後ろに前記生成手段により生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する設定手段と、
画素毎に、当該画素に投影可能なポリゴンのうち前記設定手段により設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンが前記オブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが前記輪郭描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する描画手段と、
を有することを特徴とするビデオゲーム装置。
【請求項１８】
仮想空間における三次元オブジェクトを描画するビデオゲーム装置であって、
コンピュータと、
前記コンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体と、
を有し、
前記プログラムは、前記コンピュータに、
前記三次元オブジェクトより大きいサイズを有する輪郭描画用三次元オブジェクトを生成する生成処理と、
視点から見て前記三次元オブジェクトの面の後ろに前記生成処理において生成された前記輪郭描画用三次元オブジェクトの対応する面が配置されるように、前記輪郭描画用三次元オブジェクト及び前記三次元オブジェクトの位置を決定する位置決定処理と、
前記位置決定処理において決定された位置に前記三次元オブジェクトを描画すると共に、視点から見て前記三次元オブジェクトと前記輪郭描画用三次元オブジェクトとが重なる部分を除いて前記位置決定処理において決定された位置に前記輪郭描画用三次元オブジェクトを任意の輪郭色で描画する描画処理と、
を実行させることを特徴とするビデオゲーム装置。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、ビデオゲームに関し、より詳しくは、仮想空間におけるオブジェクトの輪郭を描画する技術に関する。
【０００２】
【従来の技術】
近年、ビデオゲームの分野で非写実的レンダリング（ｎｏｎ−ｐｈｏｔｏｒｅａｌｉｓｔｉｃ  ｒｅｎｄｅｒｉｎｇ）の技術が研究されている。非写実的レンダリング技術は、例えばカートゥーン（Ｃａｒｔｏｏｎ）と呼ばれるアニメーション画像をＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）で表現しようとするものである。非写実的レンダリング技術の中のひとつの技術として、３次元物体を２次元画像として描画する際に、３次元物体の輪郭を描画する技術がある。
【０００３】
例えば、特開平７−８５３１０号公報には、以下に示す技術が示されている。すなわち、多面体近似で与えられる３次元物体を２次元画像として表示する際に、多面体の各面を構成する辺を単位として、辺毎に輪郭として表示すべき辺であるか否かを所定のアルゴリズムに基づいて判断する。そして判断結果に基づいて輪郭として表示する辺を検出し、検出した辺の線種や、線幅、又は線色を変えて表示することにより多面体の輪郭を表示する。
【０００４】
また、特開平７−１６０９０５号公報には、以下に示す技術が示されている。すなわち、多面体近似で与えられる３次元物体を２次元画像として表示する際に、表示された多面体を構成する多角形の辺を表示画面の画素単位で追跡する。辺毎に輪郭として表示すべき辺であるか否かを所定のアルゴリズムに基づいて判断する。そして判断結果に基づいて輪郭として表示する辺を検出し、検出した辺の線色を変えて表示することにより物体の輪郭を表示する。
【０００５】
【発明が解決しようとする課題】
従来技術によれば、輪郭を表示するためには、表示対象となる多角形や３次元物体（オブジェクト）を面や多角形の辺単位まで分解して、辺毎に輪郭として表示すべき辺であるか否かを判断しなければならなかった。また、判断の結果に基づいて表示対象となるオブジェクトの辺を強調表示しなければならなかった。
【０００６】
つまり、輪郭描画の対象となるオブジェクトに対して輪郭となる辺を検出する処理を実施し、検出結果に基づいてオブジェクトの辺を強調表示しなければ、輪郭を表示することができなかった。
【０００７】
本発明の目的は、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、オブジェクトに輪郭を描画することが可能な輪郭描画技術を提供することである。
【０００８】
【課題を解決するための手段】
本発明の第１の態様に係る、仮想空間におけるオブジェクトを描画するビデオゲームにおけるオブジェクト描画方法は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第１ステップと、視点から見てオブジェクトの後ろに第１ステップで生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトの位置を決定する第２ステップと、第２ステップで決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて第２ステップで決定された位置に輪郭描画用オブジェクトを任意の輪郭色で描画する第３ステップとを含む。
【０００９】
輪郭描画用オブジェクトを導入することにより、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、当該オブジェクトの輪郭を描画できるようになる。
【００１０】
なお、第２ステップで決定される輪郭描画用オブジェクトの位置をオブジェクトの位置に設定し、オブジェクトの位置を通常より前に設定することも可能である。また輪郭描画用オブジェクトの位置を、既に位置が設定されたオブジェクトの後ろに設定することも可能である。すなわち、視点から見て相対的に、オブジェクトの後ろに輪郭描画用オブジェクトが配置されるようにオブジェクト及び輪郭描画用オブジェクトの位置が設定されていればよい。
【００１１】
上で述べた第３ステップを、第２ステップで決定された位置に、輪郭描画用オブジェクト、オブジェクトの順で、輪郭描画用オブジェクト及びオブジェクトを描画するステップとするような構成も可能である。
【００１２】
また、上で述べた第３ステップを、Ｚバッファを用いた隠面消去処理を行って、第２ステップで決定された位置にオブジェクトを描画すると共に、第２ステップで決定された位置に輪郭描画用オブジェクトを任意の輪郭色にて描画するステップとするような構成も可能である。Ｚバッファを用いた描画手法に対しても本発明を適用することができる。
【００１３】
上で述べた第１ステップを、オブジェクトを拡大して輪郭描画用オブジェクトを生成するステップとするような構成も可能である。輪郭描画用オブジェクトには、オブジェクトとそのサイズのみが異なる場合が存在する。また、形状も多少異なる場合も存在する。
【００１４】
上で述べた第２ステップを、視点から見て第１ステップで生成された輪郭描画用オブジェクトがオブジェクトの縁の外側に現れるように、輪郭描画用オブジェクト及びオブジェクトの位置を決定するステップとする構成も可能である。
【００１５】
また、上で述べた第３ステップを、第２ステップで決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて第２ステップで決定された位置に輪郭描画用オブジェクトをテクスチャマッピングを用いて描画するステップとすることも可能である。
【００１６】
さらに、この第３ステップを、第２ステップで決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて第２ステップで決定された位置に輪郭描画用オブジェクトを、時間に応じて変化させたテクスチャによるテクスチャマッピングを用いて描画するステップとすることも可能である。この構成により、例えばオブジェクトの輪郭を時間に応じて動的に変化させて描画することができるようになる。時間に応じて変化させたテクスチャではなく、複数のテクスチャを切り換えて使用する場合もある。
【００１７】
本発明の第２の態様に係る、複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲームにおけるオブジェクト描画方法は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第１ステップと、視点から見てオブジェクトの後ろに第１ステップで生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトを構成する各ポリゴンの視点からの距離を設定する第２ステップと、第２ステップで設定された視点からの距離が遠い順に各ポリゴンを順序付けることにより得られる、各ポリゴンの描画順番に従って、オブジェクトを構成する各ポリゴンを描画すると共に、輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する第３ステップとを含む。いわゆるＺソート法により描画する場合を示している。
【００１８】
本発明の第３の態様に係るビデオゲームにおけるオブジェクト描画方法は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第１ステップと、視点から見てオブジェクトの後ろに第１ステップで生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトを構成する各ポリゴンの視点からの距離を設定する第２ステップと、画素毎に、当該画素に投影可能なポリゴンのうち第２ステップで設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンがオブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが輪郭描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する描画手段とを備える。いわゆるＺバッファ法を使用した場合を示している。
【００１９】
本発明の第１乃至第３の態様に係るビデオゲームにおけるオブジェクト描画方法をコンピュータに実行させるプログラムを作成することは可能である。その際、第１乃至第３の態様に対する上記のような変形は、当該プログラムに対しても応用可能である。本発明に係るプログラムは、例えばＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  −  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、フロッピーディスク、メモリカートリッジ、メモリ、ハードディスクなどの記録媒体又は記憶装置に格納される。記録媒体又は記憶装置に格納されるプログラムをコンピュータに読み込ませることで以下で述べるビデオゲーム装置を実現できる。また、記録媒体によって本発明に係るプログラムをソフトウエア製品として装置と独立して容易に配布、販売することができるようになる。さらに、コンピュータなどのハードウエアを用いて本発明に係るプログラムを実行することにより、コンピュータ等のハードウエアで本発明のグラフィックス技術が容易に実施できるようになる。
【００２０】
本発明の第４の態様に係る、仮想空間におけるオブジェクトを描画するビデオゲーム装置は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、視点から見てオブジェクトの後ろに生成手段により生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトの位置を決定する位置決定手段と、位置決定手段により決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて位置決定手段により決定された位置に輪郭描画用オブジェクトを任意の輪郭色で描画する描画手段とを有する。
【００２１】
上で述べた描画手段を、位置決定手段により決定された位置に、輪郭描画用オブジェクト、オブジェクトの順で、輪郭描画用オブジェクト及びオブジェクトを描画するような構成とすることも可能である。
【００２２】
本発明の第５の態様に係る、複数のポリゴンにより構成されるオブジェクトを描画するビデオゲーム装置は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、視点から見てオブジェクトの後ろに生成手段により生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトを構成する各ポリゴンの視点からの距離を設定する設定手段と、設定手段により設定された視点からの距離が遠い順に各ポリゴンを順序付けることにより得られる、各ポリゴンの描画順番に従って、オブジェクトを構成する各ポリゴンを描画すると共に、輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する描画手段とを有する。
【００２３】
本発明の第６の態様に係るビデオゲーム装置は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、視点から見てオブジェクトの後ろに生成手段により生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトを構成する各ポリゴンの視点からの距離を設定する設定手段と、画素毎に、当該画素に投影可能なポリゴンのうち設定手段により設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンがオブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが輪郭描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する描画手段とを有する。
【００２４】
本発明の第７の態様に係る、仮想空間におけるオブジェクトを描画するビデオゲーム装置は、コンピュータと、コンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体とを有し、本プログラムは、コンピュータに、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成処理と、視点から見てオブジェクトの後ろに生成処理において生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトの位置を決定する位置決定処理と、位置決定処理において決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて位置決定処理において決定された位置に輪郭描画用オブジェクトを任意の輪郭色で描画する描画処理とを実行させる。
【００２５】
【発明の実施の形態】
本発明をコンピュータ・プログラムにより実施する場合において当該コンピュータ・プログラムを実行する家庭用ゲーム機１０１の一例を図１に示す。家庭用ゲーム機１０１は、例えば内部バス１１９に接続された演算処理部１０３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０５、サウンド処理部１０９、グラフィックス処理部１１１、ＣＤ−ＲＯＭドライブ１１３、通信インターフェース１１５、及びインターフェース部１１７を備える。グラフィックス処理部１１１は、フレームバッファ１１２を備える。
【００２６】
家庭用ゲーム機１０１のサウンド処理部１０９及びグラフィックス処理部１１１は表示画面１２０を有するＴＶセット１２１に接続されている。また、ＣＤ−ＲＯＭドライブ１１３にはＣＤ−ＲＯＭドライブ１１３に対して着脱自在なＣＤ−ＲＯＭ１３１が装着されている。通信インターフェース１１５はネットワーク１５１と通信媒体１４１を介して接続される。インターフェース部１１７には、操作ボタンを備えたキーパッド１６１及びメモリカード１７１が接続される。
【００２７】
演算処理部１０３は、ＣＰＵやＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などを含み、ＣＤ−ＲＯＭ１３１上に格納されたプログラムを実行し、家庭用ゲーム機１０１の制御を行う。ＲＡＭ１０５は、演算処理部１０３のワークエリアである。メモリカード１７１は、プログラムにより参照されるデータを保存するための記憶領域である。サウンド処理部１０９は、演算処理部１０３により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、ＴＶセット１２１にサウンド信号を出力する。
【００２８】
グラフィックス処理部１１１は、演算処理部１０３から出力される描画命令に従って、画像データを生成してフレームバッファ１１２に書き込む。そして、書き込んだ画像データを表示画面１２０に表示するための信号をＴＶセット１２１に出力する。ＣＤ−ＲＯＭドライブ１１３は、ＣＤ−ＲＯＭ１３１上のプログラム及びデータを読み出す。通信インターフェース１１５は、通信媒体１４１を介してネットワーク１５１に接続され、他のコンピュータ等との間で行われるデータ通信の入出力制御を行う。インターフェース部１１７は、キーパッド１６１からの入力をＲＡＭ１０５に出力し、演算処理部１０３がキーパッド１６１からの入力を解釈して演算処理を実施する。
【００２９】
本発明に係るプログラム及びデータは最初例えばＣＤ−ＲＯＭ１３１に記憶されている。そして、このプログラム及びデータは実行時にＣＤ−ＲＯＭドライブ１１３により読み出されて、ＲＡＭ１０５に転送される。演算処理部１０３はＲＡＭ１０５にロードされた、本発明に係るプログラム及びデータを処理し、描画命令をグラフィックス処理部１１１に出力する。なお、中間的なデータはＲＡＭ１０５に記憶される。グラフィックス処理部１１１は演算処理部１０３からの描画命令に従って処理を行い、画像データをフレームバッファ１１２に書き込み、表示画面１２０に表示するための信号をＴＶセット１２１に出力する。
【００３０】
以上のような家庭用ゲーム機１０１において実行される本発明のプログラムのアルゴリズム及び使用されるデータについて以下で詳しく述べる。
【００３１】
（実施の形態１）
例えばＣＤ−ＲＯＭ１３１に記録されていた本発明に係るプログラム及びデータが、ＣＤ−ＲＯＭドライブ１１３によりＲＡＭ１０５にロードされ、本発明に係るプログラムが実行されている場合におけるＲＡＭ１０５の状態を図２に示す。本実施の形態においてＲＡＭ１０５には、少なくともプログラム記憶領域１０５０と、関連データ記憶領域１０５２と、ワークエリア１０６０とが含まれる。プログラム記憶領域１０５０に記憶されるプログラムについては後に説明する。関連データ記憶領域１０５２には、ポリゴンテーブル１０５４と、頂点テーブル１０５６と、アウトライン制御テーブル１０５８とが含まれる。ワークエリア１０６０には、ソートテーブル１０６２が含まれる。
【００３２】
関連データ記憶領域１０５２に含まれるポリゴンテーブル１０５４の一例を図３に示す。ポリゴンテーブル１０５４は、描画対象となるオブジェクトと、そのオブジェクトを構成するポリゴンと、そのポリゴンを構成する頂点とを特定するためのテーブルである。描画対象となるオブジェクトを特定するために、オブジェクト識別番号を格納する欄５４１が設けられている。図３の例ではＭ１というオブジェクト識別番号が示されている。
【００３３】
オブジェクトを構成するポリゴンを特定するために、ポリゴン識別番号を格納する欄５４３が設けられている。図３の例では、オブジェクトＭ１を構成するポリゴンとして、Ｐ１、Ｐ２及びＰ３というポリゴン識別番号が示されている。
【００３４】
ポリゴンを構成する頂点を特定するために、頂点識別番号を格納する欄５４５が設けられている。図３の例では、ポリゴンＰ１を構成する頂点として、Ｖ１、Ｖ２及びＶ３という頂点識別番号が示されている。また、ポリゴンＰ２を構成する頂点として、Ｖ３、Ｖ２及びＶ４という頂点識別番号が示されている。加えて、ポリゴンＰ３を構成する頂点として、Ｖ４、Ｖ５及びＶ３という頂点識別番号が示されている。
【００３５】
例えば描画対象となるオブジェクトＭ１は、図４に示すようにポリゴンの集合で構成されている。ポリゴンテーブル１０５４においてオブジェクトＭ１を構成するポリゴンの識別番号は、オブジェクトＭ１に対応するポリゴン識別番号の欄５４３に格納される。また、各ポリゴンを構成する頂点の識別番号は、各ポリゴンに対応する頂点識別番号の欄５４５に格納される。
【００３６】
なお、図４に示されているように、オブジェクトには基準位置Ｃｓ（Ｘ０，Ｙ０，Ｚ０）が設定されており、各ポリゴンの位置はこの基準位置Ｃｓからの変位にて定義される。また、後に説明するが、輪郭描画用オブジェクトの位置を決定する際にもオブジェクトの基準位置は用いられる。
【００３７】
関連データ記憶領域１０５２に含まれる頂点テーブル１０５６の一例を図５に示す。頂点テーブル１０５６は、描画対象となるオブジェクトと、そのオブジェクトを構成するポリゴンの頂点と、その頂点の座標値と、テクスチャ座標とを特定するためのテーブルである。描画対象となるオブジェクトを特定するために、オブジェクト識別番号を格納する欄５６１が設けられている。図５の例ではＭ１というオブジェクト識別番号が示されている。
【００３８】
オブジェクトを構成するポリゴンの頂点を特定するために、頂点識別番号を格納する欄５６３が設けられている。図５の例ではＶ１、Ｖ２、Ｖ３、Ｖ４及びＶ５という頂点識別番号が示されている。各頂点の座標値を特定するために頂点データを格納する欄５６５が設けられている。図５の例では、頂点Ｖ１の座標値は（Ｘ１，Ｙ１，Ｚ１）である。頂点Ｖ２の座標値は（Ｘ２，Ｙ２，Ｚ２）である。頂点Ｖ３の座標値は（Ｘ３，Ｙ３，Ｚ３）である。頂点Ｖ４の座標値は（Ｘ４，Ｙ４，Ｚ４）である。頂点Ｖ５の座標値は（Ｘ５，Ｙ５，Ｚ５）である。
【００３９】
各頂点のテクスチャ座標を特定するためにテクスチャデータの欄５６７が設けられている。図５の例では、頂点Ｖ１のテクスチャ座標は（Ｕ１，Ｖ１）である。頂点Ｖ２のテクスチャ座標は（Ｕ２，Ｖ２）である。頂点Ｖ３のテクスチャ座標は（Ｕ３，Ｖ３）である。頂点Ｖ４のテクスチャ座標は（Ｕ４，Ｖ４）である。頂点Ｖ５のテクスチャ座標は（Ｕ５，Ｖ５）である。
【００４０】
関連データ記憶領域１０５２に含まれるアウトライン制御テーブル１０５８の一例を図６に示す。アウトライン制御テーブル１０５８は、輪郭描画の対象となるオブジェクト毎に、輪郭描画に必要なデータを格納するためのテーブルである。図６におけるオブジェクト識別番号の欄５８１には、輪郭描画の対象となるオブジェクトのオブジェクト識別番号が格納される。図６の例では、オブジェクトＭ１、Ｍ３及びＭ８が輪郭描画の対象となるオブジェクトとして指定されている。
【００４１】
図６における拡大率の欄５８３には、輪郭描画の対象となるオブジェクトに対して生成される輪郭描画用オブジェクトの、元のオブジェクトに対する拡大率が格納される。図６の例では、オブジェクトＭ１に対する輪郭描画用オブジェクトはオブジェクトＭ１を１．０５倍拡大することにより生成される。オブジェクトＭ３に対する輪郭描画用オブジェクトはオブジェクトＭ３を１．１０倍拡大することにより生成される。オブジェクトＭ８に対する輪郭描画用オブジェクトはオブジェクトＭ８を１．２５倍拡大することにより生成される。
【００４２】
図６における色データの欄５８５には、輪郭描画の対象となるオブジェクト毎に、そのオブジェクトの輪郭色が格納される。なお、図６では輪郭色は単色である。図６の例では、オブジェクトＭ１の輪郭色は（Ｒａ，Ｇａ，Ｂａ）である。オブジェクトＭ３の輪郭色は（Ｒｂ，Ｇｂ，Ｂｂ）である。単色の輪郭色として黒、白、茶、青など任意の色が設定可能である。オブジェクトＭ８の輪郭色は（Ｒｃ，Ｇｃ，Ｂｃ）である。
【００４３】
図６における座標調整値の欄５８７には、例えば輪郭描画の対象となるオブジェクトに均等に輪郭が付されるように輪郭描画用オブジェクトを移動させるための座標調整値が格納される。座標調整値はワールド座標系における値である。
【００４４】
通常、拡大率の欄５８３に格納されている拡大率で輪郭描画の対象となるオブジェクトを拡大して輪郭描画用オブジェクトを生成するだけでは、輪郭描画の対象となるオブジェクトには均等に輪郭が付されない。輪郭描画用オブジェクトの基準位置を、輪郭描画の対象となるオブジェクトの基準位置から、座標調整値の欄５８７に格納された座標調整値だけ移動させ、輪郭描画の対象となるオブジェクトに均等に輪郭が付されるようにする。
【００４５】
但し、必ずしも輪郭描画の対象となるオブジェクトに均一に輪郭を付する必要は無い。例えば、ある部分だけ太い輪郭を付するように意図する場合には、ある部分だけ太い輪郭が実現できるように座標調整値を決定し、この座標調整値の欄５８７に格納する。
【００４６】
図６の例では、オブジェクトＭ１の輪郭描画用オブジェクトの座標調整値は（Ｘａ，Ｙａ，Ｚａ）である。オブジェクトＭ３の輪郭描画用オブジェクトの座標調整値は（Ｘｂ，Ｙｂ，Ｚｂ）である。オブジェクトＭ８の輪郭描画用オブジェクトの座標調整値は（Ｘｃ，Ｙｃ，Ｚｃ）である。
【００４７】
図６におけるデプス調整値の欄５８９には、後に述べるソートテーブルの先頭アドレス値をずらすための調整値が格納される。輪郭描画用オブジェクトは、視点から見て、輪郭描画の対象となるオブジェクトの後ろに位置が決定される。結果的に、輪郭描画の対象となるオブジェクトはそのまま描画され、輪郭描画用オブジェクトは視点から見て輪郭描画の対象となるオブジェクトと重ならない部分のみが描画されることになる。
【００４８】
輪郭描画用オブジェクトの位置を視点から見て輪郭描画の対象となるオブジェクトの後ろに設定するため、輪郭描画用オブジェクトを構成するポリゴンの各頂点の座標を調整してもよいが、処理量が多くなる。ここでは、隠面消去法としてＺソート法を用いる。Ｚソート法で用いられるソートテーブルにおいて、輪郭描画用オブジェクトのポリゴンの格納位置を、ソートテーブルの先頭アドレスをずらすことにより調整する。ソートテーブルの先頭アドレスをずらすことによって、輪郭描画用オブジェクトの位置を視点から見て輪郭描画の対象となるオブジェクトの後ろに設定する。
【００４９】
図６の例では、オブジェクトＭ１に対応する輪郭描画用オブジェクトの各ポリゴンをソートテーブルに登録する際のデプス調整値はＤａである。オブジェクトＭ２に対応する輪郭描画用オブジェクトの各ポリゴンをソートテーブルに登録する際のデプス調整値はＤｂである。オブジェクトＭ８に対応する輪郭描画用オブジェクトの各ポリゴンをソートテーブルに登録する際のデプス調整値はＤｃである。
【００５０】
なお、輪郭描画用オブジェクトの位置は視点から見て相対的に輪郭描画の対象となる元のオブジェクトの後ろであれば良い。従って、輪郭描画用オブジェクトの位置を元のオブジェクトに設定し、元のオブジェクトの位置をより視点に近い位置に設定する構成であってもよい。
【００５１】
関連データ記憶領域１０５２に含まれるソートテーブル１０６２の一例を図７に示す。ソートテーブル１０６２は、隠面消去の一手法であるＺソート法を利用する際に、描画順番を決定するためのテーブルである。描画されるポリゴンのポリゴン識別番号は、描画されるポリゴンの視点からの距離であるデプス値に対応するアドレスに登録される。結果として、ポリゴンはデプス値によりソートされる。デプス値が大きいほど視点から遠く、描画はデプス値の大きい順に実施される。その結果、奥の方にあるポリゴンの画像は手前にあるポリゴンの画像で重ね描きされ、隠面消去が実施される。
【００５２】
図７の例では、ソートテーブル１０６２の先頭アドレス６２１に、デプス値０のポリゴン識別番号が格納されるようになっている。実際には、ポリゴンのデプス値に対応するアドレスにそのポリゴンのデータへのポインタが格納される。
【００５３】
図７において、先頭アドレス６２１である０ｘ８００１００００とデプス値の欄６２３とは本実施の形態を理解するためにのみに示してある。通常、ポリゴン識別番号の欄６２５のみが存在する。すなわち、図７中点線で示された部分は本実施の形態の理解を容易にするために示されている。ここではデプス値の値が小さいほど視点に近く、１０２３が最も遠いものとする。ポリゴン識別番号の欄６２５の各アドレスは、先頭アドレスからデプス値の小さい順に順次割り当てられる。
【００５４】
なお、ポリゴンのデプス値には、例えばポリゴンを構成する各頂点のデプス値の平均値を用いる。但し、ポリゴンを構成する頂点のデプス値のうち最も大きいデプス値を使用しても良い。また、最も小さいデプス値を使用してもよい。さらに、ポリゴン内の所定の点、例えば重心のデプス値を使用することもできる。
【００５５】
次に本実施の形態におけるプログラムのアルゴリズムについて図８乃至図１６を用いて説明する。
【００５６】
演算処理部１０３は、起動時に、ＲＯＭ等に記憶されているオペレーティングシステムに基づき、ＣＤ−ＲＯＭドライブ１１３を介してＣＤ−ＲＯＭ１３１から画像処理やゲームの実行に必要なプログラムやデータを読み出し、ＲＡＭ１０５に転送させる。そして、演算処理部１０３は、ＲＡＭ１０５に転送されたプログラムを実行することにより、以下に記載する処理を実現する。
【００５７】
なお、家庭用ゲーム装置１０１で行われる制御及び処理の中には、演算処理部１０３以外の回路が演算処理部１０３と協働して実際の制御及び処理を行っている場合もある。説明の便宜上、以下では、演算処理部１０３が関係する制御及び処理は、演算処理部１０３が直接的に実行しているものとして説明する。
【００５８】
また、画像処理やゲームを実行するために必要なプログラムやデータは、実際には演算制御部１０３からの命令に従って処理の進行状況に応じて順次ＣＤ−ＲＯＭ１３１から読み出されてＲＡＭ１０５に転送される。しかし、以下に示す説明では、発明の理解を容易にするため、ＣＤ−ＲＯＭ１３１からのデータの読み出しや、ＲＡＭ１０５への転送に関する記述は省略している。
【００５９】
表示に関するメインフローは図８に示されている。まず、表示させるオブジェクトが特定される（ステップＳ１）。次に、表示させるオブジェクトのうち１つのオブジェクトに対して描画演算処理が実施される（ステップＳ２）。本描画演算処理については後に詳しく述べる。そして表示させる全オブジェクトについて描画演算処理が終了したか否かが判断される（ステップＳ３）。
【００６０】
もし、表示させるオブジェクトのうち未処理のオブジェクトが存在する場合にはステップＳ２に戻る。もし、表示させる全オブジェクトを処理した場合には、フレームバッファ１１２に描画処理を実施する（ステップＳ４）。そして、フレームバッファ１１２に格納された画像データをＴＶセット１２１の表示画面１２０に表示する（ステップＳ５）。
【００６１】
本実施の形態において描画処理は、Ｚソート法による隠面消去処理を伴うものである。すなわち、図７に示したソートテーブル１０６２の中で最も視点から遠い、すなわちデプス値が最も大きいポリゴンから順番にフレームバッファ１１２に描き込む。１つのポリゴンの描画は以下に示す処理にて実施される。ポリゴンを構成する各頂点の座標及び色に基づいて補間処理を行い、ポリゴン内部の各画素の色を計算する。テクスチャマッピングを行わない場合には、上述のように計算された色が各画素の色としてフレームバッファ１１２に描き込まれる。一方、テクスチャマッピングを行う場合には、ポリゴンを構成する各頂点のテクスチャ座標に基づいて補間処理を行い、ポリゴン内部の各画素のテクスチャ座標を計算する。そして、テクスチャ座標のテクセル値と上で計算された画素の色とを用いて生成された色が各画素の色としてフレームバッファ１１２に描き込まれる。
【００６２】
輪郭描画用オブジェクトは視点から見て輪郭描画の対象となるオブジェクトより後ろに位置が決定される。後ろに位置する輪郭描画用オブジェクトが輪郭描画の対象となるオブジェクトと全く被さらない場合には、輪郭描画用オブジェクトの方が輪郭描画の対象となるオブジェクトより先に描画される。
【００６３】
一方、後ろに位置する輪郭描画用オブジェクトが輪郭描画の対象となるオブジェクトと被さっている場合には、ソートテーブル１０６２の中で最も視点から遠いポリゴンから順番にフレームバッファ１１２に描き込まれる。従って、輪郭描画の対象となるオブジェクトのポリゴンには輪郭描画用オブジェクトのポリゴンより先にフレームバッファ１１２に描き込まれるものもある。
【００６４】
次に図９を用いてステップＳ２の描画演算処理の説明を行う。まず、表示する１つの未処理オブジェクトを特定する（ステップＳ１１）。特定したオブジェクトについて現在の姿勢を計算する（ステップＳ１３）。オブジェクトを構成するポリゴンの位置を現在の姿勢に合わせて変更する。そして、現在の処理が輪郭描画用オブジェクトに対する処理であるか判断する（ステップＳ１５）。なお、最初は、ステップＳ１１において１つの未処理オブジェクトを特定しているので、輪郭描画用オブジェクトに対する処理ではない。よって、ステップＳ１７に移行する。
【００６５】
ステップＳ１７では、特定された１つの未処理オブジェクトのデータを用意する。そして、用意された１つの未処理オブジェクトのデータを透視変換する（ステップＳ２１）。透視変換とは、ワールド座標系のポリゴンの各頂点の座標値をスクリーン座標系における座標値に変換するものである。透視変換により、特定された１つの未処理オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点における視点からの距離、すなわちデプス値が算出される。
【００６６】
次に特定された１つの未処理オブジェクトを構成する各ポリゴンについて以下の処理を行う。すなわち、ポリゴン毎にポリゴンの各頂点におけるデプス値から、ポリゴンのデプス値を計算する。例えば、三角形ポリゴンの場合、３頂点の３つのデプス値の平均値を求め、ポリゴンのデプス値とする。計算されたポリゴンのデプス値を用いて、ソートテーブル１０６２の先頭アドレスから登録先アドレスを算出し、各ポリゴンをソートテーブル１０６２に登録する（ステップＳ２３）。なお、実際にソートテーブル１０６２に登録されるのは、ポリゴンのデータへのポインタである。特定された１つの未処理オブジェクトを構成する各ポリゴンをソートテーブル１０６２に登録する際には、ソートテーブル１０６２の先頭アドレスをずらすことはしない。初期の設定のまま登録する。
【００６７】
ソートテーブル１０６２にポリゴンを登録する際の処理を説明するための図を図１０に示す。先頭アドレス６２１は図７と同じである。既にデプス値１５に対応するアドレスにはＰ４というポリゴンが登録されている。なおＰ４といったポリゴン識別番号の後ろには括弧で囲まれたデプス値を記載している。デプス値の図示は後の説明のためであって、実際にはデプス値は格納されない。デプス値１６のアドレスにはポリゴンＰ２が登録されている。デプス値１７に対応するアドレスにはポリゴンＰ１及びＰ３が登録されている。デプス値１９に対応するアドレスにはポリゴンＰ５が登録されている。ここでポリゴンＰ６を登録する際には、ポリゴンＰ６のデプス値１８というデータを用いて、デプス値１８に対応するアドレスに、ポリゴンＰ６を登録する。
【００６８】
図９に戻り、次に、特定された１つの未処理オブジェクトを処理していたのか判断する（ステップＳ２５）。最初の実行時には特定された１つの未処理オブジェクトを処理していたので、ステップＳ２９に移行する。ステップＳ２９では、特定された１つの未処理オブジェクトが輪郭描画の対象となっているか判断する。ここでは図６のアウトライン制御テーブル１０５８を参照して、アウトライン制御テーブル１０５８に登録されているオブジェクトであるか否かを判断すれば良い。
【００６９】
もし、アウトライン制御テーブル１０５８に登録されていないオブジェクトであれば、輪郭を描画する処理は必要無いので、処理を終了する。一方、アウトライン制御テーブル１０５８に登録されているオブジェクトであれば、ステップＳ３１に移行する。ステップＳ３１では、処理の対象を、特定された１つの未処理オブジェクトから、対応する輪郭描画用オブジェクトに切り換える。
【００７０】
ステップＳ１５に戻って、再度、輪郭描画用オブジェクトに対する処理であるか判断する。ステップＳ３１で輪郭描画用オブジェクトに処理の対象を切り換えているので、今回はステップＳ１９に移行する。ステップＳ１９ではアウトライン設定処理を行う。アウトライン設定処理については図１１を用いて詳細に説明する。
【００７１】
図１１ではまず特定された１つの未処理オブジェクト（輪郭描画の対象となる元のオブジェクト）のデータを複写し、輪郭描画用オブジェクトのデータとして生成する（ステップＳ３５）。次に、輪郭描画用オブジェクトのサイズを元のオブジェクトよりも拡大する（ステップＳ３７）。輪郭描画用オブジェクトのサイズの拡大にはアウトライン制御テーブル１０５８の拡大率の欄５８３の値を使用する。なお、各ポリゴンの頂点の法線ベクトルの方向に当該頂点を移動させることにより、サイズの拡大を実現することができる。そして、輪郭描画用オブジェクトの色データを変更する（ステップＳ３９）。輪郭描画用オブジェクトの色データには、アウトライン制御テーブル１０５８の色データの欄５８５のデータを使用する。色データの欄５８５の色が輪郭色として設定される。
【００７２】
加えて輪郭描画用オブジェクトの座標データの調整を行う（ステップＳ４１）。座標データの調整にはアウトライン制御テーブル１０５８の座標調整値の欄５８７の座標値を用いる。すなわち、輪郭描画用オブジェクトの基準位置を座標調整値だけずらす。そして、生成された輪郭描画用オブジェクトのデータを透視変換用に用意する（ステップＳ４３）。最後に、ソートテーブル１０６２の先頭アドレス値をアウトライン制御テーブル１０５８のデプス調整値の欄５８９のデータで調整する（ステップＳ４５）。すなわち、ソートテーブル１０６２の先頭アドレスの値をずらす。この段階で図９のステップＳ２１に戻る。
【００７３】
図９では、用意した輪郭描画用オブジェクトのデータを透視変換する（ステップＳ２１）。透視変換により、輪郭描画用オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点における視点からの距離、すなわちデプス値が算出される。
【００７４】
次に輪郭描画用オブジェクトを構成する各ポリゴンについて以下の処理を行う。すなわち、ポリゴン毎にポリゴンの各頂点おけるデプス値から、ポリゴンのデプス値を計算する。例えば、三角形ポリゴンの場合、３頂点の３つのデプス値の平均を求め、ポリゴンのデプス値とする。計算されたポリゴンのデプス値を用いて、ソートテーブル１０６２の先頭アドレスから登録先アドレスを算出し、各ポリゴンをソートテーブル１０６２に登録する（ステップＳ２３）。
【００７５】
図１１のステップＳ４５でソートテーブル１０６２の先頭アドレスが調整されている。先頭アドレスが調整された状態を図１２に示す。図１２のソートテーブル１０６２では、先頭アドレス６２１が０ｘ８００１００００から０ｘ８００１００１０（先頭アドレス６２１’）に、１６バイトだけずらされている。すなわち、今までデプス値２に対応するアドレスが先頭アドレス６２１’になり、以下全て繰り下がるようになる。なお、ステップＳ４５のように先頭アドレスをずらすので、ソートテーブル１０６２の上下には余分な領域を確保しておく必要がある。
【００７６】
図１２においてデプス値１５に対応するアドレスには先頭アドレス調整前にデプス値１７であったポリゴンＰ１及びＰ３が登録されている。デプス値１６に対応するアドレスには先頭アドレス調整前にデプス値１８であったポリゴンＰ６が登録されている。デプス値１７に対応するアドレスには先頭アドレス調整前にデプス値１９であったポリゴンＰ５が登録されている。
【００７７】
また、デプス値１７に対応するアドレスには、輪郭描画用オブジェクトを構成するポリゴンであってデプス値１７のポリゴンＰｃ１が登録されている。デプス値１９の輪郭描画用オブジェクトを構成するポリゴンＰｃ２をソートテーブル１０６２に登録する場合には、図１２のように先頭アドレスがずらされた後のデプス値１９に対応するアドレスに登録する。
【００７８】
図９に戻って、現在処理しているオブジェクトがステップＳ１１で特定した１つの未処理オブジェクトの処理であるか判断する（ステップＳ２５）。現在は輪郭描画用オブジェクトを処理しているので、ステップＳ２７に移行する。ステップＳ２７では輪郭描画用オブジェクトの処理終了に応じてソートテーブル１０６２の先頭アドレスを元に戻す（ステップＳ２７）。このように輪郭描画用オブジェクトを処理している期間のみ、ソートテーブルの先頭アドレスは調整されている。そして、処理を終了する。
【００７９】
なおステップＳ２７終了段階のソートテーブル１０６２の一例を図１３に示す。図１３のソートテーブル１０６２では、先頭アドレスの値が元に戻っている。ソートテーブル１０６２において、デプス値１５に対応するアドレスにはポリゴンＰ４が登録されている。デプス値１６に対応するアドレスにはポリゴンＰ２が登録されている。デプス値１７に対応するアドレスにはポリゴンＰ１及びポリゴンＰ３が登録されている。デプス値１７に対応するアドレスには、輪郭描画用オブジェクトを構成するポリゴンＰｃ４も登録されている。但し、括弧で示されているように、ポリゴンＰｃ４のデプス値は実際には１５である。すなわち、輪郭描画用オブジェクトを構成するポリゴンＰｃ４は、実際よりデプス値２だけ後ろに登録されている。結果的に、輪郭描画用オブジェクトは対応するオブジェクトよりデプス値で２だけ後ろに配置されることになる。
【００８０】
デプス値１８に対応するアドレスにはポリゴンＰ６及びポリゴンＰｃ２が登録されている。ポリゴンＰｃ２の実際のデプス値は１６であるから、デプス値２だけ後ろに登録されている。デプス値１９に対応するアドレスにはポリゴンＰ５、Ｐｃ１及びＰｃ３が登録されている。ポリゴンＰｃ１及びＰｃ３の実際のデプス値は１７であるから、デプス値２だけ後ろに登録されている。
【００８１】
以上のように表示するオブジェクト及び輪郭描画用オブジェクトの各ポリゴンがソートテーブル１０６２に登録される。そして、ソートテーブル１０６２において最も視点から遠いポリゴンから順番に図８のステップＳ４でフレームバッファ１１２に描画される。そして、ステップＳ５で、フレームバッファ１１２に描画された画像がＴＶセット１２１の表示画面１２０に表示される。
【００８２】
上で述べた処理では処理速度を速めることを優先するために、ソートテーブル１０６２の先頭アドレスを調整することにより輪郭描画用オブジェクトのデプス値を変更していた。しかし、先頭アドレスを調整せずに、輪郭描画用オブジェクトを構成する各ポリゴンのデプス値を直接調整することも可能である。また、ポリゴンの各頂点のデプス値を調整することも可能である。なお、調整には、加算、引き算、掛け算等の演算処理を含む。
【００８３】
さらに上で述べた処理では輪郭描画用オブジェクトを構成するポリゴンを処理する期間中にソートテーブル１０６２の先頭アドレスを調整していた。しかし、輪郭描画用オブジェクトに対応するオブジェクト（輪郭描画の対象となる元のオブジェクト）を処理する期間中にソートテーブル１０６２の先頭アドレスを調整する構成とすることも可能である。すなわち、元のオブジェクトを構成する各ポリゴンがソートテーブル１０６２において実際の位置よりも、より視点に近い位置に登録されるようにする構成である。ソートテーブル１０６２の先頭アドレスの調整でなく、オブジェクトを構成する各ポリゴンのデプス値を直接変更することも可能である。
【００８４】
実施の形態１によれば、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する（ステップＳ３５）。次に、オブジェクトに対して例えば縁全体に均等な太さの輪郭が付されるように輪郭描画用オブジェクトの位置が微調整される（ステップＳ４１）。その後、Ｚソート法を用いてオブジェクト及び輪郭描画用オブジェクトを描画する（ステップＳ４）。ここで、オブジェクトを構成する各ポリゴンについては通常通りソートテーブル１０６２に登録する。一方、輪郭描画用オブジェクトを構成する各ポリゴンについてはソートテーブル１０６２の先頭アドレスをずらして実際のデプス値より視点から見て後ろになるようにソートテーブル１０６２に登録する（ステップＳ２３）。
【００８５】
従って、ソートテーブル１０６２内の視点から遠いポリゴンから順に描画されるので、輪郭描画用オブジェクトに対して元のオブジェクトが上書きされる。最終的に輪郭描画用オブジェクトは、オブジェクトの縁全体を囲む部分だけが残り、この部分が輪郭色で描画されることとなる。
【００８６】
結果的に、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、オブジェクトに対して輪郭を描画することができる。
【００８７】
例えば、既に述べた従来の手法によれば、輪郭を描画するためには、表示対象となる多面体や三次元物体を面や多角形の辺単位まで分解して、辺毎に所定のアルゴリズムに基づいて輪郭として表示すべき辺であるか否かを判断する必要がある。そのため、輪郭を描画するための処理が非常に複雑であった。
【００８８】
これに対して本発明によれば、輪郭描画の対象であるオブジェクトを拡大すると共に任意の輪郭色を設定した輪郭描画用オブジェクトを生成してオブジェクトの後ろに位置を設定すれば良いだけである。従って、従来に比して輪郭を描画する処理が簡素化され、輪郭描画に関する処理速度を高めることができる。
【００８９】
輪郭描画に関する処理速度を高めることは、ビデオゲームに対して特に有用である。ビデオゲームでは、操作入力等に応じて、表示されるオブジェクトの位置や形状、カメラワークなどが逐次変化する。そして、この逐次変化する内容に応じた投影画像を即座に画面に表示しなければならない。輪郭描画に関する処理が複雑であると、たとえ輪郭を描画できたとしても画像の表示速度が遅くなってしまう。従って、表示速度を低下させることなく輪郭描画を行うためには、輪郭描画に関する手順が簡単であることが重要となるからである。
【００９０】
図６に示したアウトライン制御テーブル１０５８では、輪郭描画用オブジェクトは単色で描画されることを前提に、色データの欄５８５に輪郭色のデータが格納されていた。しかし、輪郭描画用オブジェクトにテクスチャマッピングを行うことも可能である。例えば、アウトライン制御テーブル１０５８の色データの欄５８５に、マッピングするテクスチャに関するデータ、例えばテクスチャの識別情報を格納しておく。そして、輪郭描画用オブジェクトに対応するオブジェクトを構成するポリゴンの各頂点に設定されたテクスチャ座標をそのまま使用して、色データの欄５８５に示されたテクスチャを輪郭描画用オブジェクトを構成する各ポリゴンにマッピングする。
【００９１】
この場合、図１１のステップＳ３９の処理はスキップされる。また、図８のステップＳ４では、通常のオブジェクトと同様に輪郭描画用オブジェクトを構成するポリゴンについても、ポリゴンを構成する各頂点のテクスチャ座標に基づいて補間処理を行い、ポリゴン内部の各画素のテクスチャ座標を計算する。そして、テクスチャ座標のテクセル値と、ポリゴンの各頂点に設定された色から計算された画素に対する色とを用いて生成された色が各画素の色としてフレームバッファ１１２に描き込まれる。
【００９２】
さらに、輪郭描画用オブジェクトへのテクスチャマッピングで使用されるテクスチャを工夫すればオブジェクトの輪郭部分の描画態様を動的に変化させることができるようになる。例えば、図１４に示す処理を図８のステップＳ４と並行して実施する。まず、ＣＤ−ＲＯＭ１３１に格納された輪郭描画用のテクスチャデータをフレームバッファ１１２のテクスチャ領域に読み出して展開する（ステップＳ５１）。そして、以下の処理を処理終了まで繰り返す。繰り返される処理はテクスチャの書き換え処理である（ステップＳ５５）。
【００９３】
テクスチャの書き換え処理には様々な方法がある。第１の方法は、図１５に示したように、例えば横方向の縞模様を含むテクスチャを横方向に区分された複数の領域に分割して、順次領域が上方向に移動していくように書き換える方法である。最も上の領域は最も下に移動する。例えば図１５のように一番下の領域から一番上の領域まで、１からｎ（ｎは自然数）の番号を付した場合には、図１６のように領域を移動させる。
【００９４】
すなわち、時刻ｔでは図１５に示した状態で、時刻ｔ＋１になると、ｎの領域を最も下に移動させ、１からｎ−１までの全ての領域を一つ上に移動させる。時刻ｔ＋２では、ｎ−１の領域を最も下に移動させ、ｎ及び１からｎ−２までの全ての領域を一つ上に移動させる。以上のような処理を繰り返すものである。以上のような処理によりオブジェクトの輪郭部分において縞模様がゆらゆらと上方向に移動するような状態が表現できる。なお、テクスチャを縦方向に区分された複数の領域に分割し、左又は右方向に領域を時間に応じて移動させることも可能である。
【００９５】
第２の方法は、時間に応じてテクスチャの明度を変化させるものである。例えば、テクスチャのパレットを時間に応じて変更することによりテクスチャの明度を変化させる。テクスチャの各テクセル値を時間に応じて直接変更するような手法も可能である。明度を変化させるだけであれば、テクスチャを書き換えない方法もある。例えば輪郭描画用オブジェクトのポリゴンの明度を時間に応じて変化させれば、テクスチャをマッピングしても最終的な明度は変化する。このように明度が変化する場合には、オブジェクトの輪郭部分がゆっくり点滅するような状態を表現することができる。
【００９６】
従って、単にオブジェクトの輪郭を描画するだけでなく、例えば、ゲームキャラクタがオーラを発している状態を表現することができるようになる。また、複数のゲームキャラクタのうち、注目するゲームキャラクタの輪郭部分の描画態様を動的に変化させるようにすれば、注目キャラクタをユーザに分かり易く告知することもできる。
【００９７】
以上のように、オブジェクトの輪郭描画を工夫することにより、オブジェクトの強調表示の態様を充実させることもできる。
【００９８】
（実施の形態２）
実施の形態１は描画処理の際にＺソート法を使用した隠面消去を行っていた。本実施の形態では描画の際にＺバッファを使用した隠面消去を行う。
【００９９】
本実施の形態において、例えばＣＤ−ＲＯＭ１３１に記録されていた本発明に係るプログラム及びデータが、ＣＤ−ＲＯＭドライブ１１３によりＲＡＭ１０５にロードされ、本発明に係るプログラムが実行されている場合におけるＲＡＭ１０５の状態を図１７に示す。本実施の形態においてＲＡＭ１０５には、少なくともプログラム記憶領域１０５０と、関連データ記憶領域１０５２と、ワークエリア１０６０とが含まれる。プログラム記憶領域１０５０に記憶されるプログラムについては後に説明する。
【０１００】
関連データ記憶領域１０５２には、ポリゴンテーブル１０５４と、頂点テーブル１０５６と、アウトライン制御テーブル１０５８とが含まれる。ここまでは実施の形態１と同じである。ワークエリア１０６０には、ソートテーブル１０６２の代わりに、ピクセルテーブル１０６４及びＺバッファ１０６６が含まれる。但し、ピクセルテーブル１０６４及びＺバッファ１０６６は、フレームバッファ１１２に設けられる場合もある。
【０１０１】
関連データ記憶領域１０５２に含まれるポリゴンテーブル１０５４は実施の形態１と同じであり、図３に示されている。ポリゴンテーブル１０５４は、描画対象となるオブジェクトと、そのオブジェクトを構成するポリゴンと、そのポリゴンを構成する頂点とを特定するためのテーブルである。
【０１０２】
関連データ記憶領域１０５２に含まれる頂点テーブル１０５６は実施の形態１と同じであり、図５に示されている。頂点テーブル１０５６は、描画対象となるオブジェクトと、そのオブジェクトを構成するポリゴンの頂点と、その頂点の座標値と、テクスチャ座標とを特定するためのテーブルである。
【０１０３】
関連データ記憶領域１０５２に含まれるアウトライン制御テーブル１０５８は図６に示されている限りにおいては実施の形態１と同じである。アウトライン制御テーブル１０５８は、輪郭描画の対象となるオブジェクト毎に、輪郭描画に必要なデータを格納するためのテーブルである。
【０１０４】
オブジェクト識別番号の欄５８１には、輪郭描画の対象となるオブジェクトのオブジェクト識別番号が格納される。拡大率の欄５８３には、輪郭描画の対象となるオブジェクトに対して生成される輪郭描画用オブジェクトの、元のオブジェクトに対する拡大率が格納される。色データの欄５８５には、輪郭描画の対象となるオブジェクト毎に、そのオブジェクトの輪郭色が格納される。
【０１０５】
座標調整値の欄５８７には、例えば輪郭描画の対象となるオブジェクトに均等に輪郭が付されるように輪郭描画用オブジェクトを移動させるための座標調整値が格納される。座標調整値はワールド座標系における値である。デプス調整値の欄５８９には、透視変換後における各ポリゴンのに対して、ポリゴンの各頂点のＺ値を調整するための値が格納される。
【０１０６】
本実施の形態では、後に述べるが輪郭描画用オブジェクトを構成するポリゴンを描画する際には、透視変換後にポリゴンの各頂点のデプス値を視点から見て後ろにずらす。後ろにずらすことにより、実施の形態１と同じように、対応するオブジェクトより輪郭描画用オブジェクトが後ろに配置されるようにする。以上述べたような処理を行うことにより、輪郭描画用オブジェクトは対応するオブジェクトと重ならない部分のみが描画されるようになる。
【０１０７】
ワークエリア１０６０に含まれるピクセルテーブル１０６４の一例を図１８に示す。ピクセルテーブル１０６４は、各画素の表示すべき色データを格納するためのテーブルである。図１８に示したように、ピクセルテーブル１０６４には画素識別番号の欄６４１と色データ（Ｒ，Ｇ，Ｂ）の欄６４３とが設けられている。画素識別番号は、図１９に示すように、表示画面１２０の画素ひとつひとつに付された識別番号である。図１９のように縦２４０画素、横３２０画素の場合には、例えば左上の０から順番に右下の７６７９９まで識別番号が付される。ピクセルテーブル１０６４では画素識別番号毎に色データが記憶される。
【０１０８】
ワークエリア１０６０に含まれるＺバッファ１０６６の一例を図２０に示す。Ｚバッファ１０６６は、画素毎に、ピクセルテーブル１０６４に格納された色データの元となるポリゴン内部の点（ポリゴンの頂点を含む）のＺ値を格納するためのテーブルである。よって、Ｚバッファ１０６６には、画素識別番号の欄６６１とＺ値の欄６６３が設けられている。
【０１０９】
次に本実施の形態におけるプログラムのアルゴリズムについて図８、図２１及び図２２を用いて説明する。
【０１１０】
演算処理部１０３は、起動時に、ＲＯＭ等に記憶されているオペレーティングシステムに基づき、ＣＤ−ＲＯＭドライブ１１３を介してＣＤ−ＲＯＭ１３１から画像処理やゲームの実行に必要なプログラムやデータを読み出し、ＲＡＭ１０５に転送させる。そして、演算処理部１０３は、ＲＡＭ１０５に転送されたプログラムを実行することにより、以下に記載する処理を実現する。
【０１１１】
なお、家庭用ゲーム装置１０１で行われる制御及び処理の中には、演算処理部１０３以外の回路が演算処理部１０３と協働して実際の制御及び処理を行っている場合もある。説明の便宜上、以下では、演算処理部１０３が関係する制御及び処理は、演算処理部１０３が直接的に実行しているものとして説明する。
【０１１２】
また、画像処理やゲームを実行するために必要なプログラムやデータは、実際には演算制御部１０３からの命令に従って処理の進行状況に応じて順次ＣＤ−ＲＯＭ１３１から読み出されてＲＡＭ１０５に転送される。しかし、以下に示す説明では、発明の理解を容易にするため、ＣＤ−ＲＯＭ１３１からのデータの読み出しや、ＲＡＭ１０５への転送に関する記述は省略している。
【０１１３】
表示に関するメインフローは図８に示されている限りにおいて実施の形態１と同じである。まず、表示させるオブジェクトが特定される（ステップＳ１）。次に、表示させるオブジェクトのうち１つのオブジェクトに対して描画演算処理が実施される（ステップＳ２）。描画演算処理については後に詳しく述べる。そして表示させる全オブジェクトについて描画演算処理が終了したか否かが判断される（ステップＳ３）。もし、表示させるオブジェクトのうち未処理のオブジェクトが存在する場合にはステップＳ２に戻る。もし、表示させる全オブジェクトを処理した場合には、フレームバッファ１１２に描画処理を実施する（ステップＳ４）。そして、フレームバッファ１１２に格納された画像データをＴＶセット１２１の表示画面１２０に表示する（ステップＳ５）。
【０１１４】
本実施の形態ではＺバッファ法を用いて描画処理を実施する。Ｚバッファ法では、描画すべきポリゴンのデータを含むディスプレイリストを用いてフレームバッファ１１２への描画処理を実行する。ディスプレイリストに含まれるポリゴンのデータには、ポリゴンの各頂点のスクリーン座標系における座標（デプス値を含む）、テクスチャ座標及び色データが含まれる。
【０１１５】
ステップＳ４では、ディスプレイリストから一つずつポリゴンのデータを取り出し、ポリゴンの各頂点の座標、テクスチャ座標及び色データに基づいて補間処理を行い、ポリゴン内部の点の座標、テクスチャ座標及び色データを計算する。この際、ポリゴン内部の点（ポリゴンの頂点を含む）の座標に含まれるデプス値と、当該ポリゴン内部の点の座標に対応する画素識別番号のＺバッファ１０６６内のＺ値とを比較する。そして、デプス値の方が小さな値を有している場合のみ後の処理を実施する。
【０１１６】
すなわち、デプス値を、ポリゴン内部の点の座標に対応する画素識別番号に対応してＺバッファ１０６６のＺ値の欄６６３に格納する。そして、テクスチャ座標を使用してテクセル値を取り出し、テクセル値と補間により得られた色データ（又はポリゴンの頂点の色データ）とを使用して描画すべき画素の色を計算する。画素の色は、ポリゴン内部の点の座標に対応する画素識別番号に対応してピクセルテーブル１０６４の色データの欄６４３に格納される。テクスチャを使用しない場合には、補間により得られた色データ（又はポリゴンの頂点の色データ）が、ポリゴン内部の点の座標に対応する画素識別番号に対応してピクセルテーブル１０６４の色データの欄６４３に格納される。
【０１１７】
従って、同一画素に対して投影されるポリゴン内部の点が複数存在する場合に、その中から最も視点に近いポリゴン内部の点の色データがピクセルテーブル１０６４に格納されることになる。視点に最も近いポリゴン内部の点が、元のオブジェクトを構成するポリゴン内部の点である場合には、元のオブジェクトを構成するポリゴン内部の点における色データが画素に対応する画素識別番号に対応してピクセルテーブル１０６４に格納される。
【０１１８】
一方、視点に最も近いポリゴン内部の点が、輪郭描画用オブジェクトを構成するポリゴン内部の点である場合には、輪郭描画用オブジェクトの輪郭色が、画素に対応する画素識別番号に対応してピクセルテーブル１０６４に格納される。なお、輪郭描画用オブジェクトの輪郭色は、輪郭描画用オブジェクトのポリゴンの色データである。
【０１１９】
次に図２１を用いてステップＳ２の描画演算処理の説明を行う。最初に、表示する１つの未処理オブジェクトを特定する（ステップＳ７１）。特定したオブジェクトについて現在の姿勢を計算する（ステップＳ７３）。オブジェクトを構成するポリゴンの位置を現在の姿勢に合わせて変更する。そして、現在の処理が輪郭描画用オブジェクトに対する処理であるか判断する（ステップＳ７５）。なお、最初は、ステップＳ７１において１つの未処理オブジェクトを特定しているので、輪郭描画用オブジェクトに対する処理ではない。よって、ステップＳ７７に移行する。
【０１２０】
ステップＳ７７では、特定された１つの未処理オブジェクトのデータを用意する。そして、用意された１つの未処理オブジェクトのデータを透視変換する（ステップＳ８１）。透視変換により、特定された１つの未処理オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点における視点からの距離、すなわちデプス値が算出される。
【０１２１】
次に、特定された１つの未処理オブジェクト（輪郭描画の対象となるオブジェクト）を構成する各ポリゴンについて、ポリゴンの各頂点におけるデプス値を、デプス調整値で調整する（ステップＳ８３）。なお、特定された１つの未処理オブジェクトを処理している間はデプス調整値は０である。従って、実質的に本ステップはスキップされる。そして、特定された１つの未処理オブジェクトを構成する各ポリゴンのデータをディスプレイリストに加える（ステップＳ８５）。
【０１２２】
次に、特定された１つの未処理オブジェクトを処理していたのか判断する（ステップＳ８７）。最初の実行時には特定された１つの未処理オブジェクトを処理していたので、ステップＳ８９に移行する。ステップＳ８９では、特定された１つの未処理オブジェクトが輪郭描画の対象となっているか判断する。ここでは図６のアウトライン制御テーブル１０５８を参照して、アウトライン制御テーブル１０５８に登録されているオブジェクトであるか否かを判断すれば良い。
【０１２３】
もし、アウトライン制御テーブル１０５８に登録されていないオブジェクトであれば、輪郭を描画する必要は無いので、処理を終了する。一方、アウトライン制御テーブル１０５８に登録されているオブジェクトであれば、ステップＳ９３に移行する。ステップＳ９３では、処理の対象を、特定された１つの未処理オブジェクトに対応する輪郭描画用オブジェクトに切り換える。
【０１２４】
ステップＳ７５に戻って、再度輪郭描画用オブジェクトに対する処理であるか判断する。ステップＳ９３で輪郭描画用オブジェクトに処理の対象を切り換えているので、今回はステップＳ７９に移行する。ステップＳ７９ではアウトライン設定処理を行う。アウトライン設定処理については図２２を用いて詳細に説明する。
【０１２５】
図２２ではまず特定された１つの未処理オブジェクト（輪郭の描画対象となる元のオブジェクト）のデータを複写し、輪郭描画用オブジェクトのデータとして生成する（ステップＳ９５）。次に、輪郭描画用オブジェクトのサイズを元のオブジェクトよりも拡大する（ステップＳ９７）。サイズの拡大にはアウトライン制御テーブル１０５８の拡大率の欄５８３の値を使用する。そして、輪郭描画用オブジェクトの色データを変更する（ステップＳ９９）。輪郭描画用オブジェクトの色データには、アウトライン制御テーブル１０５８の色データの欄５８５のデータを使用する。色データの欄５８５における色が輪郭色となる。
【０１２６】
次に輪郭描画用オブジェクトの座標データの調整を行う（ステップＳ１０１）。座標データの調整にはアウトライン制御テーブル１０５８の座標調整値の欄５８７の座標値を用いる。すなわち、輪郭描画用オブジェクトの基準位置を座標調整値だけずらす。そして、図２１のステップＳ８３で使用するデプス調整値の設定を行う（ステップＳ１０３）。デプス調整値にはアウトライン制御テーブル１０５８のデプス調整値の欄５８９の値を用いる。以上のようにして生成された輪郭描画用オブジェクトのデータを透視変換用に用意する（ステップＳ１０５）。この段階で図２１のステップＳ８１に戻る。
【０１２７】
図２１では、用意した輪郭描画用オブジェクトのデータを透視変換する（ステップＳ８１）。透視変換により、輪郭描画用オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点における視点からの距離、すなわちデプス値が算出される。そして、図２２のステップＳ１０３で設定されたデプス調整値で、輪郭描画用オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点のデプス値を調整する。すなわち、輪郭描画用オブジェクトを構成する各ポリゴンを、輪郭描画の対象となる元のオブジェクトより後ろに配置する。そして、デプス調整値によりデプス値が調整された輪郭描画用オブジェクトの各ポリゴンのデータをディスプレイリストに加える（ステップＳ８５）。
【０１２８】
次いで、現在処理しているオブジェクトがステップＳ７１で特定した１つの未処理オブジェクトの処理であるか判断する（ステップＳ８７）。現在は輪郭描画用オブジェクトを処理しているので、ステップＳ９１に移行する。ステップＳ９１では輪郭描画用オブジェクトの処理終了に応じてデプス調整値を０にリセットする（ステップＳ９１）。そして、処理を終了する。
【０１２９】
以上の処理により、オブジェクトを構成するポリゴンについては通常通りディスプレイリストに登録される。一方、オブジェクトに対応する輪郭描画用オブジェクトを構成するポリゴンについては、オブジェクトより各頂点のデプス値を大きく設定して、ディスプレイリストに登録される。そして、ディスプレイリストに従って、Ｚバッファ法による隠面消去処理を行い、フレームバッファ１１２に画像を描画し、表示画面１２０に表示する。従って、視点から見てオブジェクトと重なる部分を除き輪郭描画用オブジェクトは、輪郭色で描画される。
【０１３０】
本実施の形態においても、相対的に輪郭描画用オブジェクトが、輪郭描画の対象となる元のオブジェクトの後ろに位置すれば良い。よって、輪郭描画の対象となる元のオブジェクトの処理における図２１のステップＳ８３で、輪郭描画の対象となる元のオブジェクトを構成するポリゴンの各頂点のデプス値を調整して、輪郭描画の対象となる元のオブジェクトが輪郭描画用オブジェクトより前に位置するように、すなわちより視点に近い位置になるように設定しても良い。
【０１３１】
実施の形態２によれば、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する（ステップＳ９７）。次に、オブジェクトに対して例えば縁全体に均等な太さの輪郭が付されるように輪郭描画用オブジェクトの位置が微調整される（ステップＳ１０１）。その後、Ｚバッファ法を用いてオブジェクト及び輪郭描画用オブジェクトを描画する（ステップＳ４）。ここで、オブジェクトを構成する各ポリゴンについては通常通りディスプレイリストに登録する。一方、輪郭描画用オブジェクトを構成する各ポリゴンについてはポリゴンの各頂点のデプス値を視点から見て後ろにずらした後にディスプレイリストに登録する（ステップＳ８５）。
【０１３２】
従って、同一画素に投影されるポリゴンが複数存在し且つ視点から最も近いポリゴンが輪郭描画の対象となるオブジェクトを構成するポリゴンである場合には、輪郭描画の対象となるオブジェクトを構成するポリゴン内部の点の色データに従って画素が描画される。一方、同一画素に投影されるポリゴンが複数存在し且つ視点から最も近いポリゴンが輪郭描画用オブジェクトを構成するポリゴンである場合には、輪郭描画用オブジェクトを構成するポリゴン内部の点の色データに従って、すなわち輪郭色で画素が描画される。最終的に輪郭描画用オブジェクトは、オブジェクトの縁全体を囲む部分だけが残り、この部分が輪郭色で描画されることとなる。
【０１３３】
結果的に、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、オブジェクトに対して輪郭を描画することができる。
【０１３４】
例えば、既に述べた従来の手法によれば、輪郭を描画するためには、表示対象となる多面体や三次元物体を面や多角形の辺単位まで分解して、辺毎に所定のアルゴリズムに基づいて輪郭として表示すべき辺であるか否かを判断する必要がある。そのため、輪郭を描画するための処理が非常に複雑であった。
【０１３５】
これに対して本発明によれば、輪郭描画の対象であるオブジェクトを拡大すると共に任意の輪郭色を設定した輪郭描画用オブジェクトを生成してオブジェクトの後ろに位置を設定すれば良いだけである。従って、従来に比して輪郭を描画する処理が簡素化され、輪郭描画に関する処理速度を高めることができる。
【０１３６】
輪郭描画に関する処理速度を高めることは、ビデオゲームに対して特に有用である。ビデオゲームでは、操作入力等に応じて、表示されるオブジェクトの位置や形状、カメラワークなどが逐次変化する。そして、この逐次変化する内容に応じた投影画像を即座に画面に表示しなければならない。輪郭描画に関する処理が複雑であると、たとえ輪郭を描画できたとしても画像の表示速度が遅くなってしまう。従って、表示速度を低下させることなく輪郭描画を行うためには、輪郭描画に関する手順が簡単であることが重要となるからである。
【０１３７】
実施の形態１で述べたように本実施の形態においても輪郭描画用オブジェクトにテクスチャマッピングを行うことが可能である。加えて、オブジェクトの輪郭部分の描画態様を動的に変化させるために、テクスチャマッピングで使用されるテクスチャを時間に応じて変化させることも可能である。また、テクスチャを変化させず、輪郭描画用オブジェクトを構成するポリゴンの各頂点に設定される色データの明度を時間に応じて変化させることも可能である。
【０１３８】
（その他の実施の形態）
（１）上の説明では、オブジェクトを、ビデオゲームのキャラクタのモデル全体として説明してきた。しかし、オブジェクトをモデルの一部分として取り扱うことも可能である。例えば、人型のゲームキャラクタにおいてオブジェクトを頭部、胸部、右腕部、左腕部等々と各部位単位に設定し、オブジェクト単位で輪郭を描画する処理を実行することも可能である。各部位単位にオブジェクトを設定すると、部位毎にデプス調整値を設定することにより、輪郭色や輪郭の太さをきめ細やかに設定することが可能となる。
【０１３９】
（２）上の説明ではオブジェクトを複製することにより輪郭描画用オブジェクトを生成していたが、オブジェクトを構成するポリゴンの数より、輪郭描画用オブジェクトを構成するポリゴンの数が少なくなるように、より簡易的に輪郭描画用オブジェクトを構成することも可能である。また、オブジェクトから輪郭描画用オブジェクトを生成することなく、別途輪郭描画用オブジェクトのデータを予め用意しておくことも可能である。
【０１４０】
（３）上の説明ではポリゴン、特に三角形ポリゴンを前提に処理を説明していた。しかし、オブジェクト及び輪郭描画用オブジェクトが、四角形以上の多角形ポリゴンを含む複数のポリゴンにて構成されるとすることも可能である。さらに、オブジェクト及び輪郭描画用オブジェクトが曲面を含む複数の面で構成され、各面が１又は複数のポリゴンで近似されて処理されるとしてもよい。
【０１４１】
（４）上の説明ではオブジェクトをアウトライン制御テーブル１０５８の拡大率の欄５８３に格納される拡大率の値に従って拡大し、輪郭描画用オブジェクトを生成していた。しかし、輪郭描画用オブジェクトのサイズを元のオブジェクトと同一として、元のオブジェクトのサイズを縮小してもよい。
【０１４２】
（５）上の説明では時間に応じてテクスチャを書き換える処理について説明していたが、複数のテクスチャを用意し、マッピングすべきテクスチャを時間に応じて切り換えてもよい。
【０１４３】
（６）使用するハードウエアの変更
図１は一例であって、様々な変更が可能である。通信インターフェース１１５を備えるか否かは任意である。本発明は直接サウンド処理には関係しないので、サウンド処理部１０９を備えている必要は無い。
【０１４４】
また、ＣＤ−ＲＯＭは記録媒体の一例であって、ＲＯＭのような内部メモリ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカートリッジ、フロッピーディスク、磁気ディスク、ＤＶＤ−ＲＡＭ等の他の記録媒体であってもよい。その場合にはＣＤ−ＲＯＭドライブ１１３を、対応する媒体で読み出し可能なドライブにする必要がある。
【０１４５】
さらに、以上は本発明をコンピュータ・プログラムにより実装した場合であるが、コンピュータ・プログラムと電子回路などの専用の装置の組み合せ、又は電子回路などの専用の装置のみによっても実装することは可能である。
【０１４６】
以上、本発明を実施の形態に基づいて具体的に説明したが、本発明は上記実施の形態に限定されるものではない。要旨を逸脱しない範囲で適宜変更可能である。例えば、上記実施の形態では、家庭用ゲーム機をプラットフォームとして本発明を実現した場合について述べたが、本発明は通常のコンピュータ、アーケードゲーム機などをプラットフォームとして実現しても良い。また、携帯情報端末、カーナビゲーション・システム等をプラットフォームにして実現することも考えられる。
【０１４７】
また、本発明を実現するためのプログラムやデータは、コンピュータやゲーム機に対して着脱可能なＣＤ−ＲＯＭ等の記録媒体により提供される形態に限定されない。すなわち、本発明を実現するためのプログラムやデータを、図１に示す通信インターフェース１１５、通信回線１４１を介して接続されたネットワーク１５１上の他の機器側のメモリに記録し、プログラムやデータを通信回線１４１を介して必要に応じて順次ＲＡＭ１０５に格納して使用する形態であってもよい。
【０１４８】
（表示例）
図２３に輪郭描画の対象となる元のオブジェクト１０の表示例を示す。図２３に示されるようにオブジェクト１０には輪郭は付されていない。そこで図２４に示すように、輪郭描画の対象となる元のオブジェクト１０のサイズを拡大し（ステップＳ３７）、所定の輪郭色を設定した輪郭描画用オブジェクト２０を生成する（ステップＳ３５、Ｓ３９）。そして、上で述べたようにデプス値を調整し、輪郭描画用オブジェクト２０を輪郭描画の対象である元のオブジェクト１０の後ろに配置する（ステップＳ２３）。適切なデプス調整値を選択すれば、図２５に示すように、輪郭が付されたオブジェクト３０を描画することができる（ステップＳ４）。図２５では、オブジェクト１０の右手の先端部分がオブジェクト１０の体より前に来ているが、この右手の先端部分にも輪郭が付されている。
【０１４９】
デプス調整値による輪郭の違いを図２６乃至図２８にて説明する。図２６はデプス調整値０、すなわちオブジェクト１０と輪郭描画用オブジェクト２０のデプス値が同じ場合の輪郭付オブジェクト３２の表示例を示している。同じデプス値が設定されていると、フレームバッファ１１２に描き込まれる順番によって輪郭描画用オブジェクト２０のポリゴンが描画される部分と、オブジェクト１０のポリゴンが描画される部分とが生じる。よってオブジェクトの手の内部には本来現れるべきではない輪郭描画用オブジェクト２０のポリゴンの色が描画されてしまっている。
【０１５０】
図２７はデプス調整値１２における輪郭付オブジェクト３４の表示例である。デプス調整値は図２５の場合と同じであり、オブジェクト１０の体より前に位置するオブジェクト１０の左手の先端部分の輪郭も表示される。また、デプス調整０における場合とは異なり、オブジェクト１０の手の内部には輪郭描画用オブジェクトのポリゴンは描画されていない。
【０１５１】
図２８はデプス調整値３０における輪郭付オブジェクト３６の表示例である。デプス調整値３０の場合、輪郭描画用オブジェクト２０のポリゴンの位置はオブジェクト１０の体の部分のポリゴンよりも視点から見て後ろに位置するため、オブジェクト１０の体の前に位置するオブジェクト１０の左手の先端部分の輪郭は描画されていない。
【０１５２】
次に図２３に示したオブジェクトの輪郭部分を時間に応じて動的に変化させて描画する場合を説明する。図２９は、横縞模様のテクスチャをマッピングした輪郭描画用オブジェクト４０の表示例を示している。輪郭描画用オブジェクト４０を、適切なデプス調整値を選択して、図２３に示したオブジェクト１０の後ろに配置すれば、図３０のように、横縞模様の輪郭が付されたオブジェクト５０を描画することができるようになる。図１４乃至図１６で説明したようにテクスチャを時間に応じて書き換えれば、輪郭部分の横縞模様が徐々に上に移動していくように描画することができる。
【０１５３】
従って、単にオブジェクトの輪郭を描画するだけでなく、例えばゲームキャラクタがオーラを発している状態を表現すること等ができるようになる。また、複数のゲームキャラクタのうち、注目するゲームキャラクタの輪郭部分の描画態様を動的に変化させるようにすれば、注目キャラクタをユーザに分かり易く告知することもできる。
【０１５４】
以上説明したように、オブジェクトの輪郭描画を工夫することにより、オブジェクトの強調表示の態様を充実させることもできる。
【０１５５】
デプス調整値による輪郭の違いを図３１乃至図３３にて説明する。図３１はデプス調整値０、すなわちオブジェクト１０と輪郭描画用オブジェクト４０のデプス値が同じ場合の輪郭付オブジェクト５２の表示例を示している。同じデプス値が設定されていると、フレームバッファ１１２に描き込まれる順番によって輪郭描画用オブジェクト４０のポリゴンが描画される部分と、オブジェクト１０のポリゴンが描画される部分とが生じる。よってオブジェクトの手の内部には本来現れるべきではない輪郭描画用オブジェクト４０のポリゴンの色が描画されてしまっている。
【０１５６】
図３２はデプス調整値１２における輪郭付オブジェクト５４の表示例である。デプス調整値は図３０の場合と同じであり、オブジェクト１０の体より前に位置するオブジェクト１０の左手の先端部分の輪郭も表示される。また、デプス調整０における場合とは異なり、オブジェクト１０の左手の内部には輪郭描画用オブジェクト４０のポリゴンは描画されていない。
【０１５７】
図３３はデプス調整値３０における輪郭付オブジェクト５６の表示例である。デプス調整値３０の場合、輪郭描画用オブジェクト４０のポリゴンの位置はオブジェクト１０の体の部分のポリゴンよりも視点から見て後ろに位置するため、オブジェクト１０の体の前に位置するオブジェクト１０の左手の先端部分の輪郭は描画されていない。
【０１５８】
【発明の効果】
以上述べたように本発明によれば、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、オブジェクトに輪郭を描画することが可能となる。
【図面の簡単な説明】
【図１】家庭用ゲーム機のブロック構成図である。
【図２】実施の形態１におけるＲＡＭの状態を示すブロック図である。
【図３】ポリゴンテーブルの一例を示す図である。
【図４】オブジェクトの一例を示す図である。
【図５】頂点テーブルの一例を示す図である。
【図６】アウトライン制御テーブルの一例を示す図である。
【図７】ソートテーブルを説明するための模式図である。
【図８】実施の形態１及び２における表示処理のフローを示すフローチャートである。
【図９】実施の形態１における描画演算処理の処理フローを示すフローチャートである。
【図１０】ソートテーブルにオブジェクトを構成するポリゴンを登録する際の処理を説明するための模式図である。
【図１１】実施の形態１におけるアウトライン設定処理の処理フローを示すフローチャートである。
【図１２】ソートテーブルに輪郭描画用オブジェクトを構成するポリゴンを登録する際の処理を説明するための模式図である。
【図１３】輪郭描画用オブジェクト及びオブジェクトのポリゴンを登録後、先頭アドレスを元に戻した状態におけるソートテーブルを説明するための模式図である。
【図１４】テクスチャ制御処理の処理フローを示すフローチャートである。
【図１５】時間に応じて変化するテクスチャの説明をするための模式図である。
【図１６】時間に応じてどのようにテクスチャが変化するかを説明するための模式図である。
【図１７】実施の形態２におけるＲＡＭの状態を示すブロック図である。
【図１８】ピクセルテーブルの一例を示す図である。
【図１９】画素識別番号を説明するための模式図である。
【図２０】Ｚバッファの一例を示す図である。
【図２１】実施の形態２における描画演算処理の処理フローを示すフローチャートである。
【図２２】実施の形態２におけるアウトライン設定処理の処理フローを示すフローチャートである。
【図２３】輪郭描画の対象となるオブジェクトの一例を示す表示画像である。
【図２４】単色の輪郭色を伴う輪郭描画用オブジェクトの一例を示す表示画像である。
【図２５】輪郭付オブジェクトの一例を示す表示画像である。
【図２６】デプス調整値０における輪郭付オブジェクトの一例を示す表示画像である。
【図２７】デプス調整値１２における輪郭付オブジェクトの一例を示す表示画像である。
【図２８】デプス調整値３０における輪郭付オブジェクトの一例を示す表示画像である。
【図２９】横縞模様のテクスチャがマッピングされた輪郭描画用オブジェクトの一例を示す表示画像である。
【図３０】横縞模様の輪郭付オブジェクトの一例を示す表示画像である。
【図３１】デプス調整値０における横縞模様の輪郭付オブジェクトの一例を示す表示画像である。
【図３２】デプス調整値１２における横縞模様の輪郭付オブジェクトの一例を示す表示画像である。
【図３３】デプス調整値３０における横縞模様の輪郭付オブジェクトの一例を示す表示画像である。
【符号の説明】
１０１  家庭用ゲーム機    １０３  演算処理部
１０５  ＲＡＭ    １０９  サウンド処理部    １１２  フレームバッファ
１１１  グラフィックス処理部    １１３  ＣＤ−ＲＯＭドライブ
１１５  通信インターフェース    １１７  インターフェース部
１１９  内部バス    １２１  ＴＶセット  １２０  表示画面
１３１  ＣＤ−ＲＯＭ    １４１  通信媒体    １５１  ネットワーク
１６１  キーパッド    １７１  メモリカード
１０５０  プログラム記憶領域    １０５２  関連データ記憶領域
１０５４  ポリゴンテーブル    １０５６  頂点テーブル
１０５８  アウトライン制御テーブル    １０６０  ワークエリア
１０６２  ソートテーブル    １０６４  ピクセルテーブル
１０６６  Ｚバッファ
【図１】
0003604312.tif 000002
【図２】
0003604312.tif 000003
【図３】
0003604312.tif 000004
【図４】
0003604312.tif 000005
【図５】
0003604312.tif 000006
【図６】
0003604312.tif 000007
【図７】
0003604312.tif 000008
【図８】
0003604312.tif 000009
【図９】
0003604312.tif 000010
【図１０】
0003604312.tif 000011
【図１１】
0003604312.tif 000012
【図１２】
0003604312.tif 000013
【図１３】
0003604312.tif 000014
【図１４】
0003604312.tif 000015
【図１５】
0003604312.tif 000016
【図１６】
0003604312.tif 000017
【図１７】
0003604312.tif 000018
【図１８】
0003604312.tif 000019
【図１９】
0003604312.tif 000020
【図２０】
0003604312.tif 000021
【図２１】
0003604312.tif 000022
【図２２】
0003604312.tif 000023
【図２３】
0003604312.tif 000024
【図２４】
0003604312.tif 000025
【図２５】
0003604312.tif 000026
【図２６】
0003604312.tif 000027
【図２７】
0003604312.tif 000028
【図２８】
0003604312.tif 000029
【図２９】
0003604312.tif 000030
【図３０】
0003604312.tif 000031
【図３１】
0003604312.tif 000032
【図３２】
0003604312.tif 000033
【図３３】
0003604312.tif 000034