JP2005284694A - 3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法 - Google Patents
3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法 Download PDFInfo
- Publication number
- JP2005284694A JP2005284694A JP2004097391A JP2004097391A JP2005284694A JP 2005284694 A JP2005284694 A JP 2005284694A JP 2004097391 A JP2004097391 A JP 2004097391A JP 2004097391 A JP2004097391 A JP 2004097391A JP 2005284694 A JP2005284694 A JP 2005284694A
- Authority
- JP
- Japan
- Prior art keywords
- command
- data
- image
- dimensional model
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/08—Bandwidth reduction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Information Transfer Between Computers (AREA)
- Digital Computer Display Output (AREA)
Abstract
【課題】 状況に応じて適当なデータ転送方式によって画像データを転送できるようにする。
【解決手段】 3次元モデル作成手段1aにより3次元モデルの描画命令が出力されると、データ転送方式決定手段1bにより、描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間が計算され処理時間の短いデータ転送方式が判定される。コマンド方式の方が処理時間が短い場合、コマンド方式転送手段1cにより、描画命令に従った3次元モデルを定義するデータ及び、3次元モデルの表示方法を定義するデータがコマンド方式によってクライアント2に送信される。また、差分画像方式の方が処理時間が短い場合、差分画像方式転送手段1dにより、描画命令に従って3次元モデルから2次元の投影画像が生成され、生成した投影画像と前回の投影画像との差分画像が送信される。
【選択図】 図1
【解決手段】 3次元モデル作成手段1aにより3次元モデルの描画命令が出力されると、データ転送方式決定手段1bにより、描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間が計算され処理時間の短いデータ転送方式が判定される。コマンド方式の方が処理時間が短い場合、コマンド方式転送手段1cにより、描画命令に従った3次元モデルを定義するデータ及び、3次元モデルの表示方法を定義するデータがコマンド方式によってクライアント2に送信される。また、差分画像方式の方が処理時間が短い場合、差分画像方式転送手段1dにより、描画命令に従って3次元モデルから2次元の投影画像が生成され、生成した投影画像と前回の投影画像との差分画像が送信される。
【選択図】 図1
Description
本発明はネットワーク経由で画像データを転送する3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法に関し、特に複数のデータ転送方式によるデータ転送機能を備えた3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法に関する。
最近の多くのコンピュータでは、3次元仮想空間内の立体モデルをリアルタイムに描画することができる。たとえば、3次元CAD(Computer-Aided Design)によって作成された立体モデルを観察する仮想空間内の仮想カメラを、ユーザからの操作入力に応じて移動し、仮想カメラの位置や向きに応じた3次元モデルをリアルタイムに画面に表示させることができる。
ところで、大規模な3次元モデルの設計になると、そのモデルのデータ量も膨大となる。しかも、そのモデルが複数の部分モデルで構成されていれば、複数の作業者の共同作業によって3次元モデルが作成される。このような場合、3次元モデルデータをサーバ上に格納しておき、各作業者がその3次元モデルデータを共有することが考えられる。
さらに、3次元モデル作成用の多機能なアプリケーションソフトウェアを用いて3次元モデルを作成する場合、そのアプリケーションソフトウェアをサーバのみに実装しておくこともできる。その場合、クライアントでは、サーバに対してリモートアクセスすることで、アプリケーションソフトウェアの機能を利用する。このように、サーバ上で3次元モデルデータやアプリケーションソフトウェアが管理されていれば、システムの管理者にとって、システムの保守管理の手間が少なくて済むという利点がある。以下、サーバ上の3次元処理のアプリケーションソフトウェアを利用するクライアントを、リモートクライアントと呼ぶこととする。
リモートクライアントでは、サーバ上のアプリケーションソフトウェアの機能に対して、処理要求を送信すると共に、アプリケーションによる処理結果を受け取り画面表示を行う。サーバで処理を行った結果をリモートクライアントに表示する技術には、大きく分けて2つの異なる技術が存在する。
第1の技術は、Unix(商標)やLinux(商標)に採用されているXプロトコルという技術である。
第2の技術は、Windows(登録商標)に採用されているRDP(Remote Desktop Protocol)という技術である。
第2の技術は、Windows(登録商標)に採用されているRDP(Remote Desktop Protocol)という技術である。
Xプロトコルでは、表示するための情報を描画コマンドとして送信する。リモートクライアント側では、送られてきた描画コマンドを解釈し、画面に描画する(たとえば、非特許文献1参照)。このような方式を、以下では「コマンド方式」と呼ぶ。
RDPでは、表示するための情報を画像データの差分情報として送信する。リモートクライアント側では、送られてきた差分情報を元に現在表示されている画面を更新する(たとえば、非特許文献2参照)。このような方式を、以下では「差分画像方式」と呼ぶ。
これらの技術は画面に表示される画像全てにおいて適用されるため、3次元画像を描画する場合も、それぞれの方式に沿った処理が行われている。
X.org、"The X Protocol"、[online]、[平成16年3月5日検索]、インターネット<URL:http://www.x.org/X11_protocol.html> Microsoft、"Windows 2000 Solution Guide"、[online]、[平成16年3月5日検索]、インターネット<URL:http://download.microsoft.com/download/6/1/e/61e83440-a701-4a39-803b-df83837fbf2d/1204-UZ1.pdf>
X.org、"The X Protocol"、[online]、[平成16年3月5日検索]、インターネット<URL:http://www.x.org/X11_protocol.html> Microsoft、"Windows 2000 Solution Guide"、[online]、[平成16年3月5日検索]、インターネット<URL:http://download.microsoft.com/download/6/1/e/61e83440-a701-4a39-803b-df83837fbf2d/1204-UZ1.pdf>
しかし、従来の技術はそれぞれ以下のような長所及び短所を有している。
[ネットワーク上のデータ転送量]
・コマンド方式は、大きな領域の変更でも少ないデータ転送量で対応できる可能性が高い。たとえば、画面全体を一定のパターンで塗りつぶす処理などは、少ないデータをサーバからリモートクライアントに転送することで、処理結果をリモートクライアントに表示させることができる。ところが、コマンド方式では、小さい領域で多くの描画を行った結果を表示する場合に、差分画像方式よりもデータ転送量が多くなるという欠点がある。
[ネットワーク上のデータ転送量]
・コマンド方式は、大きな領域の変更でも少ないデータ転送量で対応できる可能性が高い。たとえば、画面全体を一定のパターンで塗りつぶす処理などは、少ないデータをサーバからリモートクライアントに転送することで、処理結果をリモートクライアントに表示させることができる。ところが、コマンド方式では、小さい領域で多くの描画を行った結果を表示する場合に、差分画像方式よりもデータ転送量が多くなるという欠点がある。
・差分画像方式は、変更される領域が大きい場合に、データの転送量が増大し、性能が悪化する。また、差分画像方式は、小さい領域で多くの描画を行った結果を表示する場合は、コマンド方式よりもデータ転送量が少なくなる。
[描画速度]
・コマンド方式は、リモートクライアント側で画像の描画処理を行うため、クライアントコンピュータの性能に描画速度が左右される(ただし3次元描画の場合は、3次元描画アクセラレータを活かすことができる)。
・コマンド方式は、リモートクライアント側で画像の描画処理を行うため、クライアントコンピュータの性能に描画速度が左右される(ただし3次元描画の場合は、3次元描画アクセラレータを活かすことができる)。
・差分画像方式は、リモートクライアント側では差分画像の表示を行う処理のみなので、クライアントコンピュータの性能にあまり左右されない(ただし3次元描画の場合は、3次元描画アクセラレータを活かすことができない)。
[サーバの負荷]
・コマンド方式は、サーバ側での描画の負荷が少ない。
・差分画像方式は、サーバ側での描画の負荷が大きい。
・コマンド方式は、サーバ側での描画の負荷が少ない。
・差分画像方式は、サーバ側での描画の負荷が大きい。
このように、状況によって効率的に処理することができるデータ転送方式が異なっている。すなわち、両方式とも、特定の環境に対しては良好な性能を発揮できる技術であるが、何れの方式であっても、状況によってはデータ転送量が過大となってしまう。しかも、差分画像方式ではサーバ側での描画の負荷が大きい場合がある。このことから、従来の技術をそのまま用いただけでは性能面(特に処理速度)で満足できるものではなかった。
そこで、環境に左右されずに3次元画像の表示速度を向上させることが求められている。特に3次元画像の場合、3次元形状を回転したり移動したりした結果を表示するということがよく行われる。そのため、これらの操作の処理性能がアプリケーション全体の体感的な性能に大きく影響する。よって、これらの操作の処理性能を向上させることが重要となる。
本発明はこのような点に鑑みてなされたものであり、状況に応じて適当なデータ転送方式によって画像データを転送できる3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような3次元モデル転送プログラムが提供される。本発明に係る3次元モデル転送プログラムでは、コンピュータを用いて、ネットワークを介して接続されたクライアント2に対して3次元モデルの描画データを提供する。すなわち、3次元モデル転送プログラムを実行するコンピュータが以下の機能を実現する。
3次元モデル作成手段1aは、クライアント2からの要求に基づいて3次元モデルを作成し、3次元モデルの描画命令を出力する。データ転送方式決定手段1bは、描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算し、処理効率の良いデータ転送方式を決定する。コマンド方式転送手段1cは、処理効率の良いデータ転送方式がコマンド方式に決定した場合、描画命令に従った3次元モデルを定義するデータ及び、3次元モデルの表示方法を定義するデータをコマンド方式によってクライアント2に送信する。差分画像方式転送手段1dは、処理効率の良いデータ転送方式が差分画像方式に決定した場合、描画命令に従って3次元モデルから2次元の投影画像を生成し、生成した投影画像と前回の投影画像との差分画像をクライアント2に送信する。
このような3次元モデル転送プログラムによれば、3次元モデル作成手段1aにより、クライアント2からの要求に基づいて3次元モデルが作成され、3次元モデルの描画命令が出力される。すると、データ転送方式決定手段1bにより、描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間が計算され、処理効率の良いデータ転送方式が決定される。処理効率の良いデータ転送方式がコマンド方式に決定した場合、コマンド方式転送手段1cにより、描画命令に従った3次元モデルを定義するデータ及び、3次元モデルの表示方法を定義するデータがコマンド方式によってクライアント2に送信される。また、処理効率の良いデータ転送方式が差分画像方式に決定した場合、差分画像方式転送手段1dにより、描画命令に従って3次元モデルから2次元の投影画像が生成され、生成した投影画像と前回の投影画像との差分画像がクライアント2に送信される。
また、上記課題を解決するために、ネットワークを介して接続されたクライアントに対して3次元モデルの描画データを提供する3次元モデル転送サーバにおいて、前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力する3次元モデル作成手段と、前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定するデータ転送方式決定手段と、処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータをコマンド方式によって前記クライアントに送信するコマンド方式転送手段と、処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する差分画像方式転送手段と、を有することを特徴とする3次元モデル転送サーバが提供される。
このような3次元モデル転送サーバによれば、3次元モデル作成手段により、クライアントからの要求に基づいて3次元モデルが作成され、3次元モデルの描画命令が出力される。すると、データ転送方式決定手段により、描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間が計算され、処理効率の良いデータ転送方式が決定される。処理効率の良いデータ転送方式がコマンド方式に決定した場合、コマンド方式転送手段により、描画命令に従った3次元モデルを定義するデータ及び、3次元モデルの表示方法を定義するデータがコマンド方式によってクライアントに送信される。また、処理効率の良いデータ転送方式が差分画像方式に決定した場合、差分画像方式転送手段により、描画命令に従って3次元モデルから2次元の投影画像が生成され、生成した投影画像と前回の投影画像との差分画像がクライアントに送信される。
また、上記課題を解決するために、ネットワークを介して接続されたクライアントに対して3次元モデルの描画データを提供する3次元モデルデータ転送方法において、3次元モデル作成手段が、前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力し、データ転送方式決定手段が、前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定し、処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、コマンド方式転送手段が、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータをコマンド方式によって前記クライアントに送信し、処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、差分画像方式転送手段が、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する、ことを特徴とする3次元モデルデータ転送方法。
このような3次元モデル転送方法によれば、3次元モデル作成手段により、クライアントからの要求に基づいて3次元モデルが作成され、3次元モデルの描画命令が出力される。すると、データ転送方式決定手段により、描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間が計算され、処理効率の良いデータ転送方式が決定される。処理効率の良いデータ転送方式がコマンド方式に決定した場合、コマンド方式転送手段により、描画命令に従った3次元モデルを定義するデータ及び、3次元モデルの表示方法を定義するデータがコマンド方式によってクライアントに送信される。また、処理効率の良いデータ転送方式が差分画像方式に決定した場合、差分画像方式転送手段により、描画命令に従って3次元モデルから2次元の投影画像が生成され、生成した投影画像と前回の投影画像との差分画像がクライアントに送信される。
以上説明したように本発明では、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算し、処理時間の短いデータ転送方式によって画像データを転送するようにした。そのため、状況に応じて効率的なデータ転送方式により画像データを転送することができる。
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。図1に示すように、3次元モデル転送サーバ1は、コマンド方式転送手段1c、差分画像方式転送手段1d、3次元モデル作成手段1a、及びデータ転送方式決定手段1bを有している。
3次元モデル作成手段1aは、クライアント2からの要求に基づいて3次元モデルを作成し、3次元モデルの描画命令を出力する。たとえば、3次元モデル作成手段1aは、3次元CADのような仮想3次元空間内での描画編集機能を備えている。
データ転送方式決定手段1bは、描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して処理時間の短いデータ転送方式を判定する。たとえば、データ転送方式決定手段1bは、3次元描画のAPIをフックし、描画命令の流れを監視する。そして、データ転送方式決定手段1bは、ディスプレイリストの使用状況を観察し、一連の操作時にパフォーマンスが向上するようなデータ転送方式を選択する。データ転送方式を選択するタイミングは、たとえば、3次元画像が一旦クリアされるタイミングである。
データ転送方式決定手段1bは、判定の結果、コマンド方式の方が処理時間が短い場合、コマンド方式転送手段1cに描画命令を渡し、差分画像方式の方が処理時間が短い場合、差分画像方式転送手段1dに描画命令を渡す。
コマンド方式転送手段1cは、描画命令に従った3次元モデルを定義するデータ及び、3次元モデルの表示方法を定義するデータをコマンド方式によってクライアント2に送信する。たとえば、クライアント2が、一度転送したデータを次回以降も繰り返し利用することができる機構(以下、この機構をOpenGL(登録商標)の用語を用いて「ディスプレイリスト」と呼ぶ)を備えている場合、コマンド方式転送手段1cは、先ず3次元モデルを定義するデータとして、ディスプレイリスト3を送信する。その後、コマンド方式転送手段1cは、表示方法を定義するデータとして、描画命令で指示される仮想カメラの位置等に応じた変換行列4を順次送信する。クライアント2では、ディスプレイリスト3により3次元モデルの形状を認識する。そして、クライアント2は、3次元モデルを構成する頂点の座標を変換行列4によって変換し、2次元の投影画像を生成する。これにより、任意の方向から見たときの3次元モデルを表した画像が生成される。
差分画像方式転送手段1dは、描画命令に従って3次元モデルから2次元の投影画像を生成し、生成した投影画像と前回の投影画像との差分画像をクライアントに送信する。たとえば、全体画像5を最初に送信し、その後、差分画像6を順次送信する。クライアント2では、全体画像5を表示した後、差分画像6が送られる毎に、該当部分を差分画像6に置き換える。
このような3次元モデル転送プログラムによれば、3次元モデル作成手段1aにより、クライアント2からの要求に基づいて3次元モデルが作成され、3次元モデルの描画命令が出力される。すると、データ転送方式決定手段1bにより、描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して処理時間の短いデータ転送方式が判定される。
コマンド方式の方が処理時間が短い場合、コマンド方式転送手段1cに描画命令が渡される。すると、コマンド方式転送手段1cにより、描画命令に従った3次元モデルを定義するデータ及び、3次元モデルの表示方法を定義するデータ(たとえば、変換行列4)がコマンド方式によってクライアント2に送信される。クライアント2では、コマンド方式に応じて、3次元モデルから2次元の投影画像を生成し、その投影画像を表示する。
また、差分画像方式の方が処理時間が短い場合、データ転送方式決定手段1bから差分画像方式転送手段1dに描画命令が渡される。すると、差分画像方式転送手段1dにより、描画命令に従って3次元モデルから2次元の投影画像が生成され、生成した投影画像と前回の投影画像との差分画像6が送信される。クライアント2では、差分画像6を受け取る毎に、全体画像5中の該当部分を差分画像6に置き換え、画面に表示する。
このように、描画命令の内容に応じてデータ転送方式毎の処理時間を計算し、処理時間が短い方のデータ転送方式によって画像データを転送するようにしたため、動作環境に応じた最適な方式による効率的なデータ転送が可能となる。
このような本発明は、既存のスタンドアロン型アプリケーションをそのままサーバに置き、ネットワークを介して遠隔のクライアントコンピュータ(リモートクライアント)でサーバ側アプリケーションの入出力処理を行うシステムに適用できる。
なお、多数のリモートクライアントが接続される場合、リモートクライアント毎に3次元モデルの表示能力が異なる。また、サーバとの間のネットワークの通信速度も、リモートクライアント毎に異なる。そのため、不特定多数のクライアントがサーバに接続される場合、クライアントの性能を予めサーバに通知しておく機能が必要である。たとえば、クライアントとサーバの接続確立時に、クライアント側の描画処理性能とネットワークの性能をサーバに送信し、データ転送方式の選択のための情報とする。
以下、不特定多数のリモートクライアントに対して、サーバから3次元モデルデータを転送する場合を例に採り、本発明の実施の形態を具体的に説明する。
図2は、本発明の実施の形態のシステム構成例を示す図である。本実施の形態に係るサーバ100はネットワーク10を介してリモートクライアント210,220,・・・に接続されている。サーバ100は、ネットワーク10経由で、リモートクライアント210,220,・・・に対して、3次元画像データの編集等の機能を提供する。
図2は、本発明の実施の形態のシステム構成例を示す図である。本実施の形態に係るサーバ100はネットワーク10を介してリモートクライアント210,220,・・・に接続されている。サーバ100は、ネットワーク10経由で、リモートクライアント210,220,・・・に対して、3次元画像データの編集等の機能を提供する。
ここで、サーバ100は、表示状態の更新方法を、コマンド方式と差分画像方式のどちらでも送信可能である。リモートクライアント210,220,・・・も、コマンド方式と差分画像方式のどちらでも受信及び描画が可能である。
また、サーバ100は、リモートクライアント210,220,・・・の性能やネットワーク10の性能、データ転送量、ディスプレイリストの使用有無などを考慮し、データ転送方式を自動的に切り換え、常に最適なパフォーマンスが得られるようにする。
図3は、サーバのハードウェア構成例を示す図である。サーバ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、サーバ100のハードウェア構成例を示したが、リモートクライアント210,220,・・・も同様のハードウェアで実現することができる。
ただし、リモートクライアント210,220,・・・のグラフィック処理装置としては、3次元画像のリアルタイムの描画可能なものが使用される。具体的には、リモートクライアント210,220,・・・のグラフィック処理装置は、3次元座標で示されるオブジェクトをスクリーンに投影して2次元画像を生成できる。また、グラフィック処理装置は、2個の画像用バッファを有しており、2次元画像を画像用バッファに交互に書き込むことにより、動画像をリアルタイムに表示できる。
以下、リモートクライアント210を用いてサーバ100による3次元画像処理機能を利用する場合を例に採り、本実施の形態の処理機能を詳細に説明する。
図4は、サーバの処理機能を示すブロック図である。サーバ100は、データ記憶部110、ネットワーク通信処理部121、3次元アプリケーション122、描画API監視部123、データ転送方式決定部124、性能テスト部125、コマンド方式処理部130、及び差分画像方式処理部140を有している。また、リモートクライアント210は、ネットワーク通信処理部211、性能テスト部212、入力情報送信処理部213、及び受信データ表示処理部214を有している。
図4は、サーバの処理機能を示すブロック図である。サーバ100は、データ記憶部110、ネットワーク通信処理部121、3次元アプリケーション122、描画API監視部123、データ転送方式決定部124、性能テスト部125、コマンド方式処理部130、及び差分画像方式処理部140を有している。また、リモートクライアント210は、ネットワーク通信処理部211、性能テスト部212、入力情報送信処理部213、及び受信データ表示処理部214を有している。
データ記憶部110は、リモートクライアント210に対する画像転送に必要な情報が格納される。
ネットワーク通信処理部121は、リモートクライアント210との間の通信を行う。具体的には、ネットワーク通信処理部121は、リモートクライアント210に対してユーザが行った操作入力の内容を示す入力情報を受信すると、その入力情報を3次元アプリケーション122に渡す。また、ネットワーク通信処理部121は、コマンド方式処理部130または差分画像方式処理部140から受け取った情報を、リモートクライアント210に送信する。
ネットワーク通信処理部121は、リモートクライアント210との間の通信を行う。具体的には、ネットワーク通信処理部121は、リモートクライアント210に対してユーザが行った操作入力の内容を示す入力情報を受信すると、その入力情報を3次元アプリケーション122に渡す。また、ネットワーク通信処理部121は、コマンド方式処理部130または差分画像方式処理部140から受け取った情報を、リモートクライアント210に送信する。
3次元アプリケーション122は、3次元画像処理を行う。たとえば、3次元CAD(Computer-Aided Design)用のアプリケーションである。具体的には、3次元アプリケーション122は、ネットワーク通信処理部121から受け取った入力情報に従って画像処理等を行う。そして、3次元アプリケーション122は、画像処理結果を描画API(Application Program Interface)を用いて出力する。
描画API監視部123は、3次元データの描画を行う描画APIデータをフック(出力データを取得する処理)し、コマンドデータの流れを監視と共にその描画コマンドをデータ記憶部110にキャッシュする。また、描画API監視部123は、描画コマンドに基づいて、3次元モデルを構成するポリゴン数を計算する。計算結果は、データ記憶部110に格納される。さらに、描画API監視部123は、描画コマンドより、ディスプレイリストのデータ量を計算する。計算結果は、データ記憶部110に格納される。描画API監視部123は、以上の処理を3次元アプリケーション122から描画バッファの切り換えコマンドが出力されるまで行う。また、描画API監視部123は、描画バッファの切り換えコマンドを検出した際には、データ転送方式決定部124に対してデータ転送方式の判定を指示する。
データ転送方式決定部124は、コマンド方式または差分画像方式のどちらの方式でデータを転送するのかを決定する。具体的には、データ転送方式決定部124は、描画API監視部123からデータ送信方式の判定の指示を受けた際に、判定処理を開始する。判定処理では、データ記憶部110に格納されている情報を参照し、コマンド方式と差分画像方式とのそれぞれにおける処理効率(画像が表示されるまでの時間等)を計算する。そして、データ転送方式決定部124は、処理効率の良い方式を、以後のデータ転送方式として決定する。決定されたデータ転送方式を示す情報は、データ記憶部110に格納される。以後、データ転送方式決定部124は、決定されたデータ転送方式に対応する処理部(コマンド方式処理部130または差分画像方式処理部140)に対して、コマンドデータを渡す。
性能テスト部125は、サーバ100のパフォーマンステストを行う。性能テスト部125が測定した性能値は、データ記憶部110に格納される。
コマンド方式処理部130は、コマンド方式でのデータ転送を行う。この際、コマンド方式処理部130は、キャッシュデータがある場合、キャッシュされていた描画コマンドを含む描画データをリモートクライアント210に送信する。たとえば、ディスプレイリストを利用している場合、コマンド方式処理部130は、3次元モデルの形状を示すディスプレイリストと、画像に対する編集等の表示方法を示す描画コマンドを含む描画データを送信する。その後、表示方法を示す描画コマンドを受け取る度に、その描画コマンドを含む描画データが随時送信される。表示方法を示す描画コマンドには、たとえばオブジェクトを回転させる描画コマンドがある。この回転用の描画コマンドには、回転行列が含まれる。
コマンド方式処理部130は、コマンド方式でのデータ転送を行う。この際、コマンド方式処理部130は、キャッシュデータがある場合、キャッシュされていた描画コマンドを含む描画データをリモートクライアント210に送信する。たとえば、ディスプレイリストを利用している場合、コマンド方式処理部130は、3次元モデルの形状を示すディスプレイリストと、画像に対する編集等の表示方法を示す描画コマンドを含む描画データを送信する。その後、表示方法を示す描画コマンドを受け取る度に、その描画コマンドを含む描画データが随時送信される。表示方法を示す描画コマンドには、たとえばオブジェクトを回転させる描画コマンドがある。この回転用の描画コマンドには、回転行列が含まれる。
差分画像方式処理部140は、差分画像方式でのデータ転送を行う。具体的には、差分画像方式処理部140は、キャッシュデータがある場合、キャッシュされていた描画コマンドに従ってサーバ100側の描画バッファに画像を描画する。さらに、差分画像方式処理部140は、後続の描画コマンドに従って、順次描画バッファに画像を描画する。そして、差分画像方式処理部140は、描画バッファに描画された画像情報を含む描画データをリモートクライアント210に送信する。この際、色指定や光源の指定等の表示態様を指定する描画コマンドが含まれていれば、その描画コマンドも描画データに含まれる。
差分画像方式処理部140では、送信した画像データを保持している。そして、差分画像方式処理部140は、その後、画像コマンドを受け取ると、その画像コマンドに応じた画像を描画し、次に表示すべき画像データと直前の画像データとの差分(変更された画像領域)を検出する。そして、差分画像方式処理部140は、差分画像を送信する。
リモートクライアント210は、ネットワーク通信処理部211、性能テスト部212、入力情報送信処理部213、及び受信データ表示処理部214を有している。
ネットワーク通信処理部211は、サーバ100との通信を行う。具体的には、ネットワーク通信処理部211は、性能テスト部212が実行した性能テストの結果や入力情報送信処理部213が出力した入力情報をサーバ100に送信する。また、ネットワーク通信処理部211は、サーバ100から送られた画像情報を受信データ表示処理部214に渡す。性能テスト部212は、リモートクライアント210の描画性能とネットワーク性能のパフォーマンステストを行い、結果をサーバ100に通知する。入力情報送信処理部213は、ユーザによる操作入力の内容を示す入力情報を、サーバ100に通知する。受信データ表示処理部214は、サーバ100から受信したデータを元に、画面への表示処理を行う。
ネットワーク通信処理部211は、サーバ100との通信を行う。具体的には、ネットワーク通信処理部211は、性能テスト部212が実行した性能テストの結果や入力情報送信処理部213が出力した入力情報をサーバ100に送信する。また、ネットワーク通信処理部211は、サーバ100から送られた画像情報を受信データ表示処理部214に渡す。性能テスト部212は、リモートクライアント210の描画性能とネットワーク性能のパフォーマンステストを行い、結果をサーバ100に通知する。入力情報送信処理部213は、ユーザによる操作入力の内容を示す入力情報を、サーバ100に通知する。受信データ表示処理部214は、サーバ100から受信したデータを元に、画面への表示処理を行う。
図5は、データ記憶部に格納される情報を示す図である。データ記憶部110には、クライアントパフォーマンス値、サーバパフォーマンス値、コマンドキャッシ群、ポリゴン数カウンタ、ディスプレイリストデータ量、ディスプレイリスト作成回数、ディスプレイリスト使用回数、及び現在の転送方式が格納されている。
クライアントパフォーマンス値は、リモートクライアント210の処理能力を示す情報である。この例では、データ転送速度、描画可能ポリゴン数、描画時間が登録されている。データ転送速度には、リモートクライアント210とサーバ100との間のネットワークの単位時間(秒)当たりに転送可能なデータ量(Byte/sec)が示されている。描画可能ポリゴン数には、リモートクライアント210が単位時間(秒)当たりに描画可能なポリゴン数(num/sec)が示されている。描画時間には、リモートクライアント210が1フレーム分の画像全体の描画に要する時間(sec)が示されている。
サーバパフォーマンス値は、サーバ100の処理能力を示す情報である。この例では、描画可能ポリゴン数、描画時間が登録されている。描画可能ポリゴン数には、サーバ100が単位時間(秒)当たりに描画可能なポリゴン数(num/sec)が示されている。描画時間には、サーバ100が1フレーム分の画像全体の描画に要する時間(sec)が示されている。
コマンドキャッシュ群は、画像処理を指示する複数のコマンドをキャッシュデータとして格納したものである。ポリゴン数カウンタには、描画対象のポリゴン数を示す値が設定される。ディスプレイリストデータ量には、ディスプレイリストを送信する際のデータ量が設定される。ディスプレイリスト作成回数には、ディスプレイリストの作成処理を実行した回数が設定される。ディスプレイリスト使用回数には、ディスプレイリストを使用した回数が設定される。現在の転送方式には、現在、コマンド方式と差分画像方式との何れで画像データを転送しているのかを示す情報が設定される。
このような構成のシステムにより、以下のような処理が行われる。なお、以下に説明する処理のうち図4に示す構成要素以外の要素(OS等)が実行する処理については、サーバ100またはリモートクライアント210を処理主体として説明する。
図6は、画像データ転送処理の手順を示すフローチャートである。以下、図6に示す処理をステップ番号に沿って説明する。
[ステップS11]リモートクライアント210が起動されると、リモートクライアント210からサーバ100に対して起動依頼が送信される。
[ステップS11]リモートクライアント210が起動されると、リモートクライアント210からサーバ100に対して起動依頼が送信される。
[ステップS12]サーバ100が起動されると、リモートクライアント210からの起動依頼の待ち状態となる。そして、リモートクライアント210からの起動依頼を受け取ると、処理がステップS13に進められる。
[ステップS13]サーバ100は、リモートクライアント210との間の接続処理を行う。
[ステップS14]リモートクライアント210は、起動依頼を送信後、返答待ちの状態となる。そして、サーバ100から接続処理を示す返答を受け取ると、処理がステップS15に進められる。
[ステップS14]リモートクライアント210は、起動依頼を送信後、返答待ちの状態となる。そして、サーバ100から接続処理を示す返答を受け取ると、処理がステップS15に進められる。
[ステップS15]リモートクライアント210の性能テスト部212はパフォーマンステストを行う。この際のパフォーマンステストにより、単位時間当たりにネットワークに転送可能なデータ量(データ転送速度)が測定される。
[ステップS16]リモートクライアント210は、パフォーマンステストの結果をサーバ100に対して通知する。
[ステップS17]サーバ100は、リモートクライアント210から通知されたデータ転送速度を、クライアントパフォーマンス値のデータ転送速度としてデータ記憶部110に格納する。
[ステップS17]サーバ100は、リモートクライアント210から通知されたデータ転送速度を、クライアントパフォーマンス値のデータ転送速度としてデータ記憶部110に格納する。
なお、クライアントパフォーマンス値における描画可能ポリゴン数と描画時間との値は、予め性能テスト部212によって測定され、データ記憶部110に格納されている。また、サーバパフォーマンス値における描画可能ポリゴン数と描画時間との値も、予めサーバ100の性能テスト部125によって予め測定され、データ記憶部110に格納されている。
[ステップS18]リモートクライアント210の入力情報送信処理部213が、ユーザから3次元アプリケーション122に対する操作入力を受け取る。すると、入力情報送信処理部213は、操作入力の内容を示す入力情報をサーバ100に送信する。
[ステップS19]サーバ100の3次元アプリケーション122は、リモートクライアント210からの入力情報に従って3次元画像処理を実行し、3次元画像データを生成する。そして、3次元アプリケーション122は、描画コマンドにより、生成した3次元画像データの描画指示を出力する。
[ステップS20]サーバ100の描画API監視部123は、描画バッファのクリア処理を伴う描画指示か否かを判断する。描画バッファのクリア処理を伴わない場合、処理がステップS23に進められる。描画バッファのクリア処理を伴う場合、処理がステップS21に進められる。
たとえば、描画バッファが前面(Front)と背面(Back)とに分けられ、オブジェクトを編集する際には常に前面が使用されるような仕様の場合、描画対象のバッファが前面であれば描画バッファのクリア無しと判断する。また、描画対象のバッファが背面となったとき、描画バッファのクリア有りと判断する。
[ステップS21]描画API監視部123は、描画コマンドのキャッシュを開始する。即ち、描画API監視部123は、3次元アプリケーション122から出力された描画コマンドをデータ記憶部110に格納する。
また、描画API監視部123は、3次元データの描画の監視を開始する。3次元の描画ライブラリとしてOpenGLを使用した例では、ここでディスプレイリストの生成(glNewList/glEndList)、ディスプレイリストの使用(glCallList)コマンドをチェックし、生成したディスプレイリストの使用回数をカウントする。カウントした値は、データ記憶部110に格納される。
[ステップS22]データ転送方式決定部124は、データ記憶部110に格納されている情報に基づいて、転送方式を決定する。具体的には、データ転送方式決定部124は、コマンド方式と差分画像転送方式とのそれぞれにおける画像表示速度を計算する。そして、データ転送方式決定部124は、より早く画像を表示できる方式を、画像情報の転送方式として決定する。
[ステップS23]サーバ100からリモートクライアント210に対して、決定された転送方式により画像情報が転送される。具体的には、データ転送方式決定部124は、決定した転送方式に対応する処理機能に対して画像情報の転送を指示する。たとえば、コマンド方式で転送することが決定された場合、データ転送方式決定部124からコマンド方式処理部130に対して、キャッシュされていた描画コマンドが渡される。すると、コマンド方式処理部130がコマンド方式による画像の描画を指示する描画コマンドをリモートクライアント210に対して送信する。また、差分画像方式で転送することが決定された場合、データ転送方式決定部124から差分画像方式処理部140に対して、キャッシュされていた描画コマンドが渡される。すると、差分画像方式処理部140が画像を描画し、差分画像をリモートクライアント210に対して送信する。
[ステップS24]サーバ100は、処理が終了か否かを判断し、終了であれば処理がステップS25に進められ、終了でなければ処理がステップS19に進められる。ステップS19に処理が進んだ場合、サーバ100が操作情報の待ち状態となり、リモートクライアント210から操作情報を受け取ると、ステップS19以降の処理が実行される。
[ステップS25]サーバ100は、終了処理(リモートクライアント210との間の通信の遮断等)を行い、処理を終了させる。
[ステップS26]リモートクライアント210は、操作情報を送信後、データ待ち状態となっている。そして、サーバ100から描画データを受け取ると、処理をステップS27に進める。
[ステップS26]リモートクライアント210は、操作情報を送信後、データ待ち状態となっている。そして、サーバ100から描画データを受け取ると、処理をステップS27に進める。
[ステップS27]リモートクライアント210の受信データ表示処理部214は、受け取った描画データに従って画像を描画し、描画した画像を表示する。
[ステップS28]リモートクライアント210は、処理が終了か否かを判断する。終了であれば処理がステップS29に進められ、終了でなければ処理がステップS18に進められる。ステップS18に処理が進められた場合、リモートクライアント210の入力情報送信処理部213が操作入力待ちの状態となり、ユーザによって操作入力が行われるとステップS18以降の処理が実行される。
[ステップS28]リモートクライアント210は、処理が終了か否かを判断する。終了であれば処理がステップS29に進められ、終了でなければ処理がステップS18に進められる。ステップS18に処理が進められた場合、リモートクライアント210の入力情報送信処理部213が操作入力待ちの状態となり、ユーザによって操作入力が行われるとステップS18以降の処理が実行される。
[ステップS29]リモートクライアント210は、終了処理(サーバ100との間の通信の遮断等)を行い、処理を終了させる。
このようにリモートクライアント210とサーバ100との性能やネットワークの性能を取得して、描画バッファのクリア処理発生時に、より短時間で画像表示可能な転送方式を決定することができる。すなわち、3次元データが一旦クリアされるタイミング(または最初に3次元描画が行われるタイミング)に転送方式の決定処理が実行される。その際、これから描画する予定のコマンドと描画される結果の差分画像のデータ量(予測値)を比較し、予め獲得した性能を加味してどちらの方式でクライアント側にデータを転送するかが決められる。
このようにリモートクライアント210とサーバ100との性能やネットワークの性能を取得して、描画バッファのクリア処理発生時に、より短時間で画像表示可能な転送方式を決定することができる。すなわち、3次元データが一旦クリアされるタイミング(または最初に3次元描画が行われるタイミング)に転送方式の決定処理が実行される。その際、これから描画する予定のコマンドと描画される結果の差分画像のデータ量(予測値)を比較し、予め獲得した性能を加味してどちらの方式でクライアント側にデータを転送するかが決められる。
図7は、描画データを送信するまでの処理の概念図である。3次元アプリケーション122によって3次元データが編集されると、描画コマンドが出力される(ステップS31)。出力された描画コマンドは描画API監視部123でフックされる(ステップS32)。そして、データ転送方式決定部124によって転送方式が決定される(ステップS33)。
転送方式がコマンド方式に決定されると、描画コマンドがコマンド方式処理部130に渡され、コマンド方式処理部130によって描画コマンドがエンコードされる(ステップS34)。エンコードによって生成された描画データは、ネットワーク通信処理部121によってリモートクライアント210に送信される。
転送方式が差分画像方式に決定されると、描画コマンドが差分画像方式処理部140に渡され、差分画像方式処理部140によって画像141が描画される(ステップS36)。さらに、差分画像方式処理部140により、生成された画像141と前回の画像との差分が抽出される(ステップS37)。そして、画像141を複数に分割したときの各領域のうち、画像が更新された領域が差分画像方式処理部140により特定され、その領域の画像(差分画像)が、ネットワーク通信処理部121によってリモートクライアント210に送信される(ステップS38)。その後、3次元データが一旦クリアされるタイミングが来るまでは、同一の方式でデータ転送が行われる。クリアされるタイミングが来たら、同様にデータ転送方式の判定処理が行われる。
次に、データ転送方式毎の処理時間の計算方法を具体的に説明する。以下、3次元の描画ライブラリとしてOpenGLを使用した場合を例に採って説明する。OpenGLでは、3次元データが一旦クリアされるタイミングは、glClearコマンドが呼ばれる時である。また、OpenGLにおいて、glClearコマンド以後、画面への描画データが一通り終わるタイミングは、glFlushやSwapBuffersコマンドが呼ばれる時である。ここまでの描画コマンドをフックすることにより一旦全てキャッシュされる。また、描画するポリゴン数と、ディスプレイリストを使用している場合はそのデータ量がカウントされる。
そして、以下の式で処理にかかる時間を算出する。
・コマンド方式:処理時間(sec)=(キャッシュしたデータ量(byte)/データ転送速度(byte/sec))+(ポリゴン数(num)/リモートクライアント側の描画可能ポリゴン数(num/sec))
なお、現在のデータ転送方式が差分画像方式の場合、コマンド方式の処理時間として、上記の値に対してディスプレイリストデータ量(byte)が加算される。
・コマンド方式:処理時間(sec)=(キャッシュしたデータ量(byte)/データ転送速度(byte/sec))+(ポリゴン数(num)/リモートクライアント側の描画可能ポリゴン数(num/sec))
なお、現在のデータ転送方式が差分画像方式の場合、コマンド方式の処理時間として、上記の値に対してディスプレイリストデータ量(byte)が加算される。
・差分画像方式:処理時間(sec)=(ポリゴン数(num)/サーバ側の描画可能ポリゴン数(num/sec))+(ウィンドウ全体を転送するのに必要なデータ量(byte)×係数P/データ転送速度(byte/sec))+(ディスプレイリストデータ量(byte)/データ転送速度(byte/sec))+クライアント側の描画時間(sec)×係数P
なお、差分画像方式ではウィンドウのどの範囲が更新されるかは正確にはわからないため、ここでは簡易的な手法を採り、ウィンドウ全体を転送するデータ量に、いつも同一の値である係数Pを掛けることとする。係数Pは、0より大きく1以下の値(例えば、0.7)である。
なお、差分画像方式ではウィンドウのどの範囲が更新されるかは正確にはわからないため、ここでは簡易的な手法を採り、ウィンドウ全体を転送するデータ量に、いつも同一の値である係数Pを掛けることとする。係数Pは、0より大きく1以下の値(例えば、0.7)である。
また、「データ転送速度(byte/sec)」、「クライアント側の描画可能ポリゴン数(num/sec)」、「クライアント側の描画時間(sec)」は、データ記憶部110に予め登録された値である。
データ転送方式決定部124は、この計算を行った結果、処理時間が短くなる方を採用する。ただし、ディスプレイリストを使用している場合は、描画API監視部123による使用回数のカウントによりディスプレイリストが効果的に使用されている(たとえば、1つのディスプレイリスト当たりの使用回数が所定の値以上の場合)と判断できるときはコマンド方式を選択する。
決定されたデータ転送方式がコマンド方式の場合は、キャッシュした描画時の描画コマンドがエンコードされリモートクライアント210に転送される。この際、サーバ100側では画像の描画は行わない。
決定されたデータ転送方式が差分画像方式の場合は、サーバ100側で3次元モデルが描画され、差分画像がリモートクライアント210に転送される。ただし、3次元データの形状描画以外の表示態様を指定する描画コマンドがある場合、その描画コマンドもリモートクライアント210に送信しておく。これは、差分画像方式で描画している最中に形状の色変更処理や光源の処理などが行われると、コマンド処理方式に切り替わった際に変更となった情報をクライアント側で認識できない可能性があるためである。
図8は、転送されるデータの違いを示す図である。この例では、リモートクライアント210からの操作入力により、3次元モデルの編集作業をする場合を想定している。3次元モデルの編集中は、編集操作が行われた部分の画像だけが更新されればよい。そこで、差分画像方式によりデータ転送が行われる。
差分画像方式では、サーバ100とリモートクライアント210との双方に、同じ画像21,22が保持される。そして、リモートクライアント210においてオブジェクト追加の操作があると、その操作内容を示す操作情報がリモートクライアント210からサーバ100に対して送信される(ステップS41)。
サーバ100では、操作情報に応じて、オブジェクトを追加した画像23を生成する。そして、元の画像21と新たに生成した画像23との差分を検出する。具体的には、画像21,23を複数の領域に分割する。そして、分割された画像毎に、画像21から変更されたか否かを判断する。そして、サーバ100は、変更のあった画像を差分画像24として、リモートクライアント210に送信する(ステップS42)。
リモートクライアント210では、差分画像24を受け取って、元の画像22の該当する部分を差分画像24に置き換える。これにより、更新後の画像25が生成され、リモートクライアント210で表示される。
その後、ユーザが3次元モデルの回転を指示したものとする。回転を指示する操作入力を受け取ったリモートクライアント210は、3次元モデルの回転を示す操作情報をサーバ100に送信する(ステップS43)。なお、3次元モデルを回転させる処理を開始する際には、画像バッファのクリア処理を伴う。そこで、サーバ100では、データ転送方式の判定処理が行われる。
ここで、コマンド方式が選択されたものとすると、サーバ100からリモートクライアント210に、コマンドによる描画データが送信される(ステップS44)。コマンド方式による最初の描画データには、ディスプレイリスト26や変換行列27が含まれる。ディスプレイリスト26は、描画される3次元モデルの形状等を3次元仮想空間上で定義したデータである。変換行列27は、3次元モデルの表示方向(仮想カメラで3次元モデルを観察したときの仮想カメラの位置及び向き)に応じた3次元座標値の変換行列である(たとえば、回転行列)。
リモートクライアント210では、受け取ったディスプレイリスト26で示される3次元モデルの座標を変換行列27で変換して、2次元の平面に投影する。そして、投影された画像28を表示する。
次に、データ転送方式毎の描画データ形式について説明する。
図9は、コマンド方式の描画データ形式を示す図である。コマンド方式の描画データ31には、方式フラグ、全体のデータ長、コマンド数、glClearコマンド、glLoadMatrixdコマンド、glCallListコマンド、およびglFlushコマンドが含まれる。
図9は、コマンド方式の描画データ形式を示す図である。コマンド方式の描画データ31には、方式フラグ、全体のデータ長、コマンド数、glClearコマンド、glLoadMatrixdコマンド、glCallListコマンド、およびglFlushコマンドが含まれる。
方式フラグは、データ転送方式を示す情報である。この例では、「1」がコマンド方式を示している。全体のデータ長は、描画データ31全体のデータ長をバイト単位で示している。コマンド数は、描画データ31に含まれるコマンド数を示している。glClearコマンドは、画像バッファのクリアを示すコマンドである。このコマンドにはパラメタが設定されない。glLoadMatrixdコマンドは、変換行列を指定するコマンドである。このコマンドには、16個(座標変換に用いられる4×4行列の各値)のパラメタが設定される。glCallListコマンドは、ディスプレイリストの実行を指示するコマンドである。このコマンドには、ディスプレイリストを指定するパラメタが設定される。glFlushコマンドは、コマンドの実行を強制するコマンドである。このコマンドにはパラメタは設定されない。
図10は、ディスプレイリストの例を示す図である。ディスプレイリスト32には、ポリゴン毎の頂点の位置やポリゴンの色が定義されている。図10には、平面の4角形を定義したディスプレイリスト32の例が示されている。図10において、「glNewList(1, GL_COMPILE);」は、番号1のリストの作成開始を意味する。「glColor3f( 1.0, 1.0, 1.0 ) ;」は、白色で描画することを示している。「glBegin(GL_POLYGON);」は、面の定義開始を意味する。「glVertex3f( -1, -1, 1 ) ;」、「glVertex3f( -1, 1, 1 ) ;」、「glVertex3f( 1, 1, 1 ) ;」、「glVertex3f( 1, -1, 1 ) ;」は、それぞれ頂点の座標を示している。「glEnd();」は、面の定義終了を意味する。「glEndList(1);」は、番号1のリストの作成終了を意味する。
図11は、差分画像方式の描画データ形式を示す図である。差分画像方式の描画データ33には、方式フラグ、全体のデータ長、領域数、領域の位置、領域の大きさ、及び画像データが含まれる。
方式フラグは、データ転送方式を示す情報である。この例では、「2」が差分画像方式を示している。全体のデータ長は、描画データ33全体のデータ長をバイト単位で示している。領域数は、差分画像として含まれる領域の数である。領域の位置は、差分画像の領域の位置をx座標値とy座標値によって示している。領域の大きさは、差分画像の領域の大きさを横方向の大きさ(width)と縦方向の大きさ(height)によって示している。画像データは、差分画像の画像情報である。なお、領域の位置、領域の大きさ、及び画像データは、領域の数分存在する。
ところで、コマンド方式と差分画像方式とのうち、どちらの方式が効率的なのかは、変更された領域のサイズやシステム環境によって決まる。システム環境のうち、データ転送方式の決定に影響を与える要素として、以下の要素がある。
・リモートクライアントの性能(特に3Dグラフィックアクセラレータの性能)
・ネットワークの帯域の太さ(データ転送速度)
・アプリケーションがディスプレイリストを使用しているか否か
・3次元モデルの規模
図12は、3Dモデルの規模と処理性能に応じて選択されるデータ方式の概略を示す図である。3次元アプリケーション122がディスプレイリストを使用しているか否かによって、方式を切り分けるポイントは若干変動するが、傾向としてはこの図12の通りとなる。
・リモートクライアントの性能(特に3Dグラフィックアクセラレータの性能)
・ネットワークの帯域の太さ(データ転送速度)
・アプリケーションがディスプレイリストを使用しているか否か
・3次元モデルの規模
図12は、3Dモデルの規模と処理性能に応じて選択されるデータ方式の概略を示す図である。3次元アプリケーション122がディスプレイリストを使用しているか否かによって、方式を切り分けるポイントは若干変動するが、傾向としてはこの図12の通りとなる。
図12に示すように、モデルの規模が小さいほどコマンド方式の方が効率的であり、モデルの規模が大きいほど差分画像方式の方が効率的である。
また、リモートクライアントの性能が低いほど差分画像方式の方が効率的であり、リモートクライアントの性能が高いほどコマンド方式の方が効率的である。さらに、データ転送速度が低い(帯域が遅い)ほど差分画像方式の方が効率的であり、データ転送速度が高い(帯域が速い)ほどコマンド方式の方が効率的である。
また、リモートクライアントの性能が低いほど差分画像方式の方が効率的であり、リモートクライアントの性能が高いほどコマンド方式の方が効率的である。さらに、データ転送速度が低い(帯域が遅い)ほど差分画像方式の方が効率的であり、データ転送速度が高い(帯域が速い)ほどコマンド方式の方が効率的である。
例えば、性能の低いリモートクライアントを使っているユーザの場合、小規模なモデルを操作する際はコマンド方式で、大規模なモデルを操作する際は差分画像方式となる。また、高性能なリモートクライアントで、ネットワークの帯域が太い環境のユーザの場合、小規模でも大規模でもコマンド方式となる。
このように本発明の実施の形態によれば、リモートクライアントの性能やネットワークの性能に応じて、3次元データを扱うアプリケーションをリモートクライアント上で最適なスピードで使用できるようになる。すなわち、リモートクライアント(特に3次元描画アクセラレータ)やネットワークの性能を最大限に活かすことができる。
ここで、「方式を自動的に切り換えるタイミング」と「一連の操作時におけるパフォーマンス考慮」とについて、本実施の形態に示したような機能を適用したことによる効果を詳しく説明する。
<方式を自動的に切り換えるタイミング>
一般的な画像の描画で、転送方法をコマンド方式または差分画像方式に任意に切り換える仕組みを取り入れようとした場合、サーバ100側にはクライアント側に描画されている画像と同じ画像を保持していなければならない。これは、任意に切り換えた時でも画像の欠落なくリモートクライアント側に表示させるために必要だからである。よって、画像はサーバ100側とリモートクライアント側とのそれぞれにおいて描画されることになり、速度の面で不利である。
一般的な画像の描画で、転送方法をコマンド方式または差分画像方式に任意に切り換える仕組みを取り入れようとした場合、サーバ100側にはクライアント側に描画されている画像と同じ画像を保持していなければならない。これは、任意に切り換えた時でも画像の欠落なくリモートクライアント側に表示させるために必要だからである。よって、画像はサーバ100側とリモートクライアント側とのそれぞれにおいて描画されることになり、速度の面で不利である。
本実施の形態では、データ転送方式を自動的に切り換えるタイミングを一旦画面上のデータが全てクリアされるタイミングに合わせている。これにより、コマンド方式を選んだ場合のサーバ100側での3次元画像の描画処理を省くことができる。特に性能を向上させたいのは3次元形状の回転/移動時であるが、このような操作が行われる際にはサーバ100の内部処理としては一旦画面上のデータは全てクリアされ、新たに3次元データを全て転送し直すか、回転/移動の行列を送信するという処理が行われる。データ転送方式を自動的に切り換えるタイミングを、この一旦画面上のデータがクリアされるタイミングに合わせることで、コマンド方式を選んだ場合にサーバ100側で3次元画像の描画処理を省くことができる。その結果、大幅な高速化を図ることが可能となる。
<一連の操作時におけるパフォーマンス考慮>
データ転送方式を選択する際には、サーバ100、リモートクライアント210及びネットワーク10の性能を考慮してどちらの方式で転送した方がデータ量が少なくなるのかを判断する。しかし3次元形状データの場合、ディスプレイリストを持つため、一時期のタイミングでのデータ量の大小だけでは判断できない。そこで、本実施の形態では、これから転送しようとしている3次元形状データのみに注目して方式を決定するのではなく、その後予想される操作を含めて、最も高速に動作すると思われる方式を選択している。そのために、サーバ100の描画API監視部123は、ディスプレイリストの使用状況を観察する処理を持つ。データ転送方式決定部124は、ディスプレイリストが効果的に使用されると判断した場合(たとえば、生成されたディスプレイリスト1つ当たりの使用回数が所定値以上の場合)は、ディスプレイリスト定義時のデータ転送量が多くなってもコマンド方式を選択する。これにより、移動/回転操作時のパフォーマンスがアップし、一連の操作で見れば差分画像方式よりも高速に動作させることができる。
データ転送方式を選択する際には、サーバ100、リモートクライアント210及びネットワーク10の性能を考慮してどちらの方式で転送した方がデータ量が少なくなるのかを判断する。しかし3次元形状データの場合、ディスプレイリストを持つため、一時期のタイミングでのデータ量の大小だけでは判断できない。そこで、本実施の形態では、これから転送しようとしている3次元形状データのみに注目して方式を決定するのではなく、その後予想される操作を含めて、最も高速に動作すると思われる方式を選択している。そのために、サーバ100の描画API監視部123は、ディスプレイリストの使用状況を観察する処理を持つ。データ転送方式決定部124は、ディスプレイリストが効果的に使用されると判断した場合(たとえば、生成されたディスプレイリスト1つ当たりの使用回数が所定値以上の場合)は、ディスプレイリスト定義時のデータ転送量が多くなってもコマンド方式を選択する。これにより、移動/回転操作時のパフォーマンスがアップし、一連の操作で見れば差分画像方式よりも高速に動作させることができる。
なお、上記の処理機能は、サーバとリモートクライアントとに、所定のプログラムを実行させることで実現することができる。その場合、サーバが有すべき機能の処理内容を記述したサーバプログラム、およびリモートクライアントが有すべき機能の処理内容を記述したクライアントプログラムが提供される。サーバプログラムをサーバコンピュータで実行することにより、サーバ100の処理機能がサーバコンピュータ上で実現される。また、クライアントプログラムをクライアントコンピュータで実行することにより、リモートクライアント210の処理機能がクライアントコンピュータ上で実現される。
処理内容を記述したサーバプログラムやクライアントプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
サーバプログラムやクライアントプログラムを流通させる場合には、たとえば、各プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、クライアントプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからクライアントコンピュータにクライアントプログラムを転送することもできる。
サーバプログラムを実行するサーバコンピュータは、たとえば、可搬型記録媒体に記録されたサーバプログラムを、自己の記憶装置に格納する。そして、サーバコンピュータは、自己の記憶装置からサーバプログラムを読み取り、サーバプログラムに従った処理を実行する。なお、サーバコンピュータは、可搬型記録媒体から直接サーバプログラムを読み取り、そのサーバプログラムに従った処理を実行することもできる。
クライアントプログラムを実行するクライアントコンピュータは、たとえば、可搬型記録媒体に記録されたクライアントプログラムもしくはサーバコンピュータから転送されたクライアントプログラムを、自己の記憶装置に格納する。そして、クライアントコンピュータは、自己の記憶装置からクライアントプログラムを読み取り、クライアントプログラムに従った処理を実行する。なお、クライアントコンピュータは、可搬型記録媒体から直接クライアントプログラムを読み取り、そのクライアントプログラムに従った処理を実行することもできる。また、クライアントコンピュータは、サーバコンピュータからクライアントプログラムが転送される毎に、逐次、受け取ったクライアントプログラムに従った処理を実行することもできる。
(付記1) ネットワークを介して接続されたクライアントに対してコンピュータが3次元モデルの描画データを提供するときに用いられる3次元モデル転送プログラムにおいて、
コンピュータを、
前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力する3次元モデル作成手段、
前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定するデータ転送方式決定手段、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信するコマンド方式転送手段、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する差分画像方式転送手段、
として機能させることを特徴とする3次元モデル転送プログラム。
コンピュータを、
前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力する3次元モデル作成手段、
前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定するデータ転送方式決定手段、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信するコマンド方式転送手段、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する差分画像方式転送手段、
として機能させることを特徴とする3次元モデル転送プログラム。
(付記2) 前記データ転送方式決定手段は、前記3次元モデル作成手段からの前記描画命令で示される処理が、前記投影画像を格納する画像バッファ内のデータのクリアを伴うとき、データ転送方式の決定処理を行うことを特徴とする付記1記載の3次元モデル転送プログラム。
(付記3) 前記データ転送方式決定手段は、描画までの処理時間として、前記ネットワークを介したデータの伝送時間と、前記クライアントにおける描画時間を加算した値を計算することを特徴とする付記1記載の3次元モデル転送プログラム。
(付記4) 前記差分画像方式転送手段は、前記コマンド方式による描画時に必要となる表示態様を指定するコマンドを、前記差分画像と共に予め送信することを特徴とする付記1記載の3次元モデル転送プログラム。
(付記5) 前記データ転送方式決定手段は、前記コマンド方式において前記3次元モデルを定義するデータを前記クライアントで繰り返し利用できる場合、そのデータの使用回数が所定値以上であれば、データ転送方式を前記コマンド方式に決定することを特徴とする付記1記載の3次元モデル転送プログラム。
(付記6) ネットワークを介して接続されたクライアントに対して3次元モデルの描画データを提供する3次元モデル転送サーバにおいて、
前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力する3次元モデル作成手段と、
前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定するデータ転送方式決定手段と、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信するコマンド方式転送手段と、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する差分画像方式転送手段と、
を有することを特徴とする3次元モデル転送サーバ。
前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力する3次元モデル作成手段と、
前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定するデータ転送方式決定手段と、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信するコマンド方式転送手段と、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する差分画像方式転送手段と、
を有することを特徴とする3次元モデル転送サーバ。
(付記7) ネットワークを介して接続されたクライアントに対して3次元モデルの描画データを提供する3次元モデルデータ転送方法において、
3次元モデル作成手段が、前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力し、
データ転送方式決定手段が、前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定し、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、コマンド方式転送手段が、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信し、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、差分画像方式転送手段が、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する、
ことを特徴とする3次元モデルデータ転送方法。
3次元モデル作成手段が、前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力し、
データ転送方式決定手段が、前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定し、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、コマンド方式転送手段が、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信し、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、差分画像方式転送手段が、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する、
ことを特徴とする3次元モデルデータ転送方法。
(付記8) ネットワークを介して接続されたクライアントに対してコンピュータが3次元モデルの描画データを提供するときに用いられる3次元モデル転送プログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力する3次元モデル作成手段、
前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定するデータ転送方式決定手段、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信するコマンド方式転送手段、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する差分画像方式転送手段、
として機能させることを特徴とする3次元モデル転送プログラムを記録したコンピュータ読み取り可能な記録媒体。
コンピュータを、
前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力する3次元モデル作成手段、
前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定するデータ転送方式決定手段、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信するコマンド方式転送手段、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する差分画像方式転送手段、
として機能させることを特徴とする3次元モデル転送プログラムを記録したコンピュータ読み取り可能な記録媒体。
1 3次元モデル転送サーバ
1a 3次元モデル作成手段
1b データ転送方式決定手段
1c コマンド方式転送手段
1d 差分画像方式転送手段
2 クライアント
3 ディスプレイリスト
4 変換行列
5 全体画像
6 差分画像
1a 3次元モデル作成手段
1b データ転送方式決定手段
1c コマンド方式転送手段
1d 差分画像方式転送手段
2 クライアント
3 ディスプレイリスト
4 変換行列
5 全体画像
6 差分画像
Claims (5)
- ネットワークを介して接続されたクライアントに対してコンピュータが3次元モデルの描画データを提供するときに用いられる3次元モデル転送プログラムにおいて、
前記コンピュータを、
前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力する3次元モデル作成手段、
前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定するデータ転送方式決定手段、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信するコマンド方式転送手段、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する差分画像方式転送手段、
として機能させることを特徴とする3次元モデル転送プログラム。 - 前記データ転送方式決定手段は、前記3次元モデル作成手段からの前記描画命令で示される処理が、前記投影画像を格納する画像バッファ内のデータのクリアを伴うとき、データ転送方式の決定処理を行うことを特徴とする請求項1記載の3次元モデル転送プログラム。
- 前記データ転送方式決定手段は、前記コマンド方式において前記3次元モデルを定義するデータを前記クライアントで繰り返し利用できる場合、そのデータの使用回数が所定値以上であれば、データ転送方式を前記コマンド方式に決定することを特徴とする請求項1記載の3次元モデル転送プログラム。
- ネットワークを介して接続されたクライアントに対して3次元モデルの描画データを提供する3次元モデル転送サーバにおいて、
前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力する3次元モデル作成手段と、
前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定するデータ転送方式決定手段と、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信するコマンド方式転送手段と、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する差分画像方式転送手段と、
を有することを特徴とする3次元モデル転送サーバ。 - ネットワークを介して接続されたクライアントに対して3次元モデルの描画データを提供する3次元モデルデータ転送方法において、
3次元モデル作成手段が、前記クライアントからの要求に基づいて前記3次元モデルを作成し、前記3次元モデルの描画命令を出力し、
データ転送方式決定手段が、前記描画命令に応じて、コマンド方式と差分画像方式それぞれにおける描画までの処理時間を計算して、処理効率の良いデータ転送方式を決定し、
処理効率の良いデータ転送方式が前記コマンド方式に決定した場合、コマンド方式転送手段が、前記描画命令に従った前記3次元モデルを定義するデータ及び、前記3次元モデルの表示方法を定義するデータを前記コマンド方式によって前記クライアントに送信し、
処理効率の良いデータ転送方式が前記差分画像方式に決定した場合、差分画像方式転送手段が、前記描画命令に従って前記3次元モデルから2次元の投影画像を生成し、生成した前記投影画像と前回の投影画像との差分画像を前記クライアントに送信する、
ことを特徴とする3次元モデルデータ転送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004097391A JP2005284694A (ja) | 2004-03-30 | 2004-03-30 | 3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法 |
US10/958,085 US20050256950A1 (en) | 2004-03-30 | 2004-10-04 | Three-dimensional model data-providing program, three-dimensional model data-providing server, and three-dimensional model data transfer method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004097391A JP2005284694A (ja) | 2004-03-30 | 2004-03-30 | 3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005284694A true JP2005284694A (ja) | 2005-10-13 |
Family
ID=35183006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004097391A Pending JP2005284694A (ja) | 2004-03-30 | 2004-03-30 | 3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050256950A1 (ja) |
JP (1) | JP2005284694A (ja) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007265208A (ja) * | 2006-03-29 | 2007-10-11 | Casio Comput Co Ltd | コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム |
JP2009020723A (ja) * | 2007-07-12 | 2009-01-29 | Casio Comput Co Ltd | サーバ装置およびプログラム |
JP2009054096A (ja) * | 2007-08-29 | 2009-03-12 | Casio Comput Co Ltd | サーバ装置およびサーバ処理プログラム |
JP2010026104A (ja) * | 2008-07-16 | 2010-02-04 | Fujitsu Ltd | 端末装置、画像表示プログラムおよび画像表示方法 |
JP2010193257A (ja) * | 2009-02-19 | 2010-09-02 | Nec Personal Products Co Ltd | サーバ、リモート操作システム、伝送方式選択方法、プログラム及び記録媒体 |
JP2010282609A (ja) * | 2009-04-23 | 2010-12-16 | Vmware Inc | 遠隔の表示部へ選択的に伝送するために描画プリミティブを特定する方法及びシステム |
JP2011028510A (ja) * | 2009-07-24 | 2011-02-10 | Casio Computer Co Ltd | サーバ装置、サーバベース・コンピューティング・システム、およびプログラム |
JP2011511367A (ja) * | 2008-02-01 | 2011-04-07 | マイクロソフト コーポレーション | グラフィック遠隔化アーキテクチャ |
JP2011124914A (ja) * | 2009-12-14 | 2011-06-23 | Sharp Corp | 情報機器、画像処理装置、情報機器と通信可能な情報処理装置およびそれらを含む情報処理システム |
JP2013235191A (ja) * | 2012-05-10 | 2013-11-21 | Funai Electric Co Ltd | 表示装置および表示システム |
CN103593046A (zh) * | 2012-08-13 | 2014-02-19 | 株式会社理光 | 信息处理装置、投影装置、信息处理方法以及投影方法 |
JP2014504409A (ja) * | 2010-12-15 | 2014-02-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス |
JP2014067444A (ja) * | 2013-12-18 | 2014-04-17 | Sharp Corp | 情報機器、画像処理装置、情報機器と通信可能な情報処理装置およびそれらを含む情報処理システム |
WO2014174802A1 (ja) * | 2013-04-26 | 2014-10-30 | 日本電気株式会社 | 画面伝送システム、画像情報送信装置および画像情報受信装置 |
JP2015534160A (ja) * | 2012-09-10 | 2015-11-26 | カルガリー サイエンティフィック インコーポレイテッド | クライアント・サーバー画像閲覧アーキテクチャにおけるクライアント側の画像描画 |
JP2016224766A (ja) * | 2015-06-01 | 2016-12-28 | 富士通株式会社 | リモート画面表示システム、リモート画面表示方法、およびリモート画面表示プログラム |
JP2021114232A (ja) * | 2020-01-21 | 2021-08-05 | 株式会社日立製作所 | 計算機システム及びデータ転送の制御方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8878833B2 (en) * | 2006-08-16 | 2014-11-04 | Barco, Inc. | Systems, methods, and apparatus for recording of graphical display |
CN104811685B (zh) * | 2008-12-18 | 2017-04-12 | Lg电子株式会社 | 3d图像信号处理方法和用于实现该方法的图像显示器 |
US8676926B2 (en) * | 2009-04-15 | 2014-03-18 | Wyse Technology L.L.C. | System and method for handling remote drawing commands |
US20110047217A1 (en) * | 2009-08-18 | 2011-02-24 | Arnaud Remi S | Real Time Collaborative Three Dimensional Asset Management System |
US8904007B2 (en) * | 2011-08-24 | 2014-12-02 | Netapp, Inc. | Connection distribution within a connectional parallelism architecture |
US9224239B2 (en) | 2013-03-14 | 2015-12-29 | Dreamworks Animation Llc | Look-based selection for rendering a computer-generated animation |
US9171401B2 (en) | 2013-03-14 | 2015-10-27 | Dreamworks Animation Llc | Conservative partitioning for rendering a computer-generated animation |
US9230294B2 (en) | 2013-03-15 | 2016-01-05 | Dreamworks Animation Llc | Preserving and reusing intermediate data |
US9626787B2 (en) | 2013-03-15 | 2017-04-18 | Dreamworks Animation Llc | For node in render setup graph |
US9589382B2 (en) | 2013-03-15 | 2017-03-07 | Dreamworks Animation Llc | Render setup graph |
US9208597B2 (en) | 2013-03-15 | 2015-12-08 | Dreamworks Animation Llc | Generalized instancing for three-dimensional scene data |
US9811936B2 (en) | 2013-03-15 | 2017-11-07 | Dreamworks Animation L.L.C. | Level-based data sharing for digital content production |
US9218785B2 (en) | 2013-03-15 | 2015-12-22 | Dreamworks Animation Llc | Lighting correction filters |
US9659398B2 (en) | 2013-03-15 | 2017-05-23 | Dreamworks Animation Llc | Multiple visual representations of lighting effects in a computer animation scene |
US9514562B2 (en) | 2013-03-15 | 2016-12-06 | Dreamworks Animation Llc | Procedural partitioning of a scene |
WO2019086115A1 (en) * | 2017-11-02 | 2019-05-09 | MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. | Real-time potentially visible set for streaming rendering |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6420698B1 (en) * | 1997-04-24 | 2002-07-16 | Cyra Technologies, Inc. | Integrated system for quickly and accurately imaging and modeling three-dimensional objects |
US6983020B2 (en) * | 2002-03-25 | 2006-01-03 | Citrix Online Llc | Method and apparatus for fast block motion detection |
US6943805B2 (en) * | 2002-06-28 | 2005-09-13 | Microsoft Corporation | Systems and methods for providing image rendering using variable rate source sampling |
-
2004
- 2004-03-30 JP JP2004097391A patent/JP2005284694A/ja active Pending
- 2004-10-04 US US10/958,085 patent/US20050256950A1/en not_active Abandoned
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8004532B2 (en) | 2006-03-29 | 2011-08-23 | Casio Computer Co., Ltd | Server apparatus and server control method in computer system |
JP2007265208A (ja) * | 2006-03-29 | 2007-10-11 | Casio Comput Co Ltd | コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム |
JP2009020723A (ja) * | 2007-07-12 | 2009-01-29 | Casio Comput Co Ltd | サーバ装置およびプログラム |
JP2009054096A (ja) * | 2007-08-29 | 2009-03-12 | Casio Comput Co Ltd | サーバ装置およびサーバ処理プログラム |
JP2011511367A (ja) * | 2008-02-01 | 2011-04-07 | マイクロソフト コーポレーション | グラフィック遠隔化アーキテクチャ |
JP2010026104A (ja) * | 2008-07-16 | 2010-02-04 | Fujitsu Ltd | 端末装置、画像表示プログラムおよび画像表示方法 |
JP2010193257A (ja) * | 2009-02-19 | 2010-09-02 | Nec Personal Products Co Ltd | サーバ、リモート操作システム、伝送方式選択方法、プログラム及び記録媒体 |
JP2010282609A (ja) * | 2009-04-23 | 2010-12-16 | Vmware Inc | 遠隔の表示部へ選択的に伝送するために描画プリミティブを特定する方法及びシステム |
US11003412B2 (en) | 2009-04-23 | 2021-05-11 | Vmware, Inc. | Method and system for identifying drawing primitives for selective transmission to a remote display |
US8902242B2 (en) | 2009-04-23 | 2014-12-02 | Vmware, Inc. | Method and system for identifying drawing primitives for selective transmission to a remote display |
US11397553B2 (en) | 2009-04-23 | 2022-07-26 | Vmware, Inc. | Method and system for identifying drawing primitives for selective transmission to a remote display |
US10572214B2 (en) | 2009-04-23 | 2020-02-25 | Vmware, Inc. | Method and system for identifying drawing primitives for selective transmission to a remote display |
US10067732B2 (en) | 2009-04-23 | 2018-09-04 | Vmware, Inc. | Method and system for identifying drawing primitives for selective transmission to a remote display |
US9448760B2 (en) | 2009-04-23 | 2016-09-20 | Vmware, Inc. | Method and system for identifying drawing primitives for selective transmission to a remote display |
JP2011028510A (ja) * | 2009-07-24 | 2011-02-10 | Casio Computer Co Ltd | サーバ装置、サーバベース・コンピューティング・システム、およびプログラム |
JP2011124914A (ja) * | 2009-12-14 | 2011-06-23 | Sharp Corp | 情報機器、画像処理装置、情報機器と通信可能な情報処理装置およびそれらを含む情報処理システム |
JP2014504409A (ja) * | 2010-12-15 | 2014-02-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス |
JP2013235191A (ja) * | 2012-05-10 | 2013-11-21 | Funai Electric Co Ltd | 表示装置および表示システム |
JP2014038159A (ja) * | 2012-08-13 | 2014-02-27 | Ricoh Co Ltd | 画像処理装置、画像処理方法、プロジェクタ、画像投影システム、プログラム及び記録媒体 |
CN103593046B (zh) * | 2012-08-13 | 2016-10-19 | 株式会社理光 | 信息处理装置、投影装置、信息处理方法以及投影方法 |
CN103593046A (zh) * | 2012-08-13 | 2014-02-19 | 株式会社理光 | 信息处理装置、投影装置、信息处理方法以及投影方法 |
JP2015534160A (ja) * | 2012-09-10 | 2015-11-26 | カルガリー サイエンティフィック インコーポレイテッド | クライアント・サーバー画像閲覧アーキテクチャにおけるクライアント側の画像描画 |
WO2014174802A1 (ja) * | 2013-04-26 | 2014-10-30 | 日本電気株式会社 | 画面伝送システム、画像情報送信装置および画像情報受信装置 |
JP2014067444A (ja) * | 2013-12-18 | 2014-04-17 | Sharp Corp | 情報機器、画像処理装置、情報機器と通信可能な情報処理装置およびそれらを含む情報処理システム |
JP2016224766A (ja) * | 2015-06-01 | 2016-12-28 | 富士通株式会社 | リモート画面表示システム、リモート画面表示方法、およびリモート画面表示プログラム |
JP2021114232A (ja) * | 2020-01-21 | 2021-08-05 | 株式会社日立製作所 | 計算機システム及びデータ転送の制御方法 |
JP7248600B2 (ja) | 2020-01-21 | 2023-03-29 | 株式会社日立製作所 | 計算機システム及びデータ転送の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20050256950A1 (en) | 2005-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005284694A (ja) | 3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法 | |
EP3953796B1 (en) | Hybrid rendering | |
US10109031B2 (en) | View rendering from multiple server-side renderings | |
JP4901261B2 (ja) | 高品質なユーザーインターフェイスによる効率的な遠隔表示を行なうシステム | |
RU2424559C1 (ru) | Способ и вычислительная система для сокращения количества данных, передаваемых удаленному клиентскому терминалу | |
JP3764070B2 (ja) | オブジェクト表示プログラムおよびオブジェクト表示装置 | |
US7478098B2 (en) | Data transfer system and computer-readable recording medium recording a data transfer server program | |
US20120236199A1 (en) | Information processing apparatus, image transmitting program, image transmitting method and image display method | |
KR20060126919A (ko) | 애니메이션 렌더링 시스템 및 애니메이션 애플리케이션을처리하기 위한 방법 | |
JP2010067261A (ja) | 画像処理装置 | |
JP2007241736A (ja) | リモートデスクトップシステムのサーバ装置及びクライアント装置 | |
KR20210030384A (ko) | 3d 전환 | |
JPWO2011077550A1 (ja) | 画面中継装置 | |
JP2009020723A (ja) | サーバ装置およびプログラム | |
JP5476734B2 (ja) | サーバ、リモート操作システム、伝送方式選択方法、プログラム及び記録媒体 | |
JP3895750B2 (ja) | 画像表示装置およびその制御方法 | |
JP4770455B2 (ja) | 表示態様設定システム、表示態様設定装置、表示態様設定方法及び表示態様設定処理プログラム | |
US6542938B1 (en) | Mechanism and apparatus for adaptive quality performance control in 3D based PC applications | |
CN117437342A (zh) | 一种三维场景渲染方法、装置及设备 | |
JP5701964B2 (ja) | 画面中継装置 | |
CN114924819A (zh) | 水印合成方法、云桌面服务器和客户端及计算机可读存储介质 | |
JP3895751B2 (ja) | 画像表示装置およびその制御方法 | |
JP2005181637A (ja) | 同期表示システム、クライアント、サーバ、プログラム及び同期表示方法 | |
Aumüller | D5. 3.4–Remote hybrid rendering: revision of system and protocol definition for exascale systems | |
JP2002032262A (ja) | 情報処理装置および情報処理方法、情報処理システム、並びに記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060509 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081209 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090602 |