(57)【要約】  サーバ（１０１）とクライアント（１０２）とが協働して三次元画像表示する三次元画像表示システム（１００）であって、サーバ（１０１）は、三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するサーバメモリ（１０５）と、サーバメモリ（１０５）に格納された頂点情報を異なる座標系に変換し、変換後の頂点情報と、クライアント（１０２）から送信される視点情報（１１８）とに基づき、ポリゴンが表示されるポリゴンか否かを判断し、表示されるポリゴンと判断されたポリゴンに対して描画に有効な頂点であるか否かを示す有効頂点情報（１１９）を生成する有効ポリゴン特定部（１１０）と、有効頂点情報（１１９）をクライアント（１０２）に対して送信するサーバ通信部（１０８）と、を備え、クライアント（１０２）は、三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するクライアントメモリ（１１２）と、サーバ（１０１）に視点情報（１１８）を送信し、サーバ（１０１）から有効頂点情報（１１９）を受信するクライアント通信部（１１６）と、有効頂点情報（１１９）から有効な頂点のみに対して、クライアントメモリ（１１２）に格納された頂点情報を読み出し、異なる座標系に変換し、三次元画像を生成するポリゴン描画部と、を備える。
2014171066.tif 000002
【特許請求の範囲】
【請求項１】
サーバとクライアントとが協働して三次元画像表示する三次元画像表示システムであって、
前記サーバは、
三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するサーバメモリと、
前記サーバメモリに格納された前記頂点情報を異なる座標系に変換し、変換後の頂点情報と、前記クライアントから送信される視点情報とに基づき、前記ポリゴンが表示されるポリゴンか否かを判断し、表示されるポリゴンと判断されたポリゴンに対して描画に有効な頂点であるか否かを示す有効頂点情報を生成する有効ポリゴン特定部と、
前記有効頂点情報を前記クライアントに対して送信するサーバ通信部と、を備え、
前記クライアントは、
前記三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するクライアントメモリと、
前記サーバに前記視点情報を送信し、前記サーバから前記有効頂点情報を受信するクライアント通信部と、
前記有効頂点情報から有効な頂点のみに対して、前記クライアントメモリに格納された前記頂点情報を読み出し、異なる座標系に変換し、三次元画像を生成するポリゴン描画部と、を備える、
三次元画像表示システム。
【請求項２】
前記クライアントメモリが格納する前記頂点情報は、頂点の位置を示す座標データと前記座標データ以外の情報を示す形態データとを含む、
請求項１に記載の三次元画像表示システム。
【請求項３】
サーバとクライアントとが協働して三次元画像表示する三次元画像表示システムにおけるサーバであって、
三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するサーバメモリと、
前記サーバメモリに格納された前記頂点情報を異なる座標系に変換し、変換後の頂点情報と、前記クライアントから送信される視点情報とに基づき、前記ポリゴンが表示されるポリゴンか否かを判断し、表示されるポリゴンと判断されたポリゴンに対して描画に有効な頂点であるか否かを示す有効頂点情報を生成する有効ポリゴン特定部と、
前記有効頂点情報を前記クライアントに対して送信するサーバ通信部と、を備える、
三次元画像表示システムのサーバ。
【請求項４】
三次元画像表示する三次元画像表示方法であって、
三次元形状を構成するポリゴンの頂点位置を示す頂点情報を異なる座標系に変換し、変換後の頂点情報と、視点情報とに基づき、前記ポリゴンが表示されるポリゴンか否かを判断し、表示されるポリゴンと判断されたポリゴンに対して描画に有効な頂点であるか否かを示す有効頂点情報を生成する有効ポリゴン特定ステップと、
前記有効頂点情報を送信する送信ステップと、
を含む、
三次元画像表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、三次元コンピュータグラフィックス技術に関し、サーバとクライアントとが協働して三次元形状のポリゴンモデルを描画する三次元画像表示システム及び三次元画像表示方法に関する。
【背景技術】
【０００２】
三次元コンピュータグラフィックス処理は、三次元空間に仮想的な三次元の立体物を、ユーザの視点情報などに基づき、インタラクティブにスクリーン上に配置し、ディスプレイに表示する画像を生成する処理である。【０００３】
三次元コンピュータグラフィックス処理において、処理の過程で生じる計算の負荷およびメモリアクセスの負荷が大きく、情報処理端末に搭載するには、これらの負荷を低減することが課題である。【０００４】
特許文献１には、情報処理端末の負荷を低減する構成の一例が開示されている。特許文献１の構成では、サーバで三次元コンピュータグラフィックス処理を行い、生成された画像をビデオにエンコードする。サーバはネットワークを介してエンコードしたビデオをクライアントに送信する。クライアントは、受信したビデオをデコードしディスプレイに表示する。クライアントとなる情報処理端末は、負荷の大きい三次元コンピュータグラフィックス処理を行わずに三次元コンピュータグラフィックス処理後の画像を受け取って、その画像をディスプレイに表示する構成が開示されている。【０００５】
特許文献２には、別の一例が開示されている。特許文献２の構成では、地図を三次元的に表示する際に、サーバから表示に必要なポリゴンデータそのものを配信して通信データ量を制御する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１２−５２１２６８号公報
【特許文献２】特開２００７−２５５９８９号公報
【発明の概要】
【０００７】
本開示は、クライアントの負荷の低減とネットワークの負荷の低減を両立する三次元画像表示システムを提供する。
【０００８】
本開示の三次元画像表示システムおよび三次元画像表示方法は、サーバとクライアントとが協働して三次元画像表示する三次元画像表示システムであって、サーバは、三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するサーバメモリと、サーバメモリに格納された頂点情報を異なる座標系に変換し、変換後の頂点情報と、クライアントから送信される視点情報とに基づき、ポリゴンが表示されるポリゴンか否かを判断し、表示されるポリゴンと判断されたポリゴンに対して描画に有効な頂点であるか否かを示す有効頂点情報を生成する有効ポリゴン特定部と、有効頂点情報をクライアントに対して送信するサーバ通信部と、を備え、クライアントは、三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するクライアントメモリと、サーバに視点情報を送信し、サーバから有効頂点情報を受信するクライアント通信部と、有効頂点情報から有効な頂点のみに対して、クライアントメモリに格納された頂点情報を読み出し、異なる座標系に変換し、三次元画像を生成するポリゴン描画部と、を備える。
【０００９】
これにより、本開示の三次元画像表示システムおよび三次元画像表示方法はクライアントの負荷の低減と、ネットワークの負荷の低減を両立できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態における三次元画像表示システムの構成の一例を示すブロック図である。
【図２】図２は、実施の形態におけるサーバメモリに格納されているデータの一例を示す図である。
【図３】図３は、実施の形態におけるクライアントメモリに格納されているデータの一例を示す図である。
【図４】図４は、実施の形態におけるサーバの動作の一例を示すフローチャートである。
【図５】図５は、ポリゴンの描画が有効か否かの判定を説明する図である。
【図６Ａ】図６Ａは、ポリゴンモデルがポリゴンストリップ形式で構成されている一例を示す図である。
【図６Ｂ】図６Ｂは、図６Ａのポリゴンモデルと有効頂点情報の対応関係を示す図である。
【図６Ｃ】図６Ｃは、生成した有効頂点情報の一例を示す図である。
【図６Ｄ】図６Ｄは、生成した有効頂点情報の別の一例を示す図である。
【図６Ｅ】図６Ｅは、生成した有効頂点情報のさらに別の一例を示す図である。
【図７】図７は、実施の形態におけるクライアントの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１２】
なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために、提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【００１３】
（実施の形態）
近年、情報処理端末のディスプレイの高解像度化に伴って三次元コンピュータグラフィックス処理によって生成される画像のデータサイズが増加している。その結果、生成された画像をエンコードした結果であるビデオデータのサイズも増加するため、特許文献１の構成のように、サーバで三次元コンピュータグラフィックス処理した画像をクライアント情報処理端末に送信すると、ネットワークに大きな負荷が発生する。そのため、情報処理端末のディスプレイへの画像の表示に遅延が発生する。さらに、ネットワークの負荷を低減させるためにビデオデータを過度に圧縮すると、情報処理端末のディスプレイへの表示画像の画質の劣化を招いてしまう。また、特許文献２の構成のように、通信データ量を抑制するために、サーバからクライアントへ表示に必要なポリゴンのみを送信したとしても、表示に必要なポリゴンのそれぞれのデータ量が大きいため、ネットワークの負荷は大きくなる。
【００１４】
以上のように、従来の情報処理端末において、情報処理端末における三次元コンピュータグラフィックス処理を、ネットワークで接続されたサーバ上で処理させると情報処理端末における負荷が低減されてもネットワーク上の負荷が増大するという課題がある。
【００１５】
そこで、本開示は、情報処理端末の負荷の低減とネットワークの負荷の低減を両立する三次元画像表示システムを提供することを目的とする。
【００１６】
本実施の形態の三次元画像表示システムで実施する三次元コンピュータグラフィックス処理は、三次元空間に、多角形の組み合わせで立体物を表現するポリゴンモデルおよび視点となる仮想的なカメラを配置する。そして、ポリゴンモデルが仮想的なカメラからスクリーンに表示される画像を生成する。
【００１７】
三次元コンピュータグラフィックス処理において、ポリゴンモデルおよび仮想的なカメラが配置された三次元空間を、シーンと呼ぶ。
【００１８】
本実施の形態の三次元画像表示システムは、配置されたポリゴンモデルを表示画面に描画することで、一つのシーンを構成する。本実施の形態では、描画対象のシーンを対象シーン、対象シーンを構成する描画対象のポリゴンモデルを対象ポリゴンと呼ぶ。
【００１９】
＜１．構成＞
図１は、実施の形態における三次元画像表示システムの構成の一例を示すブロック図である。図１に示すように、三次元画像表示システム１００は、サーバ１０１とクライアント１０２がネットワーク１０３を介して接続されている。
【００２０】
サーバ１０１は、サーバ情報処理装置１０４とサーバメモリ１０５で構成される。
【００２１】
サーバ情報処理装置１０４は、サーバＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１０６、サーバＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０７とサーバ通信部１０８で構成される。
【００２２】
サーバＧＰＵ１０７は頂点座標処理部１０９と有効ポリゴン特定部１１０で構成される。
【００２３】
クライアント１０２は、クライアント情報処理装置１１１とクライアントメモリ１１２で構成される。
【００２４】
クライアント情報処理装置１１１は、クライアントＣＰＵ１１３とクライアントＧＰＵ１１４とディスプレイ１１５とクライアント通信部１１６で構成される。
【００２５】
クライアントＧＰＵ１１４は、ポリゴン描画部１１７で構成される。
【００２６】
図２は、実施の形態におけるサーバメモリ１０５に格納されているデータの一例を示す図である。図３は、実施の形態におけるクライアントメモリ１１２に格納されているデータの一例を示す図である。サーバメモリ１０５とクライアントメモリ１１２には予め、三次元画像表示に必要なデータがそれぞれ格納されている。
【００２７】
サーバメモリ１０５には、描画命令リスト２０２と頂点データリスト２０３で構成されるデータ２０１が格納されている。
【００２８】
描画命令リスト２０２は、ポリゴン描画命令に関する情報を示す描画命令２０４を含む。図２に示すように、描画命令２０４は、描画対象となるポリゴンの表現形式、後述する頂点データ２０５の各種データの先頭アドレス等を含む。ポリゴンの表現形式には、ポリゴンストリップ形式、ポリゴンファン形式やポリゴンメッシュ形式等がある。
【００２９】
頂点データリスト２０３は、ポリゴンモデルのポリゴンを構成する頂点の情報を示すデータである、頂点データ２０５のリストである。頂点データ２０５は、頂点ＩＤ２０６、座標データ２０７と形態データ２０８で構成される。頂点ＩＤ２０６は、ポリゴンモデルの頂点の番号を示し、図２の一例では、Ｖ０Ｖ１、Ｖ２、・・・、Ｖ（ｋ−１）、Ｖｋ（ｋは１以上の整数）で示されている。座標データ２０７は、ポリゴンモデルの各頂点の位置を示す。形態データ２０８は、ポリゴンモデルの各頂点の座標データ以外の情報、例えば、各頂点の法線データ、カラーデータ、テクスチャ座標データ等を示す。
【００３０】
クライアントメモリ１１２には、サーバメモリ１０５に格納されるデータ２０１と同じ構成で同一のデータ３０１が格納されている。すなわち、描画命令リスト２０２に対して描画命令リスト３０２、頂点データリスト２０３に対して頂点データリスト３０３、描画命令２０４に対して描画命令３０４、頂点データ２０５に対して頂点データ３０５、頂点ＩＤ２０６に対して頂点ＩＤ３０６、座標データ２０７に対して座標データ３０７、形態データ２０８に対して形態データ３０８がそれぞれ対応している。
【００３１】
クライアントＣＰＵ１１３は描画開始の指示をクライアントＧＰＵ１１４とサーバ１０１へ伝える。サーバ１０１への描画開始の指示は、クライアント通信部１１６からネットワーク１０３を介してサーバ通信部１０８へ、さらに、サーバＣＰＵ１０６へ送付される。描画開始の指示とは、例えば、三次元画像表示したいシーンの番号等の描画開始の指示である。クライアントＧＰＵ１１４は描画開始の指示を受け付ける。
【００３２】
描画開始の指示を受け付けたクライアントＧＰＵ１１４は、クライアントＣＰＵ１１３へ描画開始の最初の視点情報１１８を送る。この視点情報１１８は、原点等の予め決められた視点である。クライアントＣＰＵ１１３は、クライアント通信部１１６からネットワーク１０３を介してサーバ通信部１０８へ、さらにサーバＧＰＵ１０７へ視点情報１１８を送る。
【００３３】
サーバＣＰＵ１０６は、描画開始の指示を受けて、サーバＧＰＵ１０７へ描画開始の指示を伝える。描画開始の指示を受け付けたサーバＧＰＵ１０７において、頂点座標処理部１０９は、サーバメモリ１０５の描画命令リスト２０２から描画の対象となる対象シーンの描画命令２０４と頂点データリスト２０３から描画の対象となる頂点データ２０５をロードする。
【００３４】
サーバＧＰＵ１０７において、頂点座標処理部１０９はクライアントＣＰＵ１１３から受信した視点情報１１８と、サーバメモリ１０５からロードした対象シーンに含まれる対象ポリゴンの頂点データ２０５のうち、ポリゴンの頂点の位置を示す座標データ２０７から、視点情報１１８の視点から見たときの対象ポリゴンの頂点の三次元空間上の座標であるワールド座標および対象ポリゴンの頂点のスクリーン上の座標であるスクリーン座標を計算する。
【００３５】
次に、有効ポリゴン特定部１１０は、頂点座標処理部１０９で計算された座標値であるワールド座標とスクリーン座標から対象ポリゴンの描画が有効か否かを判定し、ポリゴン描画有効情報を出力する。そして、有効ポリゴン特定部１１０は、出力された対象ポリゴンのポリゴン描画有効情報から対象ポリゴンを構成する頂点の有効情報を生成する。
【００３６】
サーバ通信部１０８は、有効ポリゴン特定部１１０で生成された、有効頂点情報１１９をサーバ通信部１０８からネットワーク１０３を介してクライアント通信部１１６へ送信する。
【００３７】
クライアント通信部１１６は、サーバ通信部１０８から受信した有効頂点情報１１９を受信し、ポリゴン描画部１１７へ送る。ポリゴン描画部１１７は、描画開始の指示と有効頂点情報１１９を受けて、クライアントメモリ１１２に格納された描画命令リスト３０２から描画の対象となる対象シーンの描画命令３０４と、対象シーンの頂点データリスト３０３から対象となる頂点データ３０５のうち、受信した有効頂点情報１１９から有効と判断された頂点データ３０５についてのみ、クライアントメモリ１１２からロードする。そして、ポリゴン描画部１１７は、描画開始の最初の視点情報１１８およびロードした頂点データ３０５に含まれる座標データ３０７から、視点から見た三次元空間上の座標であるワールド座標およびスクリーン上の座標であるスクリーン座標を計算し、計算された座標値およびロードした頂点データ３０５に含まれる形態データ３０８から、ポリゴンの各画素のカラー値を計算することでスクリーンの画像を生成する。
【００３８】
ポリゴン描画部１１７で生成された画像はディスプレイ１１５で表示される。
【００３９】
＜２．動作＞
以下、実施の形態の三次元画像表示システムのサーバ１０１の動作とクライアント１０２の動作について、図面を参照しながら説明する。
【００４０】
図４は、実施の形態におけるサーバ１０１の動作の一例を示すフローチャートである。図４のフローチャートの説明において、あらかじめ描画開始の指示がされているものとする。
【００４１】
（ステップＳ４０１）頂点座標処理部１０９は、クライアントＣＰＵ１１３からクライアント通信部１１６およびネットワーク１０３を介して送信された視点情報１１８を、サーバ通信部１０８を通じて受信する。
【００４２】
（ステップＳ４０２）頂点座標処理部１０９は、描画開始の指示と視点情報１１８を受けて、サーバメモリ１０５に格納された描画命令リスト２０２から描画の対象となる対象シーンの描画命令２０４と頂点データリスト２０３から描画の対象となる頂点データ２０５をロードする。
【００４３】
（ステップＳ４０３）次に、頂点座標処理部１０９は、ロードした頂点データ２０５の座標データ２０７に対してワールド座標およびスクリーン座標への座標変換処理を行う。
【００４４】
（ステップＳ４０４）。有効ポリゴン特定部１１０は、ポリゴンを構成する各頂点について計算したワールド座標およびスクリーン座標から対象ポリゴンの描画が有効か否かを判定し、判定結果をポリゴン描画有効情報として生成する。
【００４５】
対象ポリゴンの描画が有効か否かの判定は、例えば以下のように判定する。図５は、対象ポリゴンの描画が有効か否かの判定を説明する図である。対象ポリゴンの描画が有効か否かの判定は、複数の頂点から構成されるポリゴンが画像生成時に用いられるか否かを判定する処理である。対象ポリゴンの描画が有効であるか否かの判定では、視点５０１を原点としてスクリーン座標に変換した座標データを用いる。視点５０１から見たときに、スクリーン５０２に投影することができるポリゴンであれば描画が有効、そうでなければ無効と判定する。具体的には、対象ポリゴンの描画が有効であるか否かの判定は、４種類の判定を行う。
【００４６】
第１の判定では、対象ポリゴンが可視空間５０３を示す六面体の中に入っているか否かを判定する。対象ポリゴンを構成する頂点のうち全ての頂点の座標が可視空間５０３の外に存在していれば対象ポリゴンの描画は無効となる。例えば、ポリゴン５０４のように可視空間５０３の外に存在するポリゴンは描画が無効となる。
【００４７】
第２の判定では、対象ポリゴンをスクリーン５０２に投影したときに対象ポリゴンの表示部分が１画素未満になるか否かを判定する。例えば、ポリゴン５０５のように対象ポリゴンが小さく、視点５０１に対して水平に配置されているポリゴンは描画が無効となる。
【００４８】
第３の判定では、可視空間５０３の中に入っている対象ポリゴンについて視点５０１から見たときのポリゴン面が表向きかどうかを判定する。対象ポリゴンを構成する頂点の座標から面法線ベクトルを求め視点方向ベクトルとの内積の符号を確認することでポリゴンの表裏を判定することができる。視点５０１から見て裏向きであれば、ポリゴンの描画は無効となる。例えば、ポリゴン５０６のようにポリゴン面が視点５０１から見て裏向きであるポリゴンは描画が無効である。
【００４９】
第４の判定では、対象ポリゴンをスクリーン５０２に投影したときに他のポリゴンの奥に配置されて見えなくなるか否かを判定する。例えば、スクリーン５０２に投影したときに、ポリゴン５０７は、ポリゴン５０８の奥に配置されるので、描画は無効である。
【００５０】
以上の４種類の判定の全てにおいて、描画が有効であるポリゴンは描画が有効であると判定される。例えば、ポリゴン５０８、ポリゴン５０９は、描画が有効である。
【００５１】
（ステップＳ４０５）さらに、有効ポリゴン特定部１１０は、ポリゴンの描画が有効か否かの判定結果を示すポリゴン描画有効情報をもとにポリゴンを構成する頂点が有効か否かを判定し、有効頂点情報１１９を生成する。
【００５２】
図６Ａは、ポリゴンモデルがポリゴンストリップ形式で構成されている一例を示す図である。図６Ｂは、図６Ａのポリゴンモデルと有効頂点情報の対応関係を示す図である。図６Ｃは、生成した有効頂点情報の一例を示す図である。図６Ｄは、生成した有効頂点情報の別の一例を示す図である。図６Ｅは、生成した有効頂点情報のさらに別の一例を示す図である。ポリゴンストリップ形式は、頂点を共有しながら連続でポリゴンを描画する形式である。図６Ａに示すように、ポリゴンストリップ６０１のポリゴンＰｊ（ｊ＝０〜６）は、頂点ＩＤがＶｊ、Ｖｊ＋１、Ｖｊ＋２の３点で構成される。また、ポリゴンストリップ６０１の頂点ＩＤはＶ０→Ｖ１→Ｖ２→Ｖ３→Ｖ４→Ｖ５→Ｖ６→Ｖ７→Ｖ８の順で指定される。なお、ポリゴンＰ０、Ｐ１及びＰ６が有効なポリゴンであるとする。
【００５３】
ポリゴンを構成する頂点の有効か否かの判定は、Ｖ０→Ｖ１→Ｖ２→Ｖ３→Ｖ４→Ｖ５→Ｖ６→Ｖ７→Ｖ８の順に行う。頂点Ｖｉについて頂点が有効か否かの判定を行うときに、頂点Ｖｉを含むポリゴンＰｉ−２、Ｐｉ−１、Ｐｉのポリゴン描画有効情報の論理和演算を行う。すなわち、対象ポリゴンのポリゴン描画有効情報が１つでも有効であれば、頂点Ｖｉは有効であると判定される。なおこの判定で、存在しないポリゴン番号のポリゴン描画有効情報は無効であるとして扱う。
【００５４】
図６Ｂは、この判定を図示している。具体的には、頂点Ｖ０については、頂点Ｖ０が含まれるポリゴンＰ０のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ０は有効であると判定する。頂点Ｖ１については、頂点Ｖ１が含まれるポリゴンＰ０、Ｐ１の両方ともポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ１は有効であると判定する。頂点Ｖ２については、頂点Ｖ２が含まれるポリゴンＰ０、Ｐ１及びＰ２のうち、Ｐ０とＰ１のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ２は有効であると判定する。頂点Ｖ３については、頂点Ｖ３が含まれるポリゴンＰ１、Ｐ２及びＰ３のうち、Ｐ１のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ３は有効であると判定する。頂点Ｖ４については、頂点Ｖ４が含まれるポリゴンＰ２、Ｐ３及びＰ４のうち、全てのポリゴンのポリゴン描画有効情報が無効であるＦを示しているので頂点Ｖ４は無効であると判定する。頂点Ｖ５についても、頂点Ｖ５が含まれるポリゴンＰ３、Ｐ４及びＰ５のうち、全てのポリゴン描画有効情報が無効であるＦを示しているので頂点Ｖ５は無効であると判定する。頂点Ｖ６については、頂点Ｖ６が含まれるポリゴンＰ４、Ｐ５及びＰ６のうち、Ｐ６のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ６は有効であると判定する。頂点Ｖ７については、頂点Ｖ７が含まれるポリゴンＰ５及びＰ６のうち、Ｐ６のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ７は有効であると判定する。頂点Ｖ８については、頂点Ｖ８が含まれるポリゴンＰ６のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ８は有効であると判定する。有効ポリゴン特定部１１０は、頂点Ｖ０、Ｖ１、Ｖ２、Ｖ３、Ｖ６、Ｖ７、Ｖ８は有効、頂点Ｖ４、Ｖ５は無効とする有効頂点情報を生成する。
【００５５】
有効頂点情報の形式としては、図６Ｃのように、頂点ＩＤと対応する有効頂点情報をリストにしたものでもよいし、図６Ｄのように有効頂点情報が有効な頂点ＩＤのみをリストにしたものでもよいし、図６Ｅのように有効頂点情報が有効な頂点ＩＤのアドレス情報のみをリストにしたものでもよい。
【００５６】
（ステップＳ４０６）サーバ通信部１０８は、有効ポリゴン特定部１１０で生成した有効頂点情報１１９をクライアント通信部１１６に送信する。有効頂点情報１１９を必要最小限の情報としてクライアント１０２に送信することで、ネットワークの負荷が低減できる。
【００５７】
（ステップＳ４０７）対象シーンの全ての対象ポリゴンについてステップＳ４０２〜ステップＳ４０６の処理が完了していなければ、ステップＳ４０２に戻って次のポリゴンに対する処理を継続する。完了した場合は終了する。
【００５８】
図７は、実施の形態におけるクライアント１０２の動作の一例を示すフローチャートである。図７のフローチャートの説明において、あらかじめ描画開始の指示がされているものとする。
【００５９】
（ステップＳ７０１）描画開始の指示を受け付けたクライアントＧＰＵ１１４は、クライアントＣＰＵ１１３へ描画開始の最初の視点情報１１８を送る。この視点情報１１８は、原点等の予め決められた視点である。クライアントＣＰＵ１１３は、クライアント通信部１１６、サーバ通信部１０８を通じて、サーバＧＰＵ１０７へ視点情報１１８を送る。ポリゴン描画部１１７は、クライアントメモリ１１２の描画命令リスト３０２から描画の対象となる対象シーンの描画命令３０４をロードする。
【００６０】
（ステップＳ７０２）クライアント通信部１１６は、サーバ通信部１０８が送信した有効頂点情報１１９を受信し、ポリゴン描画部１１７に送る。
【００６１】
（ステップＳ７０３）ポリゴン描画部１１７は、受信した有効頂点情報１１９から頂点ＩＤごとに対象ポリゴンに含まれる頂点が有効か否かを確認し、頂点が有効であれば、クライアントメモリ１１２に格納された描画の対象となる対象シーンの頂点データリスト３０３から描画の対象となる頂点データ３０５のうち、有効な頂点ＩＤ３０６、有効な座標データ３０７、有効な形態データ３０８のみロードする。例えば、有効頂点情報が図６Ｃの場合、有効な頂点ＩＤはＶ０、Ｖ１、Ｖ２、Ｖ３、Ｖ６、Ｖ７、Ｖ８であるので、これらの頂点ＩＤに対応する座標データ３０７と形態データ３０８のみをロードする。
【００６２】
（ステップＳ７０４）ポリゴン描画部１１７は、ロードした座標データ３０７および形態データ３０８から、ワールド座標およびスクリーン座標への座標変換、および、ポリゴンの各画素のカラー値を計算することで、対象ポリゴンのスクリーン画像を生成し、ポリゴン描画部１１７で生成された画像はディスプレイ１１５で表示される。
【００６３】
（ステップＳ７０５）対象シーンの全ての対象ポリゴンについてステップＳ７０２〜ステップＳ７０４の処理が完了すれば、処理は完了する。対象シーンの全ての対象ポリゴンについてステップＳ７０２〜ステップＳ７０４の処理が完了していなければ、次のポリゴンについてステップＳ７０２〜ステップＳ７０４の処理を実行する。
【００６４】
本実施の形態の三次元画像表示システムのサーバ１０１の動作とクライアント１０２の動作について、クライアントＣＰＵ１１３から視点情報１１８を送信するタイミングは、あらかじめ決めておいた時間毎に送信してもよいし、視点情報１１８が変化したときにのみ送信してもよい。
【００６５】
なお、視点情報として、原点等の予め決められた視点だけでなく、視点に加えて、クライアントが表示させたいシーンのシーン番号、クライアント上の表示画面の可視範囲、クライアント上の表示画面に三次元空間から二次元空間にどのように投影するかを示す投影パラメータ、クライアントのユーザがメニュー操作やシーン内のオブジェクトを操作したシーン変化であるオブジェクトの操作後の位置／移動量／移動速度／移動加速度／形状変化／色変化等の情報のうち１つまたは複数を視点情報としてもよい。
【００６６】
なお、サーバメモリ１０５に格納されるデータ２０１とクライアントメモリ１１２に格納されるデータ３０１は、同じものであるとして動作説明したが、同じである必要はなく、サーバメモリ１０５に格納されるデータ２０１の頂点データリスト２０３に含まれる頂点データ２０５のうち処理に必要な座標データ２０７が、クライアントメモリ１１２に格納されるデータ３０１の頂点データリスト３０３に含まれる頂点データ３０５の座標データ３０７と同じであればよい。また、サーバメモリ１０５に格納されるデータ２０１の頂点データリスト２０３に含まれる頂点データ２０５のうち頂点ＩＤ２０６と座標データ２０７がクライアントメモリ１１２に格納されるデータ３０１の頂点データリスト３０３に含まれる頂点データ３０５の頂点ＩＤ３０６と座標データ３０７と同じであればよい。
【００６７】
なお、有効頂点情報は、図６Ｃ、図６Ｄ、図６Ｅの例以外の形式でもよい。例えば、サーバメモリとクライアントメモリで同じ頂点データを格納しており、頂点ＩＤの順も同じであるので、図６Ｃの形式のうち、頂点ＩＤの順で描画有効情報が有効であるＴか無効であるＦのみの形式としてもよい。
【００６８】
＜３．まとめ＞
本実施の形態の三次元画像表示システムにおいて、サーバは、クライアントから受信する視点情報およびサーバメモリに格納されているポリゴンモデルを構成するポリゴンの頂点データに含まれる座標データから対象ポリゴンの描画に必要な頂点を特定し、描画に有効なポリゴンの頂点を示す有効頂点情報をクライアントに送信する。クライアントでは、受信した有効頂点情報に基づき、クライアントメモリへ必要最小限の頂点データの座標データと形態データにのみアクセスしてポリゴンを描画する。この構成により、クライアントの三次元コンピュータグラフィックス処理の負荷を低減しつつ、ネットワーク上にビデオデータを送信しないので、ネットワークの負荷も低減する三次元コンピュータグラフィックス処理画像の生成が実現できる。
【００６９】
＜４．他の構成＞
本開示に係る三次元画像表示システムについて説明したが、本開示はこれに限られるものではない。
【００７０】
例えば、サーバ１０１とクライアント１０２は、必ずしも一対一である必要はなく、一台のサーバに複数のクライアントの構成でもよい。この構成によれば、強力な処理能力を持つサーバ１０１が一台あればネットワークの負荷の低減とそれぞれのクライアント１０２の三次元コンピュータグラフィックス処理の負荷の低減を両立させることが可能である。
【００７１】
また、有効ポリゴン特定部１１０の対象ポリゴンの描画が有効であるか否かの判定に４種類の判定を行ったが、４種類のうち一部を選択してもよいし、別の判定を行ってもよい。判定を減らすことで、有効ポリゴン特定部１１０の処理負荷を低減でき、逆に判定を追加することで描画するポリゴンが減るので、クライアント１０２における三次元コンピュータグラフィックス処理の負荷をさらに低減することができる。
【００７２】
本実施の形態のサーバ情報処理装置１０４およびクライアント情報処理装置１１１は、それぞれＣＰＵおよびＧＰＵは個別に集積回路化してもよいし、１つの集積回路としてもよい。また、サーバ情報処理装置やクライアント情報処理装置はそれぞれ一部又は全部を汎用プロセッサ上のプログラムによって実現してもよいし、製造後にハードウェア構成を変更することが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や集積回路内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用して実現してもよい。
【００７３】
また、本開示は、上記のプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データおよび信号は、インターネット等の通信ネットワークを介して配信してもよい。
【産業上の利用可能性】
【００７４】
本開示の三次元画像表示システムは、グラフィックス描画機能を搭載する様々な電子機器、例えば、携帯電話、タブレット、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルテレビ、カーナビゲーションシステム、家庭用ゲーム機、パーソナルコンピュータ等に用いることができる。
【符号の説明】
【００７５】
１００  三次元画像表示システム
１０１  サーバ
１０２  クライアント
１０３  ネットワーク
１０４  サーバ情報処理装置
１０５  サーバメモリ
１０６  サーバＣＰＵ
１０７  サーバＧＰＵ
１０８  サーバ通信部
１０９  頂点座標処理部
１１０  有効ポリゴン特定部
１１１  クライアント情報処理装置
１１２  クライアントメモリ
１１３  クライアントＣＰＵ
１１４  クライアントＧＰＵ
１１５  ディスプレイ
１１６  クライアント通信部
１１７  ポリゴン描画部
１１８  視点情報
１１９  有効頂点情報
２０１，３０１  データ
２０２，３０２  描画命令リスト
２０３，３０３  頂点データリスト
２０４，３０４  描画命令
２０５，３０５  頂点データ
２０６，３０６  頂点ＩＤ
２０７，３０７  座標データ
２０８，３０８  形態データ
５０１  視点
５０２  スクリーン
５０３  可視空間
５０４，５０５，５０６，５０７，５０８，５０９  ポリゴン
【図１】
2014171066.tif 000003
【図２】
2014171066.tif 000004
【図３】
2014171066.tif 000005
【図４】
2014171066.tif 000006
【図５】
2014171066.tif 000007
【図６Ａ】
2014171066.tif 000008
【図６Ｂ】
2014171066.tif 000009
【図６Ｃ】
2014171066.tif 000010
【図６Ｄ】
2014171066.tif 000011
【図６Ｅ】
2014171066.tif 000012
【図７】
2014171066.tif 000013
【手続補正書】
【提出日】平成27年9月2日(2015.9.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、三次元コンピュータグラフィックス技術に関し、サーバとクライアントとが協働して三次元形状のポリゴンモデルを描画する三次元画像表示システム及び三次元画像表示方法に関する。
【背景技術】
【０００２】
三次元コンピュータグラフィックス処理は、三次元空間に仮想的な三次元の立体物を、ユーザの視点情報などに基づき、インタラクティブにスクリーン上に配置し、ディスプレイに表示する画像を生成する処理である。
【０００３】
三次元コンピュータグラフィックス処理において、処理の過程で生じる計算の負荷およびメモリアクセスの負荷が大きく、情報処理端末に搭載するには、これらの負荷を低減することが課題である。
【０００４】
特許文献１には、情報処理端末の負荷を低減する構成の一例が開示されている。特許文献１の構成では、サーバで三次元コンピュータグラフィックス処理を行い、生成された画像をビデオにエンコードする。サーバはネットワークを介してエンコードしたビデオをクライアントに送信する。クライアントは、受信したビデオをデコードしディスプレイに表示する。クライアントとなる情報処理端末は、負荷の大きい三次元コンピュータグラフィックス処理を行わずに三次元コンピュータグラフィックス処理後の画像を受け取って、その画像をディスプレイに表示する構成が開示されている。
【０００５】
特許文献２には、別の一例が開示されている。特許文献２の構成では、地図を三次元的に表示する際に、サーバから表示に必要なポリゴンデータそのものを配信して通信データ量を制御する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１２−５２１２６８号公報
【特許文献２】特開２００７−２５５９８９号公報
【発明の概要】
【０００７】
本開示は、クライアントの負荷の低減とネットワークの負荷の低減を両立する三次元画像表示システムを提供する。
【０００８】
本開示の三次元画像表示システムおよび三次元画像表示方法は、サーバとクライアントとが協働して三次元画像表示する三次元画像表示システムであって、サーバは、三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するサーバメモリと、サーバメモリに格納された頂点情報を異なる座標系に変換し、変換後の頂点情報と、クライアントから送信される視点情報とに基づき、ポリゴンが表示されるポリゴンか否かを判断し、表示されるポリゴンと判断されたポリゴンに対して描画に有効な頂点であるか否かを示す有効頂点情報を生成する有効ポリゴン特定部と、有効頂点情報をクライアントに対して送信するサーバ通信部と、を備え、クライアントは、三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するクライアントメモリと、サーバに視点情報を送信し、サーバから有効頂点情報を受信するクライアント通信部と、有効頂点情報から有効な頂点のみに対して、クライアントメモリに格納された頂点情報を読み出し、異なる座標系に変換し、三次元画像を生成するポリゴン描画部と、を備える。
【０００９】
これにより、本開示の三次元画像表示システムおよび三次元画像表示方法はクライアントの負荷の低減と、ネットワークの負荷の低減を両立できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態における三次元画像表示システムの構成の一例を示すブロック図である。
【図２】図２は、実施の形態におけるサーバメモリに格納されているデータの一例を示す図である。
【図３】図３は、実施の形態におけるクライアントメモリに格納されているデータの一例を示す図である。
【図４】図４は、実施の形態におけるサーバの動作の一例を示すフローチャートである。
【図５】図５は、ポリゴンの描画が有効か否かの判定を説明する図である。
【図６Ａ】図６Ａは、ポリゴンモデルがポリゴンストリップ形式で構成されている一例を示す図である。
【図６Ｂ】図６Ｂは、図６Ａのポリゴンモデルと有効頂点情報の対応関係を示す図である。
【図６Ｃ】図６Ｃは、生成した有効頂点情報の一例を示す図である。
【図６Ｄ】図６Ｄは、生成した有効頂点情報の別の一例を示す図である。
【図６Ｅ】図６Ｅは、生成した有効頂点情報のさらに別の一例を示す図である。
【図７】図７は、実施の形態におけるクライアントの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１２】
なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために、提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【００１３】
（実施の形態）
近年、情報処理端末のディスプレイの高解像度化に伴って三次元コンピュータグラフィックス処理によって生成される画像のデータサイズが増加している。その結果、生成された画像をエンコードした結果であるビデオデータのサイズも増加するため、特許文献１の構成のように、サーバで三次元コンピュータグラフィックス処理した画像をクライアント情報処理端末に送信すると、ネットワークに大きな負荷が発生する。そのため、情報処理端末のディスプレイへの画像の表示に遅延が発生する。さらに、ネットワークの負荷を低減させるためにビデオデータを過度に圧縮すると、情報処理端末のディスプレイへの表示画像の画質の劣化を招いてしまう。また、特許文献２の構成のように、通信データ量を抑制するために、サーバからクライアントへ表示に必要なポリゴンのみを送信したとしても、表示に必要なポリゴンのそれぞれのデータ量が大きいため、ネットワークの負荷は大きくなる。
【００１４】
以上のように、従来の情報処理端末において、情報処理端末における三次元コンピュータグラフィックス処理を、ネットワークで接続されたサーバ上で処理させると情報処理端末における負荷が低減されてもネットワーク上の負荷が増大するという課題がある。
【００１５】
そこで、本開示は、情報処理端末の負荷の低減とネットワークの負荷の低減を両立する三次元画像表示システムを提供することを目的とする。
【００１６】
本実施の形態の三次元画像表示システムで実施する三次元コンピュータグラフィックス処理は、三次元空間に、多角形の組み合わせで立体物を表現するポリゴンモデルおよび視点となる仮想的なカメラを配置する。そして、ポリゴンモデルが仮想的なカメラからスクリーンに表示される画像を生成する。
【００１７】
三次元コンピュータグラフィックス処理において、ポリゴンモデルおよび仮想的なカメラが配置された三次元空間を、シーンと呼ぶ。
【００１８】
本実施の形態の三次元画像表示システムは、配置されたポリゴンモデルを表示画面に描画することで、一つのシーンを構成する。本実施の形態では、描画対象のシーンを対象シーン、対象シーンを構成する描画対象のポリゴンモデルを対象ポリゴンと呼ぶ。
【００１９】
＜１．構成＞
図１は、実施の形態における三次元画像表示システムの構成の一例を示すブロック図である。図１に示すように、三次元画像表示システム１００は、サーバ１０１とクライアント１０２がネットワーク１０３を介して接続されている。
【００２０】
サーバ１０１は、サーバ情報処理装置１０４とサーバメモリ１０５で構成される。
【００２１】
サーバ情報処理装置１０４は、サーバＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１０６、サーバＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０７とサーバ通信部１０８で構成される。
【００２２】
サーバＧＰＵ１０７は頂点座標処理部１０９と有効ポリゴン特定部１１０で構成される。
【００２３】
クライアント１０２は、クライアント情報処理装置１１１とクライアントメモリ１１２で構成される。
【００２４】
クライアント情報処理装置１１１は、クライアントＣＰＵ１１３とクライアントＧＰＵ１１４とディスプレイ１１５とクライアント通信部１１６で構成される。
【００２５】
クライアントＧＰＵ１１４は、ポリゴン描画部１１７で構成される。
【００２６】
図２は、実施の形態におけるサーバメモリ１０５に格納されているデータの一例を示す図である。図３は、実施の形態におけるクライアントメモリ１１２に格納されているデータの一例を示す図である。サーバメモリ１０５とクライアントメモリ１１２には予め、三次元画像表示に必要なデータがそれぞれ格納されている。
【００２７】
サーバメモリ１０５には、描画命令リスト２０２と頂点データリスト２０３で構成されるデータ２０１が格納されている。
【００２８】
描画命令リスト２０２は、ポリゴン描画命令に関する情報を示す描画命令２０４を含む。図２に示すように、描画命令２０４は、描画対象となるポリゴンの表現形式、後述する頂点データ２０５の各種データの先頭アドレス等を含む。ポリゴンの表現形式には、ポリゴンストリップ形式、ポリゴンファン形式やポリゴンメッシュ形式等がある。
【００２９】
頂点データリスト２０３は、ポリゴンモデルのポリゴンを構成する頂点の情報を示すデータである、頂点データ２０５のリストである。頂点データ２０５は、頂点ＩＤ２０６、座標データ２０７と形態データ２０８で構成される。頂点ＩＤ２０６は、ポリゴンモデルの頂点の番号を示し、図２の一例では、Ｖ０、Ｖ１、Ｖ２、・・・、Ｖ（ｋ−１）、Ｖｋ（ｋは１以上の整数）で示されている。座標データ２０７は、ポリゴンモデルの各頂点の位置を示す。形態データ２０８は、ポリゴンモデルの各頂点の座標データ以外の情報、例えば、各頂点の法線データ、カラーデータ、テクスチャ座標データ等を示す。
【００３０】
クライアントメモリ１１２には、サーバメモリ１０５に格納されるデータ２０１と同じ構成で同一のデータ３０１が格納されている。すなわち、描画命令リスト２０２に対して描画命令リスト３０２、頂点データリスト２０３に対して頂点データリスト３０３、描画命令２０４に対して描画命令３０４、頂点データ２０５に対して頂点データ３０５、頂点ＩＤ２０６に対して頂点ＩＤ３０６、座標データ２０７に対して座標データ３０７、形態データ２０８に対して形態データ３０８がそれぞれ対応している。
【００３１】
クライアントＣＰＵ１１３は描画開始の指示をクライアントＧＰＵ１１４とサーバ１０１へ伝える。サーバ１０１への描画開始の指示は、クライアント通信部１１６からネットワーク１０３を介してサーバ通信部１０８へ、さらに、サーバＣＰＵ１０６へ送付される。描画開始の指示とは、例えば、三次元画像表示したいシーンの番号等の描画開始の指示である。クライアントＧＰＵ１１４は描画開始の指示を受け付ける。
【００３２】
描画開始の指示を受け付けたクライアントＧＰＵ１１４は、クライアントＣＰＵ１１３へ描画開始の最初の視点情報１１８を送る。この視点情報１１８は、原点等の予め決められた視点である。クライアントＣＰＵ１１３は、クライアント通信部１１６からネットワーク１０３を介してサーバ通信部１０８へ、さらにサーバＧＰＵ１０７へ視点情報１１８を送る。
【００３３】
サーバＣＰＵ１０６は、描画開始の指示を受けて、サーバＧＰＵ１０７へ描画開始の指示を伝える。描画開始の指示を受け付けたサーバＧＰＵ１０７において、頂点座標処理部１０９は、サーバメモリ１０５の描画命令リスト２０２から描画の対象となる対象シーンの描画命令２０４と頂点データリスト２０３から描画の対象となる頂点データ２０５をロードする。
【００３４】
サーバＧＰＵ１０７において、頂点座標処理部１０９はクライアントＣＰＵ１１３から受信した視点情報１１８と、サーバメモリ１０５からロードした対象シーンに含まれる対象ポリゴンの頂点データ２０５のうち、ポリゴンの頂点の位置を示す座標データ２０７から、視点情報１１８の視点から見たときの対象ポリゴンの頂点の三次元空間上の座標であるワールド座標および対象ポリゴンの頂点のスクリーン上の座標であるスクリーン座標を計算する。
【００３５】
次に、有効ポリゴン特定部１１０は、頂点座標処理部１０９で計算された座標値であるワールド座標とスクリーン座標から対象ポリゴンの描画が有効か否かを判定し、ポリゴン描画有効情報を出力する。そして、有効ポリゴン特定部１１０は、出力された対象ポリゴンのポリゴン描画有効情報から対象ポリゴンを構成する頂点の有効情報を生成する。
【００３６】
サーバ通信部１０８は、有効ポリゴン特定部１１０で生成された、有効頂点情報１１９をサーバ通信部１０８からネットワーク１０３を介してクライアント通信部１１６へ送信する。
【００３７】
クライアント通信部１１６は、サーバ通信部１０８から受信した有効頂点情報１１９を受信し、ポリゴン描画部１１７へ送る。ポリゴン描画部１１７は、描画開始の指示と有効頂点情報１１９を受けて、クライアントメモリ１１２に格納された描画命令リスト３０２から描画の対象となる対象シーンの描画命令３０４と、対象シーンの頂点データリスト３０３から対象となる頂点データ３０５のうち、受信した有効頂点情報１１９から有効と判断された頂点データ３０５についてのみ、クライアントメモリ１１２からロードする。そして、ポリゴン描画部１１７は、描画開始の最初の視点情報１１８およびロードした頂点データ３０５に含まれる座標データ３０７から、視点から見た三次元空間上の座標であるワールド座標およびスクリーン上の座標であるスクリーン座標を計算し、計算された座標値およびロードした頂点データ３０５に含まれる形態データ３０８から、ポリゴンの各画素のカラー値を計算することでスクリーンの画像を生成する。
【００３８】
ポリゴン描画部１１７で生成された画像はディスプレイ１１５で表示される。
【００３９】
＜２．動作＞
以下、実施の形態の三次元画像表示システムのサーバ１０１の動作とクライアント１０２の動作について、図面を参照しながら説明する。
【００４０】
図４は、実施の形態におけるサーバ１０１の動作の一例を示すフローチャートである。図４のフローチャートの説明において、あらかじめ描画開始の指示がされているものとする。
【００４１】
（ステップＳ４０１）頂点座標処理部１０９は、クライアントＣＰＵ１１３からクライアント通信部１１６およびネットワーク１０３を介して送信された視点情報１１８を、サーバ通信部１０８を通じて受信する。
【００４２】
（ステップＳ４０２）頂点座標処理部１０９は、描画開始の指示と視点情報１１８を受けて、サーバメモリ１０５に格納された描画命令リスト２０２から描画の対象となる対象シーンの描画命令２０４と頂点データリスト２０３から描画の対象となる頂点データ２０５をロードする。
【００４３】
（ステップＳ４０３）次に、頂点座標処理部１０９は、ロードした頂点データ２０５の座標データ２０７に対してワールド座標およびスクリーン座標への座標変換処理を行う。
【００４４】
（ステップＳ４０４）。有効ポリゴン特定部１１０は、ポリゴンを構成する各頂点について計算したワールド座標およびスクリーン座標から対象ポリゴンの描画が有効か否かを判定し、判定結果をポリゴン描画有効情報として生成する。
【００４５】
対象ポリゴンの描画が有効か否かの判定は、例えば以下のように判定する。図５は、対象ポリゴンの描画が有効か否かの判定を説明する図である。対象ポリゴンの描画が有効か否かの判定は、複数の頂点から構成されるポリゴンが画像生成時に用いられるか否かを判定する処理である。対象ポリゴンの描画が有効であるか否かの判定では、視点５０１を原点としてスクリーン座標に変換した座標データを用いる。視点５０１から見たときに、スクリーン５０２に投影することができるポリゴンであれば描画が有効、そうでなければ無効と判定する。具体的には、対象ポリゴンの描画が有効であるか否かの判定は、４種類の判定を行う。
【００４６】
第１の判定では、対象ポリゴンが可視空間５０３を示す六面体の中に入っているか否かを判定する。対象ポリゴンを構成する頂点のうち全ての頂点の座標が可視空間５０３の外に存在していれば対象ポリゴンの描画は無効となる。例えば、ポリゴン５０４のように可視空間５０３の外に存在するポリゴンは描画が無効となる。
【００４７】
第２の判定では、対象ポリゴンをスクリーン５０２に投影したときに対象ポリゴンの表示部分が１画素未満になるか否かを判定する。例えば、ポリゴン５０５のように対象ポリゴンが小さく、視点５０１に対して水平に配置されているポリゴンは描画が無効となる。
【００４８】
第３の判定では、可視空間５０３の中に入っている対象ポリゴンについて視点５０１から見たときのポリゴン面が表向きかどうかを判定する。対象ポリゴンを構成する頂点の座標から面法線ベクトルを求め視点方向ベクトルとの内積の符号を確認することでポリゴンの表裏を判定することができる。視点５０１から見て裏向きであれば、ポリゴンの描画は無効となる。例えば、ポリゴン５０６のようにポリゴン面が視点５０１から見て裏向きであるポリゴンは描画が無効である。
【００４９】
第４の判定では、対象ポリゴンをスクリーン５０２に投影したときに他のポリゴンの奥に配置されて見えなくなるか否かを判定する。例えば、スクリーン５０２に投影したときに、ポリゴン５０７は、ポリゴン５０８の奥に配置されるので、描画は無効である。
【００５０】
以上の４種類の判定の全てにおいて、描画が有効であるポリゴンは描画が有効であると判定される。例えば、ポリゴン５０８、ポリゴン５０９は、描画が有効である。
【００５１】
（ステップＳ４０５）さらに、有効ポリゴン特定部１１０は、ポリゴンの描画が有効か否かの判定結果を示すポリゴン描画有効情報をもとにポリゴンを構成する頂点が有効か否かを判定し、有効頂点情報１１９を生成する。
【００５２】
図６Ａは、ポリゴンモデルがポリゴンストリップ形式で構成されている一例を示す図である。図６Ｂは、図６Ａのポリゴンモデルと有効頂点情報の対応関係を示す図である。図６Ｃは、生成した有効頂点情報の一例を示す図である。図６Ｄは、生成した有効頂点情報の別の一例を示す図である。図６Ｅは、生成した有効頂点情報のさらに別の一例を示す図である。ポリゴンストリップ形式は、頂点を共有しながら連続でポリゴンを描画する形式である。図６Ａに示すように、ポリゴンストリップ６０１のポリゴンＰｊ（ｊ＝０〜６）は、頂点ＩＤがＶｊ、Ｖｊ＋１、Ｖｊ＋２の３点で構成される。また、ポリゴンストリップ６０１の頂点ＩＤはＶ０→Ｖ１→Ｖ２→Ｖ３→Ｖ４→Ｖ５→Ｖ６→Ｖ７→Ｖ８の順で指定される。なお、ポリゴンＰ０、Ｐ１及びＰ６が有効なポリゴンであるとする。
【００５３】
ポリゴンを構成する頂点の有効か否かの判定は、Ｖ０→Ｖ１→Ｖ２→Ｖ３→Ｖ４→Ｖ５→Ｖ６→Ｖ７→Ｖ８の順に行う。頂点Ｖｉについて頂点が有効か否かの判定を行うときに、頂点Ｖｉを含むポリゴンＰｉ−２、Ｐｉ−１、Ｐｉのポリゴン描画有効情報の論理和演算を行う。すなわち、対象ポリゴンのポリゴン描画有効情報が１つでも有効であれば、頂点Ｖｉは有効であると判定される。なおこの判定で、存在しないポリゴン番号のポリゴン描画有効情報は無効であるとして扱う。
【００５４】
図６Ｂは、この判定を図示している。具体的には、頂点Ｖ０については、頂点Ｖ０が含まれるポリゴンＰ０のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ０は有効であると判定する。頂点Ｖ１については、頂点Ｖ１が含まれるポリゴンＰ０、Ｐ１の両方ともポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ１は有効であると判定する。頂点Ｖ２については、頂点Ｖ２が含まれるポリゴンＰ０、Ｐ１及びＰ２のうち、Ｐ０とＰ１のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ２は有効であると判定する。頂点Ｖ３については、頂点Ｖ３が含まれるポリゴンＰ１、Ｐ２及びＰ３のうち、Ｐ１のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ３は有効であると判定する。頂点Ｖ４については、頂点Ｖ４が含まれるポリゴンＰ２、Ｐ３及びＰ４のうち、全てのポリゴンのポリゴン描画有効情報が無効であるＦを示しているので頂点Ｖ４は無効であると判定する。頂点Ｖ５についても、頂点Ｖ５が含まれるポリゴンＰ３、Ｐ４及びＰ５のうち、全てのポリゴン描画有効情報が無効であるＦを示しているので頂点Ｖ５は無効であると判定する。頂点Ｖ６については、頂点Ｖ６が含まれるポリゴンＰ４、Ｐ５及びＰ６のうち、Ｐ６のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ６は有効であると判定する。頂点Ｖ７については、頂点Ｖ７が含まれるポリゴンＰ５及びＰ６のうち、Ｐ６のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ７は有効であると判定する。頂点Ｖ８については、頂点Ｖ８が含まれるポリゴンＰ６のポリゴン描画有効情報が有効であるＴを示しているので頂点Ｖ８は有効であると判定する。有効ポリゴン特定部１１０は、頂点Ｖ０、Ｖ１、Ｖ２、Ｖ３、Ｖ６、Ｖ７、Ｖ８は有効、頂点Ｖ４、Ｖ５は無効とする有効頂点情報を生成する。
【００５５】
有効頂点情報の形式としては、図６Ｃのように、頂点ＩＤと対応する有効頂点情報をリストにしたものでもよいし、図６Ｄのように有効頂点情報が有効な頂点ＩＤのみをリストにしたものでもよいし、図６Ｅのように有効頂点情報が有効な頂点ＩＤのアドレス情報のみをリストにしたものでもよい。
【００５６】
（ステップＳ４０６）サーバ通信部１０８は、有効ポリゴン特定部１１０で生成した有効頂点情報１１９をクライアント通信部１１６に送信する。有効頂点情報１１９を必要最小限の情報としてクライアント１０２に送信することで、ネットワークの負荷が低減できる。
【００５７】
（ステップＳ４０７）対象シーンの全ての対象ポリゴンについてステップＳ４０２〜ステップＳ４０６の処理が完了していなければ、ステップＳ４０２に戻って次のポリゴンに対する処理を継続する。完了した場合は終了する。
【００５８】
図７は、実施の形態におけるクライアント１０２の動作の一例を示すフローチャートである。図７のフローチャートの説明において、あらかじめ描画開始の指示がされているものとする。
【００５９】
（ステップＳ７０１）描画開始の指示を受け付けたクライアントＧＰＵ１１４は、クライアントＣＰＵ１１３へ描画開始の最初の視点情報１１８を送る。この視点情報１１８は、原点等の予め決められた視点である。クライアントＣＰＵ１１３は、クライアント通信部１１６、サーバ通信部１０８を通じて、サーバＧＰＵ１０７へ視点情報１１８を送る。ポリゴン描画部１１７は、クライアントメモリ１１２の描画命令リスト３０２から描画の対象となる対象シーンの描画命令３０４をロードする。
【００６０】
（ステップＳ７０２）クライアント通信部１１６は、サーバ通信部１０８が送信した有効頂点情報１１９を受信し、ポリゴン描画部１１７に送る。
【００６１】
（ステップＳ７０３）ポリゴン描画部１１７は、受信した有効頂点情報１１９から頂点ＩＤごとに対象ポリゴンに含まれる頂点が有効か否かを確認し、頂点が有効であれば、クライアントメモリ１１２に格納された描画の対象となる対象シーンの頂点データリスト３０３から描画の対象となる頂点データ３０５のうち、有効な頂点ＩＤ３０６、有効な座標データ３０７、有効な形態データ３０８のみロードする。例えば、有効頂点情報が図６Ｃの場合、有効な頂点ＩＤはＶ０、Ｖ１、Ｖ２、Ｖ３、Ｖ６、Ｖ７、Ｖ８であるので、これらの頂点ＩＤに対応する座標データ３０７と形態データ３０８のみをロードする。
【００６２】
（ステップＳ７０４）ポリゴン描画部１１７は、ロードした座標データ３０７および形態データ３０８から、ワールド座標およびスクリーン座標への座標変換、および、ポリゴンの各画素のカラー値を計算することで、対象ポリゴンのスクリーン画像を生成し、ポリゴン描画部１１７で生成された画像はディスプレイ１１５で表示される。
【００６３】
（ステップＳ７０５）対象シーンの全ての対象ポリゴンについてステップＳ７０２〜ステップＳ７０４の処理が完了すれば、処理は完了する。対象シーンの全ての対象ポリゴンについてステップＳ７０２〜ステップＳ７０４の処理が完了していなければ、次のポリゴンについてステップＳ７０２〜ステップＳ７０４の処理を実行する。
【００６４】
本実施の形態の三次元画像表示システムのサーバ１０１の動作とクライアント１０２の動作について、クライアントＣＰＵ１１３から視点情報１１８を送信するタイミングは、あらかじめ決めておいた時間毎に送信してもよいし、視点情報１１８が変化したときにのみ送信してもよい。
【００６５】
なお、視点情報として、原点等の予め決められた視点だけでなく、視点に加えて、クライアントが表示させたいシーンのシーン番号、クライアント上の表示画面の可視範囲、クライアント上の表示画面に三次元空間から二次元空間にどのように投影するかを示す投影パラメータ、クライアントのユーザがメニュー操作やシーン内のオブジェクトを操作したシーン変化であるオブジェクトの操作後の位置／移動量／移動速度／移動加速度／形状変化／色変化等の情報のうち１つまたは複数を視点情報としてもよい。
【００６６】
なお、サーバメモリ１０５に格納されるデータ２０１とクライアントメモリ１１２に格納されるデータ３０１は、同じものであるとして動作説明したが、同じである必要はなく、サーバメモリ１０５に格納されるデータ２０１の頂点データリスト２０３に含まれる頂点データ２０５のうち処理に必要な座標データ２０７が、クライアントメモリ１１２に格納されるデータ３０１の頂点データリスト３０３に含まれる頂点データ３０５の座標データ３０７と同じであればよい。また、サーバメモリ１０５に格納されるデータ２０１の頂点データリスト２０３に含まれる頂点データ２０５のうち頂点ＩＤ２０６と座標データ２０７がクライアントメモリ１１２に格納されるデータ３０１の頂点データリスト３０３に含まれる頂点データ３０５の頂点ＩＤ３０６と座標データ３０７と同じであればよい。
【００６７】
なお、有効頂点情報は、図６Ｃ、図６Ｄ、図６Ｅの例以外の形式でもよい。例えば、サーバメモリとクライアントメモリで同じ頂点データを格納しており、頂点ＩＤの順も同じであるので、図６Ｃの形式のうち、頂点ＩＤの順で描画有効情報が有効であるＴか無効であるＦのみの形式としてもよい。
【００６８】
＜３．まとめ＞
本実施の形態の三次元画像表示システムにおいて、サーバは、クライアントから受信する視点情報およびサーバメモリに格納されているポリゴンモデルを構成するポリゴンの頂点データに含まれる座標データから対象ポリゴンの描画に必要な頂点を特定し、描画に有効なポリゴンの頂点を示す有効頂点情報をクライアントに送信する。クライアントでは、受信した有効頂点情報に基づき、クライアントメモリへ必要最小限の頂点データの座標データと形態データにのみアクセスしてポリゴンを描画する。この構成により、クライアントの三次元コンピュータグラフィックス処理の負荷を低減しつつ、ネットワーク上にビデオデータを送信しないので、ネットワークの負荷も低減する三次元コンピュータグラフィックス処理画像の生成が実現できる。
【００６９】
＜４．他の構成＞
本開示に係る三次元画像表示システムについて説明したが、本開示はこれに限られるものではない。
【００７０】
例えば、サーバ１０１とクライアント１０２は、必ずしも一対一である必要はなく、一台のサーバに複数のクライアントの構成でもよい。この構成によれば、強力な処理能力を持つサーバ１０１が一台あればネットワークの負荷の低減とそれぞれのクライアント１０２の三次元コンピュータグラフィックス処理の負荷の低減を両立させることが可能である。
【００７１】
また、有効ポリゴン特定部１１０の対象ポリゴンの描画が有効であるか否かの判定に４種類の判定を行ったが、４種類のうち一部を選択してもよいし、別の判定を行ってもよい。判定を減らすことで、有効ポリゴン特定部１１０の処理負荷を低減でき、逆に判定を追加することで描画するポリゴンが減るので、クライアント１０２における三次元コンピュータグラフィックス処理の負荷をさらに低減することができる。
【００７２】
本実施の形態のサーバ情報処理装置１０４およびクライアント情報処理装置１１１は、それぞれＣＰＵおよびＧＰＵは個別に集積回路化してもよいし、１つの集積回路としてもよい。また、サーバ情報処理装置やクライアント情報処理装置はそれぞれ一部又は全部を汎用プロセッサ上のプログラムによって実現してもよいし、製造後にハードウェア構成を変更することが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や集積回路内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用して実現してもよい。
【００７３】
また、本開示は、上記のプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データおよび信号は、インターネット等の通信ネットワークを介して配信してもよい。
【産業上の利用可能性】
【００７４】
本開示の三次元画像表示システムは、グラフィックス描画機能を搭載する様々な電子機器、例えば、携帯電話、タブレット、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルテレビ、カーナビゲーションシステム、家庭用ゲーム機、パーソナルコンピュータ等に用いることができる。
【符号の説明】
【００７５】
１００    三次元画像表示システム
１０１    サーバ
１０２    クライアント
１０３    ネットワーク
１０４    サーバ情報処理装置
１０５    サーバメモリ
１０６    サーバＣＰＵ
１０７    サーバＧＰＵ
１０８    サーバ通信部
１０９    頂点座標処理部
１１０    有効ポリゴン特定部
１１１    クライアント情報処理装置
１１２    クライアントメモリ
１１３    クライアントＣＰＵ
１１４    クライアントＧＰＵ
１１５    ディスプレイ
１１６    クライアント通信部
１１７    ポリゴン描画部
１１８    視点情報
１１９    有効頂点情報
２０１，３０１    データ
２０２，３０２    描画命令リスト
２０３，３０３    頂点データリスト
２０４，３０４    描画命令
２０５，３０５    頂点データ
２０６，３０６    頂点ＩＤ
２０７，３０７    座標データ
２０８，３０８    形態データ
５０１    視点
５０２    スクリーン
５０３    可視空間
５０４，５０５，５０６，５０７，５０８，５０９    ポリゴン
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバとクライアントとが協働して三次元画像表示する三次元画像表示システムであって、
前記サーバは、
三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するサーバメモリと、
前記サーバメモリに格納された前記頂点情報を異なる座標系に変換し、変換後の頂点情報と、前記クライアントから送信される視点情報とに基づき、前記ポリゴンが表示されるポリゴンか否かを判断し、表示されるポリゴンと判断されたポリゴンに対して描画に有効な頂点であるか否かを示す有効頂点情報を生成する有効ポリゴン特定部と、
前記有効頂点情報を前記クライアントに対して送信するサーバ通信部と、を備え、
前記クライアントは、
前記三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するクライアントメモリと、
前記サーバに前記視点情報を送信し、前記サーバから前記有効頂点情報を受信するクライアント通信部と、
前記有効頂点情報から有効な頂点のみに対して、前記クライアントメモリに格納された前記頂点情報を読み出し、異なる座標系に変換し、三次元画像を生成するポリゴン描画部と、を備える、
三次元画像表示システム。
【請求項２】
前記クライアントメモリが格納する前記頂点情報は、頂点の位置を示す座標データと前記座標データ以外の情報を示す形態データとを含む、
請求項１に記載の三次元画像表示システム。
【請求項３】
サーバとクライアントとが協働して三次元画像表示する三次元画像表示システムにおけるサーバであって、
三次元形状を構成するポリゴンの頂点位置を示す頂点情報を格納するサーバメモリと、
前記サーバメモリに格納された前記頂点情報を異なる座標系に変換し、変換後の頂点情報と、前記クライアントから送信される視点情報とに基づき、前記ポリゴンが表示されるポリゴンか否かを判断し、表示されるポリゴンと判断されたポリゴンに対して描画に有効な頂点であるか否かを示す有効頂点情報を生成する有効ポリゴン特定部と、
前記有効頂点情報を前記クライアントに対して送信するサーバ通信部と、を備える、
三次元画像表示システムのサーバ。
【請求項４】
三次元画像表示する三次元画像表示方法であって、
三次元形状を構成するポリゴンの頂点位置を示す頂点情報を異なる座標系に変換し、変換後の頂点情報と、視点情報とに基づき、前記ポリゴンが表示されるポリゴンか否かを判断し、表示されるポリゴンと判断されたポリゴンに対して描画に有効な頂点であるか否かを示す有効頂点情報を生成する有効ポリゴン特定ステップと、
前記有効頂点情報を送信する送信ステップと、
を含む、
三次元画像表示方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2014171066.tif 000014
【図２】
2014171066.tif 000015
【図３】
2014171066.tif 000016
【図４】
2014171066.tif 000017
【図５】
2014171066.tif 000018
【図６Ａ】
2014171066.tif 000019
【図６Ｂ】
2014171066.tif 000020
【図６Ｃ】
2014171066.tif 000021
【図６Ｄ】
2014171066.tif 000022
【図６Ｅ】
2014171066.tif 000023
【図７】
2014171066.tif 000024
【国際調査報告】
2014171066.tif 000025
2014171066.tif 000026