(57)【特許請求の範囲】
【請求項１】
仮想３次元空間内の画像を表示するためのオブジェクト表示プログラムであって、
コンピュータに、
視点からオブジェクトまでの距離を計算し、
所定の半透明距離および前記半透明距離より長い所定の非表示距離と、計算された前記距離とを比較し、
計算された前記距離が前記非表示距離より短いと判断された場合にのみ前記オブジェクトを描画対象とし、前記距離が前記半透明距離より短いと判断された場合には描画対象の前記オブジェクトを不透明で描画し、前記距離が前記半透明距離より長いと判断された場合には描画対象の前記オブジェクトを半透明で描画し、
描画された前記オブジェクトを表示する、
処理を実行させることを特徴とするオブジェクト表示プログラム。
【請求項２】
前記半透明距離と前記非表示距離とは、複数のオブジェクトそれぞれに対して個別に定められていることを特徴とする請求項１記載のオブジェクト表示プログラム。
【請求項３】
前記オブジェクトを半透明で描画する際には、前記距離が長いほど高い半透明率で前記オブジェクトを描画することを特徴とする請求項１記載のオブジェクト表示プログラム。
【請求項４】
前記オブジェクトを半透明で描画する際には、前記距離の変化に応じて、前記オブジェクトの半透明率を連続的に変化させることを特徴とする請求項１記載のオブジェクト表示プログラム。
【請求項５】
仮想３次元空間内の画像を表示するためのオブジェクト表示装置であって、
視点からオブジェクトまでの距離を計算する計算手段と、
所定の半透明距離および前記半透明距離より長い所定の非表示距離と、前記計算手段で計算された前記距離とを比較する比較手段と、
前記比較手段により前記距離が前記非表示距離より短いと判断された場合にのみ前記オブジェクトを描画対象とし、前記比較手段により前記距離が前記半透明距離より短いと判断された場合には描画対象の前記オブジェクトを不透明で描画し、前記距離が前記半透明距離より長いと判断された場合には描画対象の前記オブジェクトを半透明で描画する描画手段と、
前記描画手段で描画された前記オブジェクトを表示する表示手段と、
を有することを特徴とするオブジェクト表示装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は仮想３次元空間内の動画像を表示するためのオブジェクト表示プログラムおよびオブジェクト表示装置に関し、特に視点からオブジェクトまでの距離を任意に変更可能なオブジェクト表示プログラムおよびオブジェクト表示装置に関する。
【０００２】
【従来の技術】
仮想３次元空間内に多数のオブジェクトを配置することで、街並みなどの環境をコンピュータ内で再現することができる。再現された環境は、任意の視点を基準とした投影面に透視投影を行うことで、コンピュータの画面に表示することができる。
【０００３】
このような仮想３次元空間内の環境の表示において、動きを伴った表示を行う場合がある。たとえば、視点の位置や視線の向きをユーザからの操作入力によって移動させることで、動きのある動画像が表示される。
【０００４】
動画像の表示する場合、コンピュータは、所定の周期で画像を生成しなければならない。たとえば、モニタの表示切り替え周期が１／６０秒であれば、１／６０秒毎に画像を生成する必要がある。ところが、表示対象となるオブジェクトの数が膨大になると、所定の周期の間に画像を生成できない場合があり得る。
【０００５】
そこで、画像生成の際のコンピュータの負荷を軽減するための方法が考え出されている。最も単純で一般的に用いられている方法として、図形データが画面上に占める描画面積が小さくなったときに、対象の図形データを表示処理対象から外す手法がある。ただし、この方法では、表示状態から非表示状態への切り替えが突然発生するため、動きを伴う表示を行っている場合には、見た目の違和感が出てしまう。
【０００６】
そこで、見た目の違和感を少なくして、コンピュータの処理負荷を軽減する方法として、対象図形の描画面積に応じて段階的に簡易的な図形に置き換えて表示する方法がある。
【０００７】
図１９は、図形データの詳細度を段階的に変更する場合の例を示す図である。図１９の例では、詳細度の異なる３つの図形データとして、元データ３０１、レベル１のデータ３０２、およびレベル２のデータ３０３が用意されている。元データ３０１が最も細かい形状を表現したデータである。レベル１のデータ３０２は、元データ３０１よりも少しだけ詳細度の粗いデータである。レベル２のデータ３０３は、レベル１のデータ３０２よりも詳細度の粗いデータである。
【０００８】
元データ３０１は、曲面を含む細かい図形データである。元データ３０１は、視点との距離が近い場合に用いられる。
レベル１のデータ３０２は、平面のみで表現された図形データである。レベル１のデータ３０２は、曲面を含まないことで、元データ３０１よりも画面表示の際の計算量が少なくてすむ。レベル１のデータ３０２は、視点からある程度離れたときに用いられる。
【０００９】
レベル２のデータ３０３は、直方体の図形データである。レベル２のデータ３０３は、面の数を６個に減らしたことで、レベル１のデータ３０２よりも画面表示の際の計算量が少なくてすむ。レベル２のデータ３０３は、視点からかなり離れたときに用いられる。
【００１０】
このように、１つのオブジェクトに対して、詳細度の異なる複数のデータを用意しておく。そして、オブジェクトが視点から遠ざかると、詳細度の粗いデータに基づいて画面表示を行う。詳細度の粗いデータを用いることで計算量を削減し、所定の周期内に描画を終了させることができる。
【００１１】
【発明が解決しようとする課題】
しかし、段階的に図形データの詳細度を変更する方法は、固定的データを扱うテレビゲームなどでは有用であるが、頻繁に変更される設計中のデータなどを扱う場合には不向きである。すなわち、頻繁に設計が変更されるような場合、設計変更の度に詳細度の異なるデータを複数準備するのは困難である。
【００１２】
たとえば、ビルなどの建造物を設計する際に、その建造物が建てられたときの町の様子を仮想３次元空間内に表現することがある。この場合に、ビルなどの設計内容が変更される度に、詳細度の異なる複数のオブジェクトを生成していたのでは、ビルを設計するという本来の業務の作業効率が低下してしまう。
【００１３】
本発明はこのような点に鑑みてなされたものであり、見た目に違和感なく表示状態から非表示状態へ移行させるためのオブジェクト表示プログラムおよびオブジェクト表示装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示すような処理をコンピュータに実行させるためのオブジェクト表示プログラムが提供される。本発明に係るオブジェクト表示プログラムは、仮想３次元空間１内の画像を表示するためのものである。
【００１５】
本発明のオブジェクト表示プログラムを実行するコンピュータは、視点２からオブジェクト３までの距離ｄを計算する（ステップＳ１）。オブジェクト３に対して、半透明距離ｄ０および半透明距離ｄ０より長い非表示距離ｄ１が設定されており、計算された距離が半透明距離ｄ０より長いか否か、および非表示距離ｄ１より長いか否かを判断する（ステップＳ２）。そして、距離ｄが非表示距離ｄ１より短いと判断された場合にのみオブジェクト３を描画対象とし、距離ｄが半透明距離ｄ０より近いと判断された場合には描画対象のオブジェクト３を不透明で描画し、距離ｄが半透明距離ｄ０より離れていていると判断された場合には描画対象のオブジェクト３を半透明で描画し（ステップＳ３）、描画されたオブジェクトを表示する（ステップＳ４）。
【００１６】
これにより、半透明距離ｄ０よりも視点２に近いオブジェクト３が徐々に視点２から遠ざかる場合、距離ｄが半透明距離ｄ０より短い間は、不透明で表示される。そして、距離ｄが半透明距離ｄ０よりも長くなると、そのときのオブジェクト３は半透明で表示される。さらにオブジェクト３が視点２から遠ざかり、距離ｄが非表示距離ｄ１よりも長くなると、そのときのオブジェクト３は表示されない。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の原理構成図である。本発明によれば、仮想３次元空間１内の画像を表示するオブジェクト表示プログラムおよびオブジェクト表示装置が提供される。オブジェクト表示装置は、たとえば、オブジェクト表示プログラムをコンピュータに実行させることにより実現される装置である。
【００１８】
本発明のオブジェクト表示プログラムを実行することで、まず、視点２からオブジェクト３までの距離ｄが計算される（ステップＳ１）。
オブジェクト３には、半透明距離ｄ０および半透明距離ｄ０より長い非表示距離ｄ１が設定されている。すなわち、仮想３次元空間１内が、視点２を基準として、半透明距離ｄ０と非表示距離ｄ１とを境界とした３つの領域に分割されている。
【００１９】
次に、半透明距離ｄ０および非表示距離ｄ１と距離ｄとが比較され、オブジェクト３が、どの領域に含まれるのかが判断される。すなわち、計算された距離が半透明距離ｄ０より離れているか否か、および非表示距離ｄ１より離れているか否かが判断される（ステップＳ２）。
【００２０】
さらに、オブジェクト３が非表示距離ｄ１より近いと判断された場合にのみオブジェクト３が描画対象とされ、距離ｄが半透明距離ｄ０より短いと判断された場合には描画対象のオブジェクト３が不透明で描画され、距離ｄが半透明距離ｄ０より長いと判断された場合には描画対象のオブジェクト３が半透明で描画される（ステップＳ３）。
【００２１】
そして、描画されたオブジェクトが表示される（ステップＳ４）。
たとえば、図１には、距離に応じて半透明率が変化するオブジェクト３と、半透明率が変化しないオブジェクト４とが仮想３次元空間１内に配置されているものとする。オブジェクト３は、オブジェクト４の上に配置されているものとする。
【００２２】
オブジェクト３は、視点２から遠ざかるオブジェクトである。最初は、視点２からオブジェクト３までの距離ｄがｄ≦ｄ０となる位置にオブジェクト３が配置されている。その後、オブジェクト３が視点２から遠ざかり、視点２からオブジェクト３までの距離ｄがｄ０＜ｄ≦ｄ１となる。さらにオブジェクト３が視点２から遠ざかると、視点２からオブジェクト３までの距離ｄがｄ１＜ｄとなる。
【００２３】
距離ｄがｄ≦ｄ０の場合には、オブジェクト３は描画対象となる。このとき、オブジェクト３は不透明で描画される。なお、オブジェクト４は常に描画対象である。従って、距離ｄがｄ≦ｄ０の場合の画面５には、オブジェクト３の画像５ａとオブジェクト４の画像５ｂとが表示される。
【００２４】
距離ｄがｄ０＜ｄ≦ｄ１の場合には、オブジェクト３は描画対象となる。このとき、オブジェクト３は半透明で描画される。従って、距離ｄがｄ０＜ｄ≦ｄ１の画面６には、オブジェクト３の半透明の画像６ａとオブジェクト４の画像６ｂとが表示される。
【００２５】
距離ｄがｄ１＜ｄの場合には、オブジェクト３は描画対象とはならない。従って、距離ｄがｄ１＜ｄの場合の画面７には、オブジェクト４の画像７ｂのみが表示される。
【００２６】
このようにして、視点２から遠ざかるオブジェクト３は、半透明の状態を経由して、非表示の状態となる。その結果、処理負荷の軽減のために、視点から遠方のオブジェクトを表示対象から除外する処理を行った場合であっても、動画像の表示中に、オブジェクト３が突然消滅するようなことがなくなる。これにより、違和感のない動画像が表示される。
【００２７】
本発明は、たとえば、仮想３次元空間内に３次元モデルのオブジェクトで街並みを構築し、ユーザの操作入力に応答して視点を移動させ、仮想３次元空間内を動画像で表示させる場合に有効に利用することができる。
【００２８】
図２は、本発明による動画像の一例を示す図である。図２（Ａ）は不透明のオブジェクトを表示する画面を示しており、図２（Ｂ）は半透明のオブジェクトを表示する画面を示しており、図２（Ｃ）はオブジェクトが消えたときの画面を示している。
【００２９】
図２（Ａ）には、２つのオブジェクト３１、３２が表示されている。オブジェクト３１は車を表しており、オブジェクト３２はガソリンスタンドを表している。
【００３０】
車のオブジェクト３１は、視点から遠ざかると非表示にするオブジェクトである。一方、ガソリンスタンドのオブジェクト３２は、街並みの主要部を構成するオブジェクトであるため、視点から遠ざかっても非表示にはしないオブジェクトである。
【００３１】
図２（Ａ）の状態から視点を引いていく（見ている方向に対して後ろへ視点を移動させる）と、図２（Ｂ）の画面２２に遷移する。
図２（Ｂ）の画面２２では、３つのオブジェクト３１〜３３が表示されている。オブジェクト３３は、ガソリンスタンドのオブジェクト３２よりも手前に配置された工場を表している。視点からオブジェクト３１、３２までの距離が遠ざかったことにより、車のオブジェクト３１とガソリンスタンドのオブジェクト３２とは、画面２１のときよりも小さく表示されている。また、車のオブジェクト３１が半透明で描画されている。
【００３２】
図２（Ｂ）の状態からさらに視点を引いていくと、図２（Ｃ）の画面２３に遷移する。
図２（Ｃ）の画面２３では、２つのオブジェクト３２，３３が表示されている。視点からオブジェクト３２、３３までの距離が遠ざかったことにより、ガソリンスタントのオブジェクト３２と工場のオブジェクト３３とは、画面２２のときよりも小さく表示されている。また、画面２２で半透明で表示されていた車のオブジェクト３１は、画面２３では非表示となっている。
【００３３】
このように、視点からオブジェクト３１が遠ざかる場合、オブジェクト３１は半透明の状態を経由して、非表示状態となる。オブジェクト３１は、画面で小さく表示されるようになってから半透明となり、さらに小さくなってから消滅する。そのため、連続した動画像の表示中にオブジェクト３１を表示対象から除外しても、違和感を生じさせずにすむ。
【００３４】
次に、本発明をコンピュータで実現するための実施の形態について具体的に説明する。
図３は、本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ１００は、ＣＰＵ(Central Processing Unit)１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ(Random Access Memory)１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００３５】
ＲＡＭ１０２は、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３は、ＯＳやアプリケーションプログラムが格納される。
【００３６】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００３７】
通信インタフェース１０６は、ネットワーク１０に接続されている。ネットワーク１０は、たとえばインターネットのような広域ネットワークである。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３８】
以上のようなハードウェア構成によって、本実施の形態に係るオブジェクト表示プログラムを実行させれば、本実施の形態の処理機能をコンピュータ１００で実現することができる。すなわち、コンピュータ１００がオブジェクト表示装置として機能する。
【００３９】
図４は、本発明の機能構成例を示すブロック図である。コンピュータ１００は、入力装置１２ａからの入力に応答して画像生成処理を実行し、生成した画像をモニタ１１に表示させる。入力装置１２ａは、図３に示すキーボード１２やマウス１３である。
【００４０】
コンピュータ１００は、視野情報格納部１１１、オブジェクト情報格納部１１２、ユーザインタフェース部１１３、視点状態決定部１１４、距離計算部１１５、半透明率決定部１１６、描画部１１７および表示処理部１１８で構成される。
【００４１】
視野情報格納部１１１には、視点や投影面に関する情報（視野情報）が格納される。視野情報は、ユーザの操作入力に応じて逐次更新される。
オブジェクト情報格納部１１２には、オブジェクトの形状や色などの情報（オブジェクト情報）が格納される。
【００４２】
ユーザインタフェース部１１３は、入力装置１２ａからの入力信号に対応して視点に対する制御命令を生成し、その制御命令を視点状態決定部１１４に渡す。
視点状態決定部１１４は、ユーザインタフェース部１１３から送られる制御命令に応答して、視点情報を決定する。決定する視点情報は、視点の位置や視線ベクトルである。視点状態決定部１１４は、決定した視点情報を視野情報格納部１１１に格納するとともに、視点の位置を距離計算部１１５に渡す。
【００４３】
距離計算部１１５は、視点の位置を受け取ると、オブジェクト情報格納部１１２内の情報を参照し、視点から各オブジェクトまでの距離を計算する。距離の計算結果は、半透明率決定部１１６に伝えられる。
【００４４】
半透明率決定部１１６は、オブジェクト情報格納部１１２内の情報を参照し、距離計算部１１５から送られた視点からオブジェクトまでの距離に基づいて、半透明率を決定する。半透明率決定部１１６は、決定した半透明率を、オブジェクト情報格納部１１２に設定する。
【００４５】
描画部１１７は、視野情報格納部１１１とオブジェクト情報格納部１１２との内容に基づいて、所定の間隔（たとえば、１／６０秒）で３次元モデルを投影面に透視投影し、透視画像を描画する。透視画像の描画が所定の間隔で連続的に行われることで、動画像が生成される。
【００４６】
表示処理部１１８は、描画部１１７が描画した透視画像を画像信号に変換してモニタ１１に送信する。
図５は、視野情報格納部のデータ構造の一例を示す図である。視野情報格納部１１１には、視点位置Ｅ、視線ベクトルＶ、アップベクトルＵ、投影面の視点からの距離、投影面の法線ベクトルＳｎ、およびウィンドウサイズが含まれている。
【００４７】
視点位置Ｅは、視点の位置を、仮想３次元空間の座標（Ｅｘ，Ｅｙ，Ｅｚ）で表している。視点位置Ｅは、ユーザからの操作入力に応じて変更されるデータである。
【００４８】
視線ベクトルＶは、視点から仮想３次元空間内を見る方向（Ｖｘ，Ｖｙ，Ｖｚ）を表す単位ベクトルである。視線ベクトルＶは、ユーザからの操作入力に応じて変更されるデータである。
【００４９】
アップベクトルＵは、視点の上方向（Ｕｘ，Ｕｙ，Ｕｚ）を定めた単位ベクトルである。アップベクトルは、あらかじめ設定されている。本実施の形態では、アップベクトルＵは、常に仮想３次元空間の垂直方向（Ｚ軸と平行）であるものとする。従って、Ｕｘ＝Ｕｙ＝０である。
【００５０】
投影面の視点からの距離は、視点位置Ｅから投影面の基準点（たとえば、投影面の中心）までの距離Ｄである。投影面の視点からの距離Ｄは、あらかじめ設定されている。
【００５１】
投影面の法線ベクトルＳｎは、投影面の法線方向（Ｓｘ，Ｓｙ，Ｓｚ）を表すデータである。投影面の法線ベクトルＳｎは、視線ベクトルＶなどに基づいて算出される。
【００５２】
ウィンドウサイズは、投影面の大きさ（Ｗｘ，Ｗｙ）を示すデータである。ウィンドウサイズは、あらかじめ設定されている。
図６は、オブジェクト情報格納部のデータ構造の一例を示す図である。オブジェクト情報格納部１１２には、オブジェクト毎に、形状の情報、色の情報、基準位置の情報および半透明率の情報とが格納されている。
【００５３】
形状の情報には頂点座標、法線ベクトル、および面の情報が含まれている。
頂点座標は、オブジェクトを構成する各頂点の仮想３次元空間内での座標Ｐ１（Ｐ１ｘ、Ｐ１ｙ、Ｐ１ｚ）、Ｐ２（Ｐ２ｘ、Ｐ２ｙ、Ｐ２ｚ）・・・である。頂点座標は、頂点の識別子Ｐ１，Ｐ２・・・に対応づけて登録されている。
【００５４】
法線ベクトルは、各頂点の法線方向Ｎ１（Ｎ１ｘ、Ｎ１ｙ、Ｎ１ｚ）、Ｎ２（Ｎ２ｘ、Ｎ２ｙ、Ｎ２ｚ）・・・を示している。法線ベクトルは、識別子Ｎ１，Ｎ２・・・に対応づけて登録されている。法線ベクトルは、それぞれ頂点に対応付けられている。
【００５５】
面の情報は、オブジェクトを構成する面の各頂点の集合である。面の情報は、オブジェクトを構成する面毎に登録されている。面を構成する頂点は、その頂点の識別子で特定されている。面が４角形であれば、４つの頂点が登録される。また、面が３角形であれば、３つの頂点が登録される。
【００５６】
色の情報には、モデルの色、光源の色、および光源の位置の情報が含まれている。
モデルの色は、オブジェクトを構成する面の色が、ＲＧＢ（赤、緑、青）の各色の明度（Ｍｒ，Ｍｇ，Ｍｂ）で示されている。モデルの色は、オブジェクトを構成する面毎に定めることもできる。
【００５７】
光源の色は、光源が放つ光の色が、ＲＧＢ（赤、緑、青）の各色の明度（Ｌｒ，Ｌｇ，Ｌｂ）で示されている。
光源の位置は、仮想３次元空間内での光源の位置を示す座標（Ｌｘ，Ｌｙ，Ｌｚ）である。
【００５８】
基準位置の情報には、オブジェクトの位置Ｐの座標（Ｐｘ，Ｐｙ，Ｐｚ）が設定されている。
半透明率の情報には、半透明距離、非表示距離、および半透明率αとが含まれている。
【００５９】
半透明距離は、オブジェクトを不透明で表示する領域と半透明で表示する領域との境界までの、視点からの距離ｄ０（ｄ０＞０）である。
非表示距離は、オブジェクトを半透明で表示する領域と非表示にする領域との境界までの、視点からの距離ｄ１（ｄ１＞０）である。非表示距離は、半透明距離よりも長い距離が設定される。すなわち、距離ｄ０＜距離ｄ１である。
【００６０】
半透明率αは、オブジェクトの半透明の度合いを示す数値である。半透明率αは、視点からオブジェクトまでの距離ｄに応じて、逐次更新される。
なお、半透明距離と非表示距離とを設定可能な最大値にした場合には、対応するオブジェクトは、視点からの距離ｄに関係なく一定のα値（たとえば「０」）となる。また、オブジェクト毎にフラグを設けて、そのフラグが立っている場合にのみ、視点からの距離ｄに応じた半透明率の変更を行うようにしてもよい。
【００６１】
半透明率αは、オブジェクトの半透明の度合いを０〜１の数値で表している。半透明率αの値が大きいほど、オブジェクトが透明度が上がる。半透明率αが０の場合には、オブジェクトは不透明である。半透明率αが１の場合には、オブジェクトは透明である。
【００６２】
具体的には、あるオブジェクトを半透明率αで描画する場合、そのオブジェクトを表す画像と、それ以前に描画されていた画像との合成が行われる。合成処理においては、オブジェクトを表す画像の明度値（ＲＧＢの各色の明るさ）を１−α倍する。また、オブジェクトを表す画像を書き込むべき領域の画像の明度値をα倍する。そして、オブジェクトを表す画像の明度値を、書き込むべき領域の明度値に加算する。これにより、オブジェクトを任意の半透明率αによって描画することができる。
【００６３】
本実施の形態では、半透明率αは、視点からオブジェクトまでの距離ｄに基づいて、以下の式により算出される。
【００６４】
【数１】
・ｄ＜ｄ０の場合、
α＝０      ・・・（１）
【００６５】
【数２】
・ｄ０≦ｄ＜ｄ１の場合、
α＝（ｄ−ｄ０）／（ｄ１−ｄ０）    ・・・（２）
【００６６】
【数３】
・ｄ＜ｄ１の場合、
α＝１      ・・・（３）
なお、視点からオブジェクトまでの距離ｄは、以下の式で算出される。
【００６７】
【数４】
ｄ＝｜Ｅ−Ｐ｜    ・・・（４）
図７は、視点からの距離と半透明率との関係を示す図である。図７は、横軸が視点からの距離ｄであり、縦軸が半透明率αである。
【００６８】
図７に示すように、視点からの距離ｄが０から半透明距離ｄ０までは半透明率αが０であり、オブジェクトが不透明で表示される。距離ｄが半透明距離ｄ０以上となると、半透明率α＞０となり、オブジェクトは半透明で表示される。
【００６９】
距離ｄが半透明距離ｄ０以上、非表示距離ｄ１未満の範囲内にある場合、距離ｄの値が大きくなるのに伴い半透明率が連続的に変化し、半透明率αの値が大きくなる。すなわち、視点からの距離ｄが大きいほど、オブジェクトが透明に近づく。
【００７０】
距離ｄが非表示距離ｄ１以上の場合、半透明率αが１となり、オブジェクトは透明になる。なお、透明なオブジェクトは画面に表示されないため、透視投影などによる描画処理を行う必要はない。
【００７１】
このように、図５，図６に示した各種情報によって、場面毎の透視投影の状況が確定する。そして、視野情報格納部１１１とオブジェクト情報格納部１１２の内容に基づいた３次元透視投影が行われる。
【００７２】
図８は、３次元透視投影の概念を示す模式図である。仮想３次元空間内には、視点２０１、投影面２０２、オブジェクト２０３、および光源２０４が定義されている。視点２０１には、視点位置Ｅや視線ベクトルＶが定義される。投影面２０２には、投影面の法線ベクトルＳｎなどが定義される。オブジェクト２０３には、オブジェクト２０３の位置Ｐの座標が定義される。なお、視点位置Ｅとオブジェクト２０３の位置Ｐの座標とに基づいて、オブジェクト２０３の視点２０１からの距離ｄが算出される。光源２０４には、光源の位置や光源の色などが定義される。
【００７３】
次に、本実施の形態におけるコンピュータによる処理手順を説明する。
図９は、オブジェクト表示処理の処理手順を示すフローチャートである。以下に、図９に示す処理をステップ番号に沿って説明する。
【００７４】
［ステップＳ１１］ユーザインタフェース部１１３は、入力装置１２ａを用いたユーザの操作入力を受け付ける。ユーザインタフェース部１１３は、視点２０１や視線ベクトルＶの移動を示す操作入力であれば、その操作入力に応じた視点２０１の制御情報を視点状態決定部１１４に送る。
【００７５】
［ステップＳ１２］ユーザインタフェース部１１３は、操作入力の内容が、処理の終了を指示する操作入力か否かを判断する。処理の終了を指示する操作入力であれば、処理を終了する。処理の終了を指示する操作入力でなければ、処理がステップＳ１３に進められる。
【００７６】
［ステップＳ１３］視点状態決定部１１４は、制御情報に従って、視点情報を決定する。視点情報は、視点２０１の位置Ｅや視線ベクトルＶである。視点状態決定部１１４は、決定した視点情報を視野情報格納部１１１に登録するとともに、視点２０１の位置Ｅを距離計算部１１５に渡す。
【００７７】
［ステップＳ１４］距離計算部１１５は、オブジェクト情報格納部１１２に登録されている未処理のオブジェクト２０３を１つ選択する。
［ステップＳ１５］距離計算部１１５、半透明率決定部１１６および描画部１１７とにより、描画処理が行われる。描画処理の詳細は後述する。
【００７８】
［ステップＳ１６］距離計算部１１５は、未処理のオブジェクトがあるか異なかを判断する。未処理のオブジェクトがあれば処理がステップＳ１４に進められる。すべてのオブジェクトに対して処理が終了していれば、処理がステップＳ１７に進められる。
【００７９】
［ステップＳ１７］表示処理部１１８は、描画部１１７により描画された画像を、モニタ１１の画面に表示する。その後、処理がステップＳ１１に進められる。
【００８０】
図１０は、描画処理の詳細を示すフローチャートである。以下に、図１０に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］距離計算部１１５は、視点状態決定部１１４から受け取った視点位置Ｅと、オブジェクト情報格納部１１２に格納されているオブジェクトの位置Ｐとの距離ｄを計算する。距離計算部１１５は、算出した距離ｄを、半透明率決定部１１６に渡す。
【００８１】
［ステップＳ２２］半透明率決定部１１６は、距離計算部１１５で算出された距離ｄが、非表示距離ｄ１を超えたか否かを判断する。距離ｄが非表示距離ｄ１を超えていれば、処理が図９のステップＳ１６に進められる。距離ｄが非表示距離ｄ１以下であれば、処理がステップＳ２３に進められる。すなわち、図７に示したような定義に基づくと、非表示距離ｄ１以上の場合には半透明率αが１となり、オブジェクトが表示されない。そのため、そのオブジェクトの描画処理をスキップさせて、処理効率を上げている。
【００８２】
［ステップＳ２３］半透明率決定部１１６は、距離ｄが半透明距離ｄ０を超えたか否かを判断する。半透明距離ｄ０を超えていれば、処理がステップＳ２５に進められる。半透明距離ｄ０以下であれば処理がステップＳ２４に進められる。
【００８３】
［ステップＳ２４］半透明率決定部１１６は、オブジェクト情報格納部１１２の半透明率αの値を０に設定し、処理をステップＳ２６に進める。
［ステップＳ２５］半透明率決定部１１６は、半透明率αを式（２）に基づいて算出し、算出されたαの値をオブジェクト情報格納部１１２に設定する。その後、処理がステップＳ２６に進められる。
【００８４】
［ステップＳ２６］描画部１１７は、視野情報格納部１１１とオブジェクト情報格納部１１２との情報に基づいて、３次元のオブジェクトの透視変換などの処理を行い、投影面２０２に対応する描画領域（たとえば、グラフィック処理装置１０４内に設けられたフレームバッファ）にオブジェクトを表す図形を描画する。
【００８５】
以上のようにして、オブジェクト毎に、視点２０１からの距離ｄに応じた半透明率αを設定し、その半透明率αに基づいた描画を行うことができる。
図１１〜図１７に、本実施の形態に基づいた画像表示例を示す。
【００８６】
図１１は、本実施の形態の第１の画面例を示す図である。この画面１２１には、街並みの中に、車のオブジェクトが表示されている。この画面１２１では、視点２０１から車までの距離ｄは、半透明距離ｄ０未満である。従って、車の画像は、不透明に表示されている。
【００８７】
図１２は、本実施の形態の第２の画面例を示す図である。この画面１２２は、図１１に示した画面１２１から視点２０１を引いたときの状態を示している。視点２０１を引くことにより、画面１２２内における車のオブジェクトの表示領域が小さくなる。この画面１２２では、まだ視点２０１から車までの距離ｄは、半透明距離ｄ０未満である。従って、車の画像は、不透明で表示されている。
【００８８】
図１３は、本実施の形態の第３の画面例を示す図である。この画面１２３は、図１２に示した画面１２２から視点２０１をさらに引いたときの状態を示している。視点２０１を引くことにより、画面１２３内における車のオブジェクトの表示領域がさらに小さくなる。この画面１２３では、視点２０１から車までの距離ｄが、半透明距離ｄ０より長くなっている。従って、車の画像の色が薄くなっている。
【００８９】
図１４は、本実施の形態の第４の画面例を示す図である。この画面１２４は、図１３に示した画面１２３から視点２０１をさらに引いたときの状態を示している。視点２０１を引くことにより、画面１２４内における車のオブジェクトの表示領域がさらに小さくなる。この画面１２４では、視点２０１から車までの距離ｄが離れることで、車の画像の色がさらに薄くなっている。
【００９０】
図１５は、本実施の形態の第５の画面例を示す図である。この画面１２５は、図１４に示した画面１２４から視点２０１をさらに引いたときの状態を示している。視点２０１を引くことにより、画面１２５内における車のオブジェクトの表示領域がさらに小さくなる。この画面１２５では、視点２０１から車までの距離ｄが離れることで、車の画像の色がさらに薄くなっている。
【００９１】
図１６は、本実施の形態の第６の画面例を示す図である。この画面１２６は、図１５に示した画面１２５から視点２０１をさらに引いたときの状態を示している。視点２０１を引くことにより、画面１２６内における車のオブジェクトの表示領域がさらに小さくなる。この画面１２６では、視点２０１から車までの距離ｄが離れることで、車の画像の色がさらに薄くなり、背景の画像にとけ込んでしまっている。
【００９２】
図１７は、本実施の形態の第７の画面例を示す図である。この画面１２７は、図１６に示した画面１２６から視点２０１をさらに引いたときの状態を示している。画面１２７では、視点２０１を引くことにより、視点２０１と車のオブジェクトとの間の距離ｄが離れ、非表示距離ｄ１を超えている。そのため、画面１２７には、車が表示されていない。
【００９３】
以上のように、本実施の形態によれば、視点２０１から表示対象のオブジェクト（図形データ）までの距離ｄに応じて、図形の表示状態を半透明状態を経由して非表示状態に遷移するようにした。そのため、視点２０１から遠ざかるオブジェクトは、徐々に透明度が増していき、画面内での大きさが小さくなった頃に画面から消える。従って、従来のように、オブジェクトが画面から突然姿を消すようなことがなくなり、オブジェクトを非表示にする際の違和感をなくすことができる。
【００９４】
同様に、視点２０１から遠方にあったオブジェクトが視点２０１に近づいてくる場合にも、そのオブジェクトは、半透明状態を経由して、不透明状態となる。そのため、画面内にオブジェクトが突然現れるようなことがなくなる。
【００９５】
しかも、本実施の形態によれば、オブジェクト毎に半透明距離と非表示距離とを設定することができる。これにより、たとえば、サイズの小さいオブジェクトは、大きいオブジェクトよりも半透明距離と非表示距離とを短く設定することができる。サイズの小さいオブジェクトは大きいオブジェクトに比べ画面内の表示領域が狭いため、早めに半透明、非表示に移行しても、違和感を与えずにすむ。
【００９６】
また、オブジェクトの重要度に応じて、非表示にするか否かを設定することができる。たとえば、町の再開発事業の計画立案のため、開発計画案に沿った街並みをコンピュータグラフィックスで再現する場合、街並みを構成する建造物は重要な要素であるが、路上の車のような移動してしまうものは重要度が低い。そこで、建造物は視点２０１からの距離に関係なく不透明とし、車は視点２０１からの距離に応じて半透明率を変化させる。これにより、重要なオブジェクトが非表示になることを防ぐことができる。
【００９７】
なお、上記の説明では、図７に示したように、視点２０１からオブジェクトまでの距離ｄが半透明距離ｄ０を超えると、距離ｄが大きくなるのに伴い連続的に半透明率αが変化するにようにしたが、半透明率αを段階的に変えるようにすることもできる。
【００９８】
図１８は、半透明率を段階的に設定する場合の視点２０１からの距離と半透明率との関係を示す図である。図１８において、横軸は視点２０１からの距離ｄであり、縦軸は半透明率αである。図１８の例では、視点２０１からの距離が半透明距離ｄ０未満の場合には、半透明率αは０である。視点２０１からの距離が半透明距離ｄ０を超えると、半透明率αの値は、段階的（図１８の例では、５段階）に大きくなり、視点２０１からの距離ｄが非表示距離ｄ１となった段階で、半透明率αが１になる。
【００９９】
以上のようにして、視点２０１からオブジェクトまでの距離が遠ざかる際には、段階的に半透明率αを上げることができる。また、視点２０１からオブジェクトまでの距離が近づく際には、段階的に半透明率αを下げることができる。
【０１００】
なお、上記の説明では、オブジェクトが半透明距離ｄ０よりも視点２０１に近いときには不透明で表示するものとしているが、そのオブジェクトを半透明で表示することもできる。半透明で表示されていたオブジェクトが視点から遠ざかる際には、距離ｄが半透明距離ｄ０より遠くなるに従い、元々設定されていた半透明率を１に近づけていけばよい。
【０１０１】
なお、上記実施の形態においては、動画像を表示する処理について説明したが、本発明で対象とする画像は、動画像に限らず、静止画像であっても同様の効果が得られる。
【０１０２】
また、上記実施の形態においては、個々のオブジェクト毎に半透明率の情報を保持するように構成されているが、例えば全てのオブジェクト共通の半透明の情報を別に保持したり、オブジェクトをいくつかのグループにグルーピングし、各グループのオブジェクトに共通の半透明の情報を別に保持する構成も考えられる。
【０１０３】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、コンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスクドライブ（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disc)などがある。
【０１０４】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０５】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０６】
（付記１）  仮想３次元空間内の画像を表示するためのオブジェクト表示プログラムであって、
コンピュータに、
視点からオブジェクトまでの距離を計算し、
所定の半透明距離および前記半透明距離より長い所定の非表示距離と、計算された前記距離とを比較し、
計算された前記距離が前記非表示距離より短いと判断された場合にのみ前記オブジェクトを描画対象とし、前記距離が前記半透明距離より短いと判断された場合には描画対象の前記オブジェクトを不透明で描画し、前記距離が前記半透明距離より長いと判断された場合には描画対象の前記オブジェクトを半透明で描画し、
描画された前記オブジェクトを表示する、
処理を実行させることを特徴とするオブジェクト表示プログラム。
【０１０７】
（付記２）  前記半透明距離と前記非表示距離とは、複数のオブジェクトそれぞれに対して個別に定められていることを特徴とする付記１記載のオブジェクト表示プログラム。
【０１０８】
（付記３）  前記オブジェクトを半透明で描画する際には、前記距離が長いほど高い半透明率で前記オブジェクトを描画することを特徴とする付記１記載のオブジェクト表示プログラム。
【０１０９】
（付記４）  前記オブジェクトを半透明で描画する際には、前記距離の変化に応じて、前記オブジェクトの半透明率を連続的に変化させることを特徴とする付記１記載のオブジェクト表示プログラム。
【０１１０】
（付記５）  前記オブジェクトを半透明で描画する際には、前記距離の変化に応じて、前記オブジェクトの半透明率を段階的に変化させることを特徴とする付記１記載のオブジェクト表示プログラム。
【０１１１】
（付記６）  仮想３次元空間内の画像を表示するためのオブジェクト表示装置であって、
視点からオブジェクトまでの距離を計算する計算手段と、
所定の半透明距離および前記半透明距離より長い所定の非表示距離と、前記計算手段で計算された前記距離とを比較する比較手段と、
前記比較手段により前記距離が前記非表示距離より短いと判断された場合にのみ前記オブジェクトを描画対象とし、前記比較手段により前記距離が前記半透明距離より短いと判断された場合には描画対象の前記オブジェクトを不透明で描画し、前記距離が前記半透明距離より長いと判断された場合には描画対象の前記オブジェクトを半透明で描画する描画手段と、
前記描画手段で描画された前記オブジェクトを表示する表示手段と、
を有することを特徴とするオブジェクト表示装置。
【０１１２】
（付記７）  前記比較手段は、前記半透明距離と前記非表示距離とが、複数のオブジェクトそれぞれに対して個別に定められていることを特徴とする付記６記載のオブジェクト表示装置。
【０１１３】
（付記８）  前記描画手段は、前記距離が長いほど高い半透明率で前記オブジェクトを描画することを特徴とする付記１記載のオブジェクト表示装置。
（付記９）  前記描画手段は、前記距離の変化に応じて、前記オブジェクトの半透明率を連続的に変化させることを特徴とする付記１記載のオブジェクト表示装置。
【０１１４】
（付記１０）  前記描画手段は、前記距離の変化に応じて、前記オブジェクトの半透明率を段階的に変化させることを特徴とする付記１記載のオブジェクト表示装置。
【０１１５】
（付記１１）  仮想３次元空間内の動画像を表示するためのオブジェクト表示プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
視点からオブジェクトまでの距離を計算し、
所定の半透明距離および前記半透明距離より長い所定の非表示距離と、計算された前記距離とを比較し、
計算された前記距離が前記非表示距離より短いと判断された場合にのみ前記オブジェクトを描画対象とし、前記距離が前記半透明距離より短いと判断された場合には描画対象の前記オブジェクトを不透明で描画し、前記距離が前記半透明距離より長いと判断された場合には描画対象の前記オブジェクトを半透明で描画し、
描画された前記オブジェクトを表示する、
処理を実行させることを特徴とする記録媒体。
【０１１６】
（付記１２）  仮想３次元空間内の動画像を表示するためのオブジェクト表示方法であって、
視点からオブジェクトまでの距離を計算し、
所定の半透明距離および前記半透明距離より長い所定の非表示距離と、計算された前記距離とを比較し、
計算された前記距離が前記非表示距離より短いと判断された場合にのみ前記オブジェクトを描画対象とし、前記距離が前記半透明距離より短いと判断された場合には描画対象の前記オブジェクトを不透明で描画し、前記距離が前記半透明距離より長いと判断された場合には描画対象の前記オブジェクトを半透明で描画し、
描画された前記オブジェクトを表示する、
ことを特徴とするオブジェクト表示方法。
【０１１７】
【発明の効果】
以上説明したように本発明では、視点からオブジェクトまでの距離が、半透明距離より短ければオブジェクトを不透明で表示し、半透明距離より長く非表示距離より短ければオブジェクトを半透明で表示し、非表示距離より長ければ表示しないようにした。これにより、画像の中で視点から遠ざかるオブジェクトは、半透明状態を経由して消滅するため、違和感なく画面から消去することができる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】本発明による動画像の一例を示す図である。図２（Ａ）は不透明のオブジェクトを表示する画面を示しており、図２（Ｂ）は半透明のオブジェクトを表示する画面を示しており、図２（Ｃ）はオブジェクトが消えたときの画面を示している。
【図３】本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
【図４】本発明の機能構成例を示すブロック図である。
【図５】視野情報格納部のデータ構造の一例を示す図である。
【図６】オブジェクト情報格納部のデータ構造の一例を示す図である。
【図７】視点からの距離と半透明率との関係を示す図である。
【図８】３次元透視投影の概念を示す模式図である。
【図９】オブジェクト表示処理の処理手順を示すフローチャートである。
【図１０】描画処理の詳細を示すフローチャートである。
【図１１】本実施の形態の第１の画面例を示す図である。
【図１２】本実施の形態の第２の画面例を示す図である。
【図１３】本実施の形態の第３の画面例を示す図である。
【図１４】本実施の形態の第４の画面例を示す図である。
【図１５】本実施の形態の第５の画面例を示す図である。
【図１６】本実施の形態の第６の画面例を示す図である。
【図１７】本実施の形態の第７の画面例を示す図である。
【図１８】半透明率を段階的に設定する場合の視点からの距離と半透明率との関係を示す図である。
【図１９】図形データの詳細度を段階的に変更する場合の例を示す図である。
【符号の説明】
１  仮想３次元空間
２  視点
３，４  オブジェクト
５  画面
５ａ，５ｂ  画像
６  画面
６ａ，６ｂ  画像
７  画面
７ｂ  画像
１０  ネットワーク
１１  モニタ
１２  キーボード
１３  マウス
１００  コンピュータ
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ハードディスクドライブ
１０４  グラフィック処理装置
１０５  入力インタフェース
１０６  通信インタフェース
１０７  バス
【図１】
0003764070.tif 000002
【図２】
0003764070.tif 000003
【図３】
0003764070.tif 000004
【図４】
0003764070.tif 000005
【図５】
0003764070.tif 000006
【図６】
0003764070.tif 000007
【図７】
0003764070.tif 000008
【図８】
0003764070.tif 000009
【図９】
0003764070.tif 000010
【図１０】
0003764070.tif 000011
【図１１】
0003764070.tif 000012
【図１２】
0003764070.tif 000013
【図１３】
0003764070.tif 000014
【図１４】
0003764070.tif 000015
【図１５】
0003764070.tif 000016
【図１６】
0003764070.tif 000017
【図１７】
0003764070.tif 000018
【図１８】
0003764070.tif 000019
【図１９】
0003764070.tif 000020