(57)【特許請求の範囲】
【請求項１】
互いに直交しあうＸ軸およびＹ軸からなるＸＹ平面と、当該ＸＹ平面に対する高さをあらわすＨ軸によって３次元的に表現される３次元オブジェクトを描画する３次元グラフィック装置において、
前記３次元オブジェクトの上面における前記ＸＹ平面上の位置を特定する２次元頂点データの入力を受け付ける入力手段と、
前記３次元オブジェクトの上面に関する法線ベクトルと、光源の方向を示す光源ベクトルとに基づいて、前記上面に関する輝度の変調係数を算出する算出手段と、
前記入力手段によって入力された２次元頂点データと前記算出手段によって算出された変調係数とを用いて前記上面を描画するとともに、前記変調係数を用いて前記３次元オブジェクト以外の他の３次元オブジェクトの上面を描画する描画手段と、
を備えることを特徴とする３次元グラフィック装置。
【請求項２】
互いに直交しあうＸ軸およびＹ軸からなるＸＹ平面と、当該ＸＹ平面に対する高さをあらわすＨ軸によって３次元的に表現される３次元オブジェクトを描画する３次元グラフィック装置において、
前記３次元オブジェクトの上面における前記ＸＹ平面上の位置を特定する２次元頂点データの入力を受け付ける入力手段と、
前記入力手段によって入力された２次元頂点データに基づいて、前記３次元オブジェクトの側面に関する前記ＸＹ平面上の２次元法線ベクトルを設定する設定手段と、
前記設定手段によって設定された２次元法線ベクトルと、前記ＸＹ平面上における光源の２次元方向を示す光源ベクトルとに基づいて、前記側面に関する輝度の変調係数を算出する算出手段と、
前記２次元頂点データと前記算出手段によって算出された変調係数とを用いて、前記側面を描画する描画手段と、
を備えることを特徴とする３次元グラフィック装置。
【請求項３】
前記設定手段は、
前記３次元オブジェクトの隣り合う２つの側面に関する前記ＸＹ平面上の２次元法線ベクトルに基づいて、前記２つの側面間の稜線に関する前記ＸＹ平面上の２次元法線ベクトルを設定し、
前記算出手段は、
前記設定手段によって設定された稜線に関する２次元法線ベクトルと、前記光源ベクトルとに基づいて、前記２つの側面に関する輝度の変調係数を算出し、
前記描画手段は、
前記２次元頂点データと前記算出手段によって算出された前記２つの側面に関する輝度の変調係数とを用いて、前記２つの側面を描画することを特徴とする請求項２に記載の３次元グラフィック装置。
【請求項４】
前記側面を特定する２つの２次元頂点データと視線の２次元方向を示す視線方向ベクトルとに基づいて、前記側面が前記視線の２次元方向に相対しているか否かを判定する判定手段を備え、
前記算出手段は、
前記判定手段によって判定された判定結果に基づいて、前記側面に関する輝度の変調係数を算出することを特徴とする請求項２または３に記載の３次元グラフィック装置。
【請求項５】
前記判定手段は、
前記側面に関する２次元法線ベクトルと前記視線方向ベクトルとの内積値の符号に基づいて、前記側面が視線の２次元方向に相対しているか否かを判定することを特徴とする請求項４に記載の３次元グラフィック装置。
【請求項６】
互いに直交しあうＸ軸およびＹ軸からなるＸＹ平面と、当該ＸＹ平面に対する高さをあらわすＨ軸によって３次元的に表現される３次元オブジェクトを描画するコンピュータが、
前記コンピュータが備える入力手段が、前記３次元オブジェクトの上面における前記ＸＹ平面上の位置を特定する２次元頂点データの入力を受け付ける入力工程と、
前記コンピュータが備える算出手段が、前記３次元オブジェクトの上面に関する法線ベクトルと、光源の方向を示す光源ベクトルとに基づいて、前記上面に関する輝度の変調係数を算出する算出工程と、
前記コンピュータが備える描画手段が、前記入力工程によって入力された２次元頂点データと前記算出工程によって算出された変調係数とを用いて前記上面を描画するとともに、前記変調係数を用いて前記３次元オブジェクト以外の他の３次元オブジェクトの上面を描画する描画工程と、
を実行することを特徴とする３次元グラフィック方法。
【請求項７】
互いに直交しあうＸ軸およびＹ軸からなるＸＹ平面と、当該ＸＹ平面に対する高さをあらわすＨ軸によって３次元的に表現される３次元オブジェクトを描画するコンピュータが、
前記コンピュータが備える入力手段が、前記３次元オブジェクトの上面における前記ＸＹ平面上の位置を特定する２次元頂点データの入力を受け付ける入力工程と、
前記コンピュータが備える設定手段が、前記入力工程によって入力された２次元頂点データに基づいて、前記３次元オブジェクトの側面に関する前記ＸＹ平面上の２次元法線ベクトルを設定する設定工程と、
前記コンピュータが備える算出手段が、前記設定工程によって設定された２次元法線ベクトルと、前記ＸＹ平面上における光源の２次元方向を示す光源ベクトルとに基づいて、前記側面に関する輝度の変調係数を算出する算出工程と、
前記コンピュータが備える描画手段が、前記２次元頂点データと前記算出工程によって算出された変調係数とを用いて、前記側面を描画する描画工程と、
を実行することを特徴とする３次元グラフィック方法。
【請求項８】
入力手段、算出手段および描画手段を備えるコンピュータに、互いに直交しあうＸ軸およびＹ軸からなるＸＹ平面と、当該ＸＹ平面に対する高さをあらわすＨ軸によって３次元的に表現される３次元オブジェクトを描画させる３次元グラフィックプログラムであって、
前記入力手段に、前記３次元オブジェクトの上面における前記ＸＹ平面上の位置を特定する２次元頂点データの入力を受け付ける入力工程を実行させ、
前記算出手段に、前記３次元オブジェクトの上面に関する法線ベクトルと、光源の方向を示す光源ベクトルとに基づいて、前記上面に関する輝度の変調係数を算出する算出工程を実行させ、
前記描画手段に、前記入力工程によって入力された２次元頂点データと前記算出工程によって算出された変調係数とを用いて前記上面を描画するとともに、前記変調係数を用いて前記３次元オブジェクト以外の他の３次元オブジェクトの上面を描画する描画工程を実行させることを特徴とする３次元グラフィックプログラム。
【請求項９】
入力手段、設定手段、算出手段および描画手段を備えるコンピュータに、互いに直交しあうＸ軸およびＹ軸からなるＸＹ平面と、当該ＸＹ平面に対する高さをあらわすＨ軸によって３次元的に表現される３次元オブジェクトを描画させる３次元グラフィックプログラムであって、
前記入力手段に、前記３次元オブジェクトの上面における前記ＸＹ平面上の位置を特定する２次元頂点データの入力を受け付ける入力工程を実行させ、
前記設定手段に、前記入力工程によって入力された２次元頂点データに基づいて、前記３次元オブジェクトの側面に関する前記ＸＹ平面上の２次元法線ベクトルを設定する設定工程を実行させ、
前記算出手段に、前記設定工程によって設定された２次元法線ベクトルと、前記ＸＹ平面上における光源の２次元方向を示す光源ベクトルとに基づいて、前記側面に関する輝度の変調係数を算出する算出工程を実行させ、
前記描画手段に、前記２次元頂点データと前記算出工程によって算出された変調係数とを用いて、前記側面を描画する描画工程を実行させることを特徴とする３次元グラフィックプログラム。
【請求項１０】
請求項８または９に記載の３次元グラフィックプログラムを記録したコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、３次元グラフィックスにおける照光処理をおこなう３次元グラフィック装置、３次元グラフィック方法、３次元グラフィックプログラム、および記録媒体に関する。
【背景技術】
【０００２】
３次元グラフィックスに関しては、従来から各種提案されている。たとえば、下記特許文献１の従来技術では、２次元地図とそれに付随した建物情報に含まれる建物の材質、主用途、床面積のうち少なくともいずれかの情報により２次元地図上の建物の階数を確率計算して決定し、３次元地図を作成する。
【０００３】
また、下記特許文献２の従来技術では、あらかじめ建物の底面形状と高さ情報に応じて準備した複数の３次元モデルパターンに従って３次元モデルを生成することで小規模なコンピュータで３次元景観を表示させている。さらに、下記特許文献３の従来技術では、オリジナルの３次元地図データを３次元地図のデータ構造をツリー構造で表現したシークグラフデータと、３次元地図に含まれるオブジェクトを描画するための描画データに分割加工し、シークグラフを参照して表示領域を特定し表示処理をおこなっている。
【０００４】
【特許文献１】特開２００１−２６６１７７号公報
【特許文献２】特開２００２−２９８１６２号公報
【特許文献３】特開２００５−５６０７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した特許文献１〜３の従来技術では、描画対象物が一般的なビルのように明らかに単純な形状であったとしても、グラフィックスＬＳＩでライティング計算する場合、複雑な任意形状と同等の正直な演算処理をしてしまい、演算処理が遅くなるという問題があった。また、グラフィックＬＳＩで照光計算するためには、頂点情報の一つに法線ベクトルを与える必要があるが、２次元地図データのような入力しか与えられないアプリケーションでは、頂点座標から法線ベクトルを毎回算出しなければならず、処理が重くなっていた。さらに、ＣＰＵで照光計算すると、ＣＰＵの負荷が過大になってしまうという問題があった。
【０００６】
このように、照光計算を逐次的に実行する場合、無駄な計算が入り込むと著しく性能が低下してしまうという問題があった。一方、照光計算を並列的に実行できるシステムの場合は、無駄な計算による性能低下の影響は少なくなるが、無駄なデータ転送が発生するため、総合的に性能が低下してしまうという問題があった。また、無駄な照光計算により消費電力の浪費が増大するという問題があった。
【０００７】
この発明は、上述した従来技術による問題点を解消するため、照光処理をともなう描画処理の高速化を図るとともに、グラフィックＬＳＩやＣＰＵの負担軽減を図ることができる３次元グラフィック装置、３次元グラフィック方法、３次元グラフィックプログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明にかかる３次元グラフィック装置、３次元グラフィック方法、３次元グラフィックプログラム、および記録媒体は、互いに直交しあうＸ軸およびＹ軸からなるＸＹ平面と、当該ＸＹ平面に対する高さをあらわすＨ軸によって３次元的に表現される３次元オブジェクトを描画する３次元グラフィック装置、３次元グラフィック方法、３次元グラフィックプログラム、および記録媒体において、前記３次元オブジェクトの上面における前記ＸＹ平面上の位置を特定する２次元頂点データの入力を受け付け、前記３次元オブジェクトの上面に関する法線ベクトルと、光源の方向を示す光源ベクトルとに基づいて、前記上面に関する輝度の変調係数を算出し、入力された２次元頂点データと算出された変調係数とを用いて前記上面を描画するとともに、前記変調係数を用いて前記３次元オブジェクト以外の他の３次元オブジェクトの上面を描画することを特徴とする。
【０００９】
また、本発明にかかる３次元グラフィック装置、３次元グラフィック方法、３次元グラフィックプログラム、および記録媒体は、互いに直交しあうＸ軸およびＹ軸からなるＸＹ平面と、当該ＸＹ平面に対する高さをあらわすＨ軸によって３次元的に表現される３次元オブジェクトを描画する３次元グラフィック装置、３次元グラフィック方法、３次元グラフィックプログラム、および記録媒体において、前記３次元オブジェクトの上面における前記ＸＹ平面上の位置を特定する２次元頂点データの入力を受け付け、入力された２次元頂点データに基づいて、前記３次元オブジェクトの側面に関する前記ＸＹ平面上の２次元法線ベクトルを設定し、設定された２次元法線ベクトルと、前記ＸＹ平面上における光源の２次元方向を示す光源ベクトルとに基づいて、前記側面に関する輝度の変調係数を算出し、前記２次元頂点データと算出された変調係数とを用いて、前記側面を描画することを特徴とする。
【００１０】
また、上記発明において、前記３次元オブジェクトの隣り合う２つの側面に関する前記ＸＹ平面上の２次元法線ベクトルに基づいて、前記２つの側面間の稜線に関する前記ＸＹ平面上の２次元法線ベクトルを設定し、設定された稜線に関する２次元法線ベクトルと、前記光源ベクトルとに基づいて、前記２つの側面に関する輝度の変調係数を算出し、前記２次元頂点データと算出された前記２つの側面に関する輝度の変調係数とを用いて、前記２つの側面を描画することとしてもよい。
【００１１】
また、上記発明において、前記側面を特定する２つの２次元頂点データと視線の２次元方向を示す視線方向ベクトルとに基づいて、前記側面が前記視線の２次元方向に相対しているか否かを判定し、判定された判定結果に基づいて、前記側面に関する輝度の変調係数を算出することを特徴とすることとしてもよい。
【００１２】
また、上記発明において、前記側面に関する２次元法線ベクトルと前記視線方向ベクトルとの内積値の符号に基づいて、前記側面が視線の２次元方向に相対しているか否かを判定することとしてもよい。
【００１３】
また、上記発明において、さらに、陰面消去法により前記側面を描画することとしてもよい。
【００１４】
また、上記発明において、入力された２次元頂点データに基づいて、視線の２次元方向を示す視線方向ベクトルと相対するように、前記３次元オブジェクトの側面に関する前記ＸＹ平面上の２次元法線ベクトルを設定し、さらに、陰面消去法により前記側面を描画することとしてもよい。
【発明の効果】
【００１５】
本発明にかかる３次元グラフィック装置、３次元グラフィック方法、３次元グラフィックプログラム、および記録媒体によれば、照光処理をともなう描画処理の高速化を図るとともに、グラフィックＬＳＩやＣＰＵの負担軽減を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に、本発明にかかる３次元グラフィック装置、３次元グラフィック方法、３次元グラフィックプログラム、および記録媒体の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１７】
（３次元グラフィック装置の機能的構成）
まず、この発明の実施の形態にかかる３次元グラフィック装置の機能的構成について説明する。図１は、この発明の実施の形態にかかる３次元グラフィック装置の機能的構成を示すブロック図である。
【００１８】
図１において、３次元グラフィック装置１００は、互いに直交しあうＸ軸およびＹ軸からなるＸＹ平面と、当該ＸＹ平面に対する高さをあらわすＨ軸によって３次元的に表現される３次元オブジェクトを描画する。ここで、ＸＹ平面は、Ｘ軸、Ｙ軸およびＨ軸からなる３次元仮想空間における水平面に相当し、Ｈ軸は、３次元仮想空間における高さ方向に相当する。
【００１９】
３次元グラフィック装置１００は、入力部１０１と、選択部１０２と、設定部１０３と、判定部１０４と、算出部１０５と、描画部１０６と、から構成されている。入力部１０１は、２次元頂点データの入力を受け付ける。ここで、３次元オブジェクトとは、たとえば、３次元仮想空間において立体的に表現されるビルなどの施設である。
【００２０】
２次元頂点データは、３次元オブジェクトの上面におけるＸＹ平面上の位置を特定する複数のＸＹ座標値から構成されており、Ｈ方向の座標値は含まれない。２次元頂点データは、たとえば、入力部１０１に連続的に入力される一連のデータストリームである。
【００２１】
図２は、３次元仮想空間における２次元頂点データを示す説明図である。図２において、２次元頂点データＰは、頂点データＰｉ（ｉ＝１〜ｎ，本例ではｎ＝８）から構成されている。各頂点データＰｉのＸＹ座標は、（ｘｉ，ｙｉ）である。２次元頂点データＰのＨ方向の座標値は「０」であり、各頂点データＰｉは、ＸＹ平面上に位置している。
【００２２】
また、頂点データＰｉによって形成される平面Ｓ１は、Ｈ方向に押し出し処理をした場合、３次元オブジェクトの上面となる。なお、図２中、符号Ｎｈは、平面Ｓ１の法線ベクトルである。法線ベクトルＮｈのベクトル成分（ｘ，ｙ，ｈ）は、（０，０，Ｎｈ）＝（０，０，１）の固定値である。また、符号Ｌ１は、光源からの照射方向を示す光源ベクトルである。
【００２３】
また、図１において、選択部１０２は、３次元オブジェクトの上面を描画するモード（上面描画モード）と、３次元オブジェクトの側面を描画するモード（側面描画モード）とを切り替えて、いずれかの描画モードを選択する。上面描画モードが選択されている場合には、２次元頂点データＰを算出部１０５に出力する。一方、側面描画モードが選択されている場合には、２次元頂点データＰを設定部１０３に出力する。
【００２４】
選択部１０２は、算出部１０５からの指示にしたがって描画モードを切り替える。たとえば、初期設定では、上面描画モードにしておき、２次元頂点データＰが入力されてくると、後述する算出部１０５において上面に関する輝度の変調係数Ｋｕが算出された場合、上面描画モードから側面描画モードに切り替える。
【００２５】
ここで、設定部１０３、判定部１０４、算出部１０５、および描画部１０６について簡単に説明する。設定部１０３は、３次元オブジェクトの側面に関するＸＹ平面上の２次元法線ベクトルを設定する。また、判定部１０４は、３次元オブジェクトの側面が視線の２次元方向に相対しているか否かを判定する。また、算出部１０５は、３次元オブジェクトの上面または側面に関する輝度の変調係数を算出する。また、描画部１０６は、Ｈ方向の高さデータを用いて、２次元頂点データＰをＨ方向に押し出し処理や、変調係数を用いた照光処理、射影変換を施すことにより、３次元オブジェクトを描画する。
【００２６】
ここで、選択部１０２により上面描画モードが選択されている場合の機能的構成について説明する。上面描画モードが選択されている場合、算出部１０５および描画部１０６を用いて、上面に照光処理を施して、３次元オブジェクトを描画する。
【００２７】
具体的には、算出部１０５は、３次元オブジェクトの上面に関する法線ベクトルＮｈと、光源の方向を示す光源ベクトルＬ１とに基づいて、上面に関する輝度の変調係数Ｋｕを算出する。上面に関する輝度の変調係数Ｋｕは、法線ベクトルＮｈと光源ベクトルＬ１との内積値となる。具体的には、光源ベクトルＬ１を正規化しておき、法線ベクトルＮｈと正規化された光源ベクトルＬ１との内積値を算出する。すなわち、正規化された光源ベクトルＬ１のベクトル成分（ｘ，ｙ，ｈ）を（Ｌｘ，Ｌｙ，Ｌｈ）とすると、上面に関する輝度の変調係数Ｋｕは、下記（１）式によってあらわされる。
【００２８】
Ｋｕ＝Ｌｈ×Ｎｈ・・・（１）
【００２９】
また、描画部１０６は、２次元頂点データＰと算出部１０５によって算出された変調係数Ｋｕとを用いて上面を描画するとともに、変調係数Ｋｕを用いて３次元オブジェクト以外の他の３次元オブジェクトの上面を描画する。すなわち、描画部１０６は、同一の変調係数Ｋｕを各３次元オブジェクトに適用する。
【００３０】
図３は、描画部１０６によって描画された３次元オブジェクトを示す説明図である。図３において、３次元オブジェクトＶ１は、２次元頂点データＰｉ（ｉ＝１〜ｎ，本例ではｎ＝８）をＨ方向に押し出し処理をすることによって描画されたオブジェクトである。３次元オブジェクトＶ１のＨ方向の高さをｈ１とすると、上面Ｓｕ１を構成する頂点データＱｉ（ｉ＝１〜ｎ，本例ではｎ＝８）の座標値は、Ｑｉ＝（ｘｉ，ｙｉ，ｈ１）となる。
【００３１】
また、３次元オブジェクトＶ１以外の他の３次元オブジェクトＶ２は、入力部１０１によって入力されたあらたな２次元頂点データＰ１１〜Ｐ１４によって形成される平面Ｓ１１をＨ方向に押し出し処理をすることによって描画されたオブジェクトである。３次元オブジェクトＶ２の上面Ｓｕ２は、頂点データＱ１１〜Ｑ１４によって形成されている。描画部１０６では、上面Ｓｕ１および上面Ｓｕ２に対し、共通の変調係数Ｋｕを施すことによって、上面Ｓｕ１の照光色Ｃｕ１および上面Ｓｕ２の照光色Ｃｕ２を算出する。
【００３２】
具体的には、光源に依存しない最大輝度時の上面Ｓｕ１の色を（Ｒｕ１，Ｇｕ１，Ｂｕ１）（Ｒｕ１は赤、Ｇｕ１は緑、Ｂｕ１は青をあらわす）とすると、光源ベクトルＬ１を用いた場合の上面Ｓｕ１の照光色Ｃｕ１は、下記（２）式によってあらわされる。
【００３３】
Ｃｕ１＝（Ｋｕ×Ｒｕ１，Ｋｕ×Ｇｕ１，Ｋｕ×Ｂｕ１）・・・（２）
【００３４】
同様に、光源に依存しない最大輝度時の上面Ｓｕ２の色を（Ｒｕ２，Ｇｕ２，Ｂｕ２）（Ｒｕ２は赤、Ｇｕ２は緑、Ｂｕ２は青をあらわす）とすると、光源ベクトルＬ１を用いた場合の上面Ｓｕ２の照光色Ｃｕ２は、下記（３）式によってあらわされる。
【００３５】
Ｃｕ２＝（Ｋｕ×Ｒｕ２，Ｋｕ×Ｇｕ２，Ｋｕ×Ｂｕ２）・・・（３）
【００３６】
この算出された照光色Ｃｕ１，Ｃｕ２を用いて、上面Ｓｕ１，Ｓｕ２を描画することができる。このように、上面描画モードに関しては、任意の３次元オブジェクトＶ１について変調係数Ｋｕを算出しておけば、他の３次元オブジェクトＶ２の上面Ｓｕ２の描画にも用いることができるため、照光計算の高速化を図ることができる。特に、３次元地図データでは、多数の３次元オブジェクトによって建物などの施設を表現するため、３次元オブジェクトの数が多いほど、３次元グラフィック装置１００の負荷が軽減されることとなる。
【００３７】
つぎに、選択部１０２により側面描画モードが選択されている場合の機能的構成について説明する。側面描画モードが選択されている場合、設定部１０３、判定部１０４、算出部１０５および描画部１０６を用いて、側面に照光処理を施して、３次元オブジェクトを描画する。
【００３８】
まず、設定部１０３は、２次元頂点データＰに基づいて、３次元オブジェクトの側面に関するＸＹ平面上の２次元法線ベクトルを設定する。具体的には、たとえば、図３に示した３次元オブジェクトＶ１を描画する際、または描画に先立って、２次元法線ベクトルを設定する。
【００３９】
図４は、３次元オブジェクトＶ１の側面Ｓｗ１〜Ｓｗ８に関するＸＹ平面上の２次元法線ベクトルを示す説明図である。図４では、Ｈ方向への押し出し処理がされていないため、図３に示した側面Ｓｗｉ（ｉ＝１〜ｎ，本例ではｎ＝８）に関しては、平面Ｓ１を構成する辺ｓｗｉ（ｉ＝１〜ｎ，本例ではｎ＝８）に垂直でかつＸＹ平面上の２次元法線ベクトルＮｉ（ｉ＝１〜ｎ，本例ではｎ＝８）を設定する。
【００４０】
ここで、２次元法線ベクトルＮｉ（ｉ＝１〜ｎ，本例ではｎ＝８）の設定方法について説明する。連続する頂点データＰｉ（ｘｉ，ｙｉ）と頂点データＰｊ（ｘｊ，ｙｊ）間（ｊ＝ｉ＋１）の辺ｓｗｉの２次元法線ベクトルＮｉ（Ｎｉｘ，Ｎｉｙ）について、頂点データＰｉから頂点データＰｊに向かうベクトル（Ｘｉ，Ｙｉ）の左手側を２次元法線ベクトルＮｉの正の向きと仮定すると、下記（４）式〜（７）式が成立する。
【００４１】
Ｘｉ＝ｘｊ−ｘｉ・・・・・・・・・・・・・・・・・・・・・・・・・・・・（４）
Ｙｉ＝ｙｊ−ｙｉ・・・・・・・・・・・・・・・・・・・・・・・・・・・・（５）
Ｎｉｘ＝Ｘｉｃｏｓ９０°＋Ｙｉｓｉｎ９０°＝Ｙｉ＝ｙｊ−ｙｉ・・・・・・（６）
Ｎｉｙ＝−Ｘｉｓｉｎ９０°＋Ｙｉｃｏｓ９０°＝−Ｘｉ＝ｘｉ−ｘｊ・・・・（７）
【００４２】
また、設定部１０３は、３次元の光源ベクトルＬ１をＸＹ平面に投影することにより、ＸＹ平面上における光源の２次元方向を示す光源ベクトルＬ２を設定する。光源ベクトルＬ２のベクトル成分（ｘ，ｙ）を、（Ｌｘ，Ｌｙ）とする。
【００４３】
また、算出部１０５は、設定部１０３によって設定された２次元法線ベクトルＮ１〜Ｎ８と、ＸＹ平面上における光源の２次元方向を示す光源ベクトルＬ２とに基づいて、側面Ｓｗ１〜Ｓｗ８に関する輝度の変調係数を算出する。側面Ｓｗｉに関する輝度の変調係数は、各法線ベクトルＮｉと光源ベクトルＬ２との内積値となる。具体的には、光源ベクトルＬ２を正規化しておき、各法線ベクトルＮｉと正規化された光源ベクトルＬ２との内積値を算出する。
【００４４】
すなわち、正規化された光源ベクトルＬ２のベクトル成分（ｘ，ｙ）を（Ｌｘ，Ｌｙ）とすると、各側面Ｓｗｉに関する輝度の変調係数Ｋｗｉ（ｉ＝１〜ｎ，本例ではｎ＝８）は、下記（８）式によってあらわされる。
【００４５】
Ｋｗｉ＝Ｌｘ×Ｎｉｘ＋Ｌｙ×Ｎｉｙ・・・（８）
【００４６】
また、描画部１０６は、２次元頂点データＰと算出部１０５によって算出された変調係数Ｋｗｉとを用いて、側面Ｓｗｉを描画する。描画部１０６では、各側面Ｓｗｉに対し、それぞれの変調係数Ｋｗｉを施すことによって、側面Ｓｗｉの照光色Ｃｗｉ（ｉ＝１〜ｎ，本例ではｎ＝８）を算出する。
【００４７】
具体的には、光源に依存しない最大輝度時の側面Ｓｗｉの色を（Ｒｗｉ，Ｇｗｉ，Ｂｗｉ）（Ｒｗｉは赤、Ｇｗｉは緑、Ｂｗｉは青をあらわす）とすると、光源ベクトルＬ２を用いた場合の側面Ｓｗｉの照光色Ｃｗｉは、下記（９）式によってあらわされる。
【００４８】
Ｃｗｉ＝（Ｋｗｉ×Ｒｗｉ，Ｋｗｉ×Ｇｗｉ，Ｋｗｉ×Ｂｗｉ）・・・（９）
【００４９】
この算出された照光色Ｃｗｉを用いて、側面Ｓｗｉを描画することができる。図５は、側面Ｓｗｉに関する輝度の変調係数を用いて描画された３次元オブジェクトＶ１を示す説明図である。つぎに、側面描画モードにおける特殊な場合の描画（照光処理の平滑化、２次元法線ベクトルの方向設定）について説明する。
【００５０】
（照光処理の平滑化）
まず、照光処理の平滑化について説明する。照光処理の平滑化とは、描画時における連続する２側面の照光処理に際し、２側面が共有する稜線に同一の変調係数を用い、その２側面には共有されない側の稜線の変調係数との間で連続的に補間することで、リアルなライティングを施す処理である。特に、連続する側面により擬似的に曲面を描画する際に有効である。
【００５１】
図６は、３次元仮想空間における２次元頂点データの他の例を示す説明図である。図６において、２次元頂点データＰは、頂点データＰ１１（ｘ１１，ｙ１１）〜頂点データＰ１７（ｘ１７，ｙ１７）から構成されている。２次元頂点データＰのＨ方向の座標値は「０」であり、各頂点データＰ１１〜Ｐ１７は、ＸＹ平面上に位置している。
【００５２】
また、頂点データＰ１１（ｘ１１，ｙ１１）〜頂点データＰ１７（ｘ１７，ｙ１７）によって形成される平面Ｓ１０をＨ方向に押し出し処理をすることにより、３次元オブジェクトの上面が描画される。また、各辺ｓｗ１１〜ｓｗ１７は、平面Ｓ１０をＨ方向に押し出し処理をすることにより、３次元オブジェクトの側面として描画される。
【００５３】
また、設定部１０３は、上述した（４）式〜（７）式を用いて、２次元法線ベクトルＮｉ（ｉ＝１１〜１７）を設定する。ここで、ＸＹ平面における幅が短い側面を連結することにより、擬似的に曲面を描画することができるが、そのような場合、連続する２側面の照光色を、各頂点の照光色を連続的に補間することにより描画する。このとき、設定部１０３では、連続する２側面の２次元法線ベクトルＮｉの平均法線ベクトルを、頂点Ｐ１１〜Ｐ１５に設定する。
【００５４】
ここで、２次元法線ベクトルＮｉと２次元法線ベクトルＮｊ（ｊ＝ｉ＋１）との平均法線ベクトルＮｉｊ（Ｎｘｉｊ，Ｎｙｉｊ）の設定方法について説明する。連続する頂点データＰｉ（ｘｉ，ｙｉ）と頂点データＰｊ（ｘｊ，ｙｊ）間の辺ｓｗｉの２次元法線ベクトルＮｉ（Ｎｉｘ，Ｎｉｙ）について、頂点データＰｉから頂点データＰｊに向かうベクトル（Ｘｉ，Ｙｉ）の左手側を２次元法線ベクトルＮｉの正の向きと仮定すると、上記（４）式〜（７）式と同じ結果が得られる。
【００５５】
同様に、連続する頂点データＰｊ（ｘｊ，ｙｊ）と頂点データＰｋ（ｘｋ，ｙｋ）間（ｋ＝ｊ＋１）の辺ｓｗｊの２次元法線ベクトルＮｊ（Ｎｊｘ，Ｎｊｙ）について、頂点データＰｊからと頂点データＰｋに向かうベクトル（Ｘｊ，Ｙｊ）の左手側を２次元法線ベクトルＮｊの正の向きと仮定すると、上記（４）式〜（７）式と同様な結果が得られる。
【００５６】
Ｘｊ＝ｘｋ−ｘｊ・・・・・・・・・・・・・・・・・・・・・・・・・・・（１０）
Ｙｊ＝ｙｋ−ｙｊ・・・・・・・・・・・・・・・・・・・・・・・・・・・（１１）
Ｎｊｘ＝Ｘｊｃｏｓ９０°＋Ｙｊｓｉｎ９０°＝Ｙｊ＝ｙｋ−ｙｊ・・・・・（１２）
Ｎｊｙ＝−Ｘｊｓｉｎ９０°＋Ｙｊｃｏｓ９０°＝−Ｘｊ＝ｘｊ−ｘｋ・・・（１３）
【００５７】
したがって、上記（４）式〜（７）式および（１０）式〜（１３）式から、平均法線ベクトルＮｉｊのベクトル成分（Ｎｘｉｊ，Ｎｙｉｊ）は、下記（１４）式および（１５）式であらわすことができる。
【００５８】
Ｎｘｉｊ＝（Ｎｉｘ＋Ｎｊｘ）／２・・・・・・・・・・・・・・・・・・・（１４）
Ｎｙｉｊ＝（Ｎｉｙ＋Ｎｊｙ）／２・・・・・・・・・・・・・・・・・・・（１５）
【００５９】
なお、算出部１０５では、平均法線ベクトルＮｉｊを用いて頂点Ｐ１１〜Ｐ１５毎に変調係数を算出し、描画部１０６では算出された変調係数を連続補間しながら照光色を算出して描画する。連続補間の具体的な方法は、例えば通称「グーローシェーディング」として公知の方法等を用いればよい。描画された３次元オブジェクトについて説明する。
【００６０】
図７は、３次元オブジェクトの一例を示す説明図である。図７に示した３次元オブジェクトＶ１０は、２次元頂点データＰ１１〜Ｐ１７からなる平面Ｓ１０を、Ｈ方向に押し出すことによって、頂点データＱ１１〜Ｑ１７からなる上面Ｓｕ１０を有するオブジェクトとなる。
【００６１】
また、辺ｓｗ１１に対応する側面Ｓｗ１１と、辺ｓｗ１２に対応する側面Ｓｗ１２とが連続しており、平均法線ベクトルＮ１１１２は、稜線ｒ１２の２次元法線ベクトルとなる。したがって、側面Ｓｗ１１と側面Ｓｗ１２は、稜線ｒ１２上で同一の変調係数を持つ。
【００６２】
同様に、辺ｓｗ１２に対応する側面Ｓｗ１２と、辺ｓｗ１３に対応する側面Ｓｗ１３とが連続している。また、辺ｓｗ１３に対応する側面Ｓｗ１３と、辺ｓｗ１４に対応する側面Ｓｗ１４とが連続している。また、平均法線ベクトルＮ１２１３は、稜線ｒ１３の２次元法線ベクトルとなる。また、平均法線ベクトルＮ１３１４は、稜線ｒ１４の２次元法線ベクトルとなる。
【００６３】
したがって、側面Ｓｗ１２と側面Ｓｗ１３は、稜線ｒ１３上で同一の変調係数を持ち、側面Ｓｗ１３と側面Ｓｗ１４は、稜線ｒ１４上で同一の変調係数を持つ。さらには、側面Ｓｗ１４と側面Ｓｗ１５の稜線ｒ１５の平均法線ベクトルＮ１４１５、および側面Ｓｗ１１と側面Ｓｗ１７の稜線ｒ１１の平均法線ベクトルＮ１１１７も求める。このようにして頂点Ｐ１１〜Ｐ１５毎に算出された平均法線ベクトルから、頂点Ｐ１１〜Ｐ１５毎に、補間の基準となる照光色が求まる。これにより、照光色の平滑化をおこなうことができ、簡単な照光計算処理で、３次元オブジェクトの曲面をリアルに描画することができる。
【００６４】
（２次元法線ベクトルの方向設定）
つぎに、２次元法線ベクトルの方向設定について説明する。２次元法線ベクトルの方向設定については、２次元頂点データの並び順が事前に時計回り（または反時計回り）と定義されている場合と、２次元頂点データの並び順が事前に定義されていない場合とに分けられる。
【００６５】
まず、２次元頂点データの並び順が事前に右回り（または左回り）と定義されている場合について説明する。図８は、右回りの並び順で定義されている２次元頂点データＰ１〜Ｐ８を示す説明図である。図８において、２次元頂点データＰ１〜Ｐ８は、番号が若い順に入力されてくるデータストリームである。
【００６６】
このような場合、平面Ｓ１の各辺ｓｗｉの法線方向は、頂点間を番号順に結ぶ線分の左側を必ず向くため、光源方向と法線方向とのなす角は一意的に定まる。したがって、光源ベクトルＬ２と２次元法線ベクトルＮｉとの内積計算により、平面Ｓ１の辺ｓｗｉをＨ方向に引き伸ばした側面に関する輝度の変調係数を算出することができる。
【００６７】
また、設定部１０３により、視線方向ベクトルＧ１をＸＹ平面に投影した２次元の視線方向ベクトルＧ２を設定しておく。この場合、判定部１０４は、側面に関する２次元法線ベクトルＮｉ（ｉ＝１〜８）と視線方向ベクトルＧ２との内積値の符号に基づいて、側面が視線の２次元方向に相対しているか否かを判定する。
【００６８】
内積値の符号が負の場合のみ、辺ｓｗｉが視線方向ベクトルＧ２に相対していることとなる。したがって、描画部１０６では、陰面消去法（バックフェイス-カリング法）を用いて３次元オブジェクトを描画することにより、無駄な描画の省略を簡単に実現することができる。さらには、内積値を計算しなくとも、画面上で後続頂点が先行頂点の右側か左側のいずれに位置するかを判定するだけで、壁面が視線方向に相対しているかどうかを判定することもできる。
【００６９】
つぎに、２次元頂点データの並び順が事前に定義されていない場合について説明する。図９は、並び順が事前に定義されていない２次元頂点データＰ１〜Ｐ８を示す説明図である。図９において、最終頂点データ（たとえば、頂点データＰ８）が入力されて閉曲線が確立しない限り、辺ｓｗｉの内側と外側、すなわち、辺ｓｗｉをＨ方向に引き伸ばしたときに描画される側面Ｓｗｉの表裏を特定することができない。
【００７０】
一方、２次元頂点データＰの数が膨大で、平面Ｓ１に閉じるまで待機する場合や、２次元頂点データＰの数に上限がない場合は、一時的なバッファに大量の２次元頂点データＰを保持することとなり、現実的ではない。このような場合、描画部１０６では、すべての２次元法線ベクトルＮｉが視線方向ベクトルＧ２に相対していると仮定して、すなわち、２次元法線ベクトルＮｉと視線方向ベクトルＧ２とのなす角度θが、９０°＜θ≦１８０°をみたすように、２次元法線ベクトルＮｉを設定する。
【００７１】
この場合、２次元法線ベクトルＮｉの法線方向と逆方向に扱われた２次元法線ベクトル（図９では、Ｎ１，Ｎ４，Ｎ８）に対応する辺ｓｗ１，ｓｗ４，ｓｗ８をＨ方向に押し出した場合の側面に関する輝度の変調係数は正確ではない。
【００７２】
この場合、陰面消去法（Ｚバッファ法）と組み合わせることにより、辺ｓｗ１，ｓｗ４，ｓｗ８をＨ方向に押し出した場合の側面（図５における側面Ｓｗ１，Ｓｗ４，Ｓｗ８）は、法線方向が正しい手前側の辺ｓｗ２，ｓｗ３，ｓｗ５，ｓｗ６，ｓｗ７をＨ方向に押し出した場合の側面（図５における側面Ｓｗ２，Ｓｗ３，Ｓｗ５，Ｓｗ６，Ｓｗ７）により陰面消去される。したがって、結果的に正しい描画が可能となる。
【００７３】
（３次元グラフィック処理手順）
つぎに、この発明の実施の形態にかかる３次元グラフィック装置１００の３次元グラフィック処理手順について説明する。図１０は、この発明の実施の形態にかかる３次元グラフィック装置１００の３次元グラフィック処理手順を示すフローチャートである。なお、初期設定においては、選択部１０２は、上面描画モードを選択している。図１０において、まず、入力部１０１により、２次元頂点データＰの入力を待ち受ける（ステップＳ１００１：Ｎｏ）。２次元頂点データが入力された場合（ステップＳ１００１：Ｙｅｓ）、描画モードが上面描画モードである場合（ステップＳ１００２：上面）、算出部１０５により、上面に関する輝度の変調係数Ｋｕを算出する（ステップＳ１００３）。
【００７４】
そして、選択部１０２の描画モードを上面描画モードから側面描画モードに切り替えて（ステップＳ１００４）、ステップＳ１００２に戻る。一方、描画モードが側面描画モードである場合（ステップＳ１００２：側面）、設定部１０３により、側面に関する２次元法線ベクトルＮｉを設定する（ステップＳ１００５）。そして、算出部１０５により、側面に関する輝度の変調係数Ｋｗｉを算出する（ステップＳ１００６）。
【００７５】
このあと、未処理の２次元頂点データＰがあるか否かを判断し（ステップＳ１００７）、未処理の２次元頂点データＰがある場合（ステップＳ１００７：Ｙｅｓ）、ステップＳ１００５に戻る。一方、未処理の２次元頂点データＰがない場合（ステップＳ１００７：Ｎｏ）、描画部１０６による描画処理を実行する（ステップＳ１００８）。
【００７６】
このように、この発明の実施の形態によれば、上面の描画に関しては、すべての３次元オブジェクトに対し共通の変調係数Ｋｕを用いることができるため、描画処理の高速化を図ることができる。また、側面の描画に関しては、３次元オブジェクトごとに、変調係数Ｋｗｉを用いて描画する。これにより、３次元グラフィックスの照光処理のうち、２次元データから制約付３次元オブジェクトを復元することができる。したがって、演算処理を２次元の状態に限定することができ、演算量の低減を図ることができる。
【実施例１】
【００７７】
つぎに、この発明の実施の形態にかかる３次元グラフィック装置１００の実施例１について説明する。図１１は、３次元グラフィック装置１００のハードウェア構成を示すブロック図である。図１１において、３次元グラフィック装置１００は、入力バッファ１１０１と、セレクタ１１０２と、法線ベクトル演算器１１０３と、内積演算器１１０５と、描画デバイス１１０６と、から構成されるグラフィックＬＳＩである。
【００７８】
入力バッファ１１０１は、２次元頂点データのデータストリームを入力する。入力バッファ１１０１は、図１に示した入力部１０１に相当する。また、セレクタ１１０２は、入力バッファ１１０１からの２次元頂点データを、法線ベクトル演算器１１０３または内積演算器１１０５に振り分ける。セレクタ１１０２は、図１に示した選択部１０２に相当する。
【００７９】
また、法線ベクトル演算器１１０３は、２次元頂点データを読み込んで２次元法線ベクトルを算出する。法線ベクトル演算器１１０３は、図１に示した設定部１０３および判定部１０４に相当する。また、内積演算器１１０５は、２次元法線ベクトルと光源ベクトルとの内積値を算出する。内積演算器１１０５は、図１に示した算出部１０５に相当する。描画デバイス１１０６は、２次元頂点データと、Ｈ方向の高さデータとを用いて、Ｈ方向への押し出し処理、内積演算器１１０５によって算出された内積値を用いた照光処理、射影変換、陰面消去処理などの描画処理をおこなう。描画デバイス１１０６は、図１に示した描画部１０６に相当する。
【００８０】
つぎに、法線ベクトル演算器１１０３のハードウェア構成の一例について説明する。図１２は、法線ベクトル演算器１１０３のハードウェア構成の一例を示すブロック図である。図１２に示した法線ベクトル演算器１１０３は、上述した照光処理の平滑化をおこなうための構成である。図１２において、法線ベクトル演算器１１０３は、頂点バッファ１２０１と、設定レジスタ１２０２と、頂点位置比較器１２０３と、法線符号生成器１２０４と、法線ベクトル生成器１２０５と、法線ベクトルバッファと、平均化器１２０７と、から構成されている。
【００８１】
頂点バッファ１２０１は、２次元頂点データのデータストリームのうち連続的に入力される３頂点データを保持する。設定レジスタ１２０２には、データストリームが右回りまたは左回りといった並び順を設定しておく。頂点位置比較器１２０３は、設定レジスタ１２０２を参照して頂点バッファ１２０１に保持されている３頂点データの左右位置を比較する。法線符号生成器１２０４は、頂点位置比較器１２０３の比較結果から法線ベクトルの符号を生成する。
【００８２】
法線ベクトル生成器１２０５は、頂点バッファ１２０１に保持されている３頂点データのうち、連続する２頂点データと法線符号生成器１２０４からの符号を用いて、２頂点データを結ぶ辺の２次元法線ベクトルを生成する。法線ベクトルバッファ１２０６は、法線ベクトル生成器１２０５によって生成された２次元法線ベクトルを保持する。平均化器１２０７は、法線ベクトルバッファ１２０６に保持されている２本の２次元法線ベクトルＮｉ，Ｎｊを平均化した平均法線ベクトルＮｉｊを算出する。
【００８３】
なお、平均法線ベクトルＮｉｊは、頂点データごとに１本ずつ定義される。このため、対応する頂点出力との同期を取るために頂点バッファ１２０１においてデータストリームの出力遅延を調整する。この構成によれば、照光色の平滑化をおこなうことができ、簡単な照光計算処理による３次元オブジェクトのリアルな曲面描画を、グラフィックＬＳＩで実現することができる。
【００８４】
つぎに、法線ベクトル演算器１１０３の他の例について説明する。図１３は、法線ベクトル演算器１１０３のハードウェア構成の他の例を示すブロック図である。図１３において、法線ベクトル演算器１１０３は、頂点バッファ１３０１と、設定レジスタ１３０２と、頂点位置比較器１３０３と、法線符号生成器１３０４と、法線ベクトル生成器１３０５と、から構成されている。
【００８５】
頂点バッファ１３０１は、２次元頂点データのデータストリームのうち連続的に入力される２頂点データを保持する。設定レジスタ１３０２には、データストリームが右回りまたは左回りといった並び順を設定しておく。頂点位置比較器１３０３は、設定レジスタ１３０２を参照して頂点バッファ１３０１に保持されている２頂点データの左右位置を比較する。法線符号生成器１３０４は、頂点位置比較器１３０３の比較結果から法線ベクトルの符号を生成する。
【００８６】
法線ベクトル生成器１３０５は、頂点バッファ１３０１に保持されている２頂点データと法線符号生成器１３０４からの符号を用いて、２頂点データを結ぶ辺の２次元法線ベクトルを生成する。この構成によれば、２頂点データを結ぶ辺の２次元法線ベクトルを、３次元オブジェクトの外側を向くように設定することができる。
【００８７】
つぎに、法線ベクトル演算器１１０３のハードウェア構成の別の例について説明する。図１４は、法線ベクトル演算器１１０３のハードウェア構成の別の例を示すブロック図である。図１４において、法線ベクトル演算器１１０３は、頂点バッファ１４０１と、設定レジスタ１４０２と、頂点位置比較器１４０３と、法線符号生成器１４０４と、法線ベクトル生成器１４０５と、法線符号反転器１４０６と、視線方向ベクトルレジスタ１４０７と、から構成されている。
【００８８】
頂点バッファ１４０１は、２次元頂点データのデータストリームのうち連続的に入力される２頂点データを保持する。頂点位置比較器１４０３は、設定レジスタ１４０２を参照して頂点バッファ１４０１に保持されている２頂点データの左右位置を比較する。設定レジスタ１４０２には、データストリームが右回りまたは左回りといった並び順を設定しておく。法線符号生成器１４０４は、頂点位置比較器１４０３の比較結果から法線ベクトルの符号を生成する。
【００８９】
法線符号反転器１４０６は、視線方向ベクトルレジスタ１４０７に保持されている視線方向ベクトルを参照して、３次元オブジェクトの側面が視線方向と相対するように、法線の符号を反転する。法線ベクトル生成器１４０５は、頂点バッファ１４０１に保持されている２頂点データと法線符号生成器１４０４からの符号を用いて、２頂点データを結ぶ辺の２次元法線ベクトルを生成する。この構成によれば、２頂点データを結ぶ辺の２次元法線ベクトルの方向設定をおこなうことができる。この場合、描画デバイス１１０６において陰面消去法により、照光処理が施された描画をおこなうことができる。
【実施例２】
【００９０】
つぎに、この発明の実施の形態にかかる３次元グラフィック装置１００の実施例２について説明する。図１５は、実施例２にかかる３次元グラフィック装置１００のハードウェア構成を示すブロック図である。図１５において、３次元グラフィック装置１００は、ＣＰＵ１５０１と、ＲＯＭ１５０２と、ＲＡＭ１５０３と、ＨＤＤ（ハードディスクドライブ）１５０４と、ＨＤ（ハードディスク）１５０５と、ＦＤＤ（フレキシブルディスクドライブ）１５０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１５０７と、ディスプレイ１５０８と、Ｉ／Ｆ（インターフェース）１５０９と、キーボード１５１０と、マウス１５１１と、スキャナ１５１２と、プリンタ１５１３と、を備えている。また、各構成部はバス１５００によってそれぞれ接続されている。
【００９１】
ここで、ＣＰＵ１５０１は、３次元グラフィック装置１００の全体の制御を司る。ＲＯＭ１５０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１５０３は、ＣＰＵ１５０１のワークエリアとして使用される。ＨＤＤ１５０４は、ＣＰＵ１５０１の制御にしたがってＨＤ１５０５に対するデータのリード／ライトを制御する。ＨＤ１５０５は、ＨＤＤ１５０４の制御で書き込まれたデータを記憶する。
【００９２】
ＦＤＤ１５０６は、ＣＰＵ１５０１の制御にしたがってＦＤ１５０７に対するデータのリード／ライトを制御する。ＦＤ１５０７は、ＦＤＤ１５０６の制御で書き込まれたデータを記憶したり、ＦＤ１５０７に記憶されたデータを３次元グラフィック装置１００に読み取らせたりする。
【００９３】
また、着脱可能な記録媒体として、ＦＤ１５０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１５０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１５０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００９４】
Ｉ／Ｆ１５０９は、通信回線を通じてインターネットなどのネットワーク１５１４に接続され、このネットワーク１５１４を介して他の装置に接続される。そして、Ｉ／Ｆ１５０９は、ネットワーク１５１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１５０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００９５】
キーボード１５１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１５１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００９６】
スキャナ１５１２は、画像を光学的に読み取り、３次元グラフィック装置１００内に画像データを取り込む。なお、スキャナ１５１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１５１３は、画像データや文書データを印刷する。プリンタ１５１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００９７】
このように、実施例２によれば、図１に示した３次元グラフィック装置１００が備える各部１０１〜１５０６が有する機能を、ＲＯＭ１５０２に記録されている３次元グラフィックプログラムにより図１０に示した３次元グラフィック処理手順（ステップＳ１００１〜ステップＳ１００８）で実行することができる。
【００９８】
したがって、上面の描画に関しては、すべての３次元オブジェクトに対し共通の変調係数Ｋｕを用いることができるため、描画処理の高速化をソフトウェアにより実現することができる。また、側面の描画に関しては、３次元オブジェクトごとに、変調係数Ｋｗｉを用いて描画する。これにより、３次元グラフィックスの照光処理のうち、２次元データから制約付の３次元オブジェクトの復元をソフトウェアにより実現することができる。したがって、演算処理を２次元の状態に限定することができ、演算量の低減を図ることができる。
【産業上の利用可能性】
【００９９】
以上のように、本発明にかかる３次元グラフィック装置、３次元グラフィック方法、３次元グラフィックプログラムは、および記録媒体は、２次元地図データの建造物座標（２次元頂点データ）をＨ方向（高さ方向）に引き伸ばして、３次元の建造物形状を描画する３次元グラフィックスに適している。
【図面の簡単な説明】
【０１００】
【図１】図１は、この発明の実施の形態にかかる３次元グラフィック装置の機能的構成を示すブロック図である。
【図２】図２は、３次元仮想空間における２次元頂点データを示す説明図である。
【図３】図３は、描画部１０６によって描画された３次元オブジェクトを示す説明図である。
【図４】図４は、３次元オブジェクトの側面に関するＸＹ平面上の２次元法線ベクトルを示す説明図である。
【図５】図５は、側面に関する輝度の変調係数を用いて描画された３次元オブジェクトを示す説明図である。
【図６】図６は、３次元仮想空間における２次元頂点データの他の例を示す説明図である。
【図７】図７は、３次元オブジェクトの一例を示す説明図である。
【図８】図８は、右回りの並び順で定義されている２次元頂点データを示す説明図である。
【図９】図９は、並び順が事前に定義されていない２次元頂点データを示す説明図である。
【図１０】図１０は、この発明の実施の形態にかかる３次元グラフィック装置の３次元グラフィック処理手順を示すフローチャートである。
【図１１】図１１は、３次元グラフィック装置のハードウェア構成を示すブロック図である。
【図１２】図１２は、法線ベクトル演算器のハードウェア構成の一例を示すブロック図である。
【図１３】図１３は、法線ベクトル演算器のハードウェア構成の他の例を示すブロック図である。
【図１４】図１４は、法線ベクトル演算器のハードウェア構成の別の例を示すブロック図である。
【図１５】図１５は、実施例２にかかる３次元グラフィック装置のハードウェア構成を示すブロック図である。
【符号の説明】
【０１０１】
１００  ３次元グラフィック装置
１０１  入力部
１０２  選択部
１０３  設定部
１０４  判定部
１０５  算出部
１０６  描画部
１１０１  入力バッファ
１１０２  セレクタ
１１０３  法線ベクトル演算器
１１０５  内積演算器
１１０６  描画デバイス
【図１】
0004740956.tif 000002
【図２】
0004740956.tif 000003
【図３】
0004740956.tif 000004
【図４】
0004740956.tif 000005
【図５】
0004740956.tif 000006
【図６】
0004740956.tif 000007
【図７】
0004740956.tif 000008
【図８】
0004740956.tif 000009
【図９】
0004740956.tif 000010
【図１０】
0004740956.tif 000011
【図１１】
0004740956.tif 000012
【図１２】
0004740956.tif 000013
【図１３】
0004740956.tif 000014
【図１４】
0004740956.tif 000015
【図１５】
0004740956.tif 000016