[go: up one dir, main page]

JP2018170588A - Model data distribution server and model data reception client - Google Patents

Model data distribution server and model data reception client Download PDF

Info

Publication number
JP2018170588A
JP2018170588A JP2017065266A JP2017065266A JP2018170588A JP 2018170588 A JP2018170588 A JP 2018170588A JP 2017065266 A JP2017065266 A JP 2017065266A JP 2017065266 A JP2017065266 A JP 2017065266A JP 2018170588 A JP2018170588 A JP 2018170588A
Authority
JP
Japan
Prior art keywords
model data
processing unit
decoding
encoding
decoding program
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
Application number
JP2017065266A
Other languages
Japanese (ja)
Inventor
昌彦 足立
Masahiko Adachi
昌彦 足立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kabuku Inc
Original Assignee
Kabuku Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kabuku Inc filed Critical Kabuku Inc
Priority to JP2017065266A priority Critical patent/JP2018170588A/en
Publication of JP2018170588A publication Critical patent/JP2018170588A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】サーバクライアント型のシステムにおいて、物体の形状を表すモデルデータの送受および画像処理におけるセキュリティ強度の向上を図る。【解決手段】サーバ2は、エンコード処理部2bと、デコードプログラム生成部2cと、データ送信部2dとを有する。エンコード処理部2bは、物体の形状を表すモデルデータをエンコードすることによって、エンコードモデルデータを生成する。デコードプログラム生成部2cは、エンコードモデルデータをデコードする処理手順を指示する一連の命令群によって構成され、かつ、クライアント側において、中央処理装置とは別に設けられた画像処理部によって実行されるデコードプログラムを生成する。データ送信部2dは、エンコードモデルデータと、デコードプログラムとをクライアントに送信する。【選択図】図2PROBLEM TO BE SOLVED: To improve security strength in transmission / reception of model data representing an object shape and image processing in a server-client type system. A server 2 has an encoding processing unit 2b, a decoding program generation unit 2c, and a data transmission unit 2d. The encoding processing unit 2b generates encoded model data by encoding model data representing the shape of an object. The decoding program generation unit 2c is composed of a series of instructions for instructing a processing procedure for decoding the encoded model data, and is a decoding program executed by an image processing unit provided separately from the central processing unit on the client side. To generate. The data transmission unit 2d transmits the encoding model data and the decoding program to the client. [Selection diagram] Fig. 2

Description

本発明は、物体の形状を表すモデルデータの送受を行うサーバおよびクライアントに関する。   The present invention relates to a server and a client that transmit and receive model data representing the shape of an object.

例えば、特許文献1には、CPU(メインプロセッサ装置)と、GPU(サブプロセッサ装置)とを備えたデータ処理システムにおいて、暗号化された画像データを復号する際のセキュリティ強度を高める構成が開示されている。具体的には、CPUは、暗号化された画像データを復号することなく、GPUに転送する。GPUは、暗号化された画像データを内部メモリ(デバイスメモリ)上に展開した上で、復号、デコード、表示などの処理を行う。暗号化された画像データは、GPUの内部で処理されるため、復号された画像データがCPUのメモリ上に展開されることはない。これにより、メモリダンプ等によって復号された画像データが取得されることを防止できるので、セキュリティ強度が向上する。   For example, Patent Document 1 discloses a configuration that increases the security strength when decrypting encrypted image data in a data processing system that includes a CPU (main processor device) and a GPU (sub processor device). ing. Specifically, the CPU transfers the encrypted image data to the GPU without decrypting it. The GPU expands the encrypted image data on an internal memory (device memory), and then performs processing such as decryption, decoding, and display. Since the encrypted image data is processed inside the GPU, the decrypted image data is not expanded on the memory of the CPU. As a result, it is possible to prevent image data decoded by a memory dump or the like from being acquired, and thus security strength is improved.

特開2012−151642号公報JP 2012-151642 A

特許文献1は、サーバクライアント型ではなくスタンドアロン型のシステムに関するものであって、サーバおよびクライアント間におけるデータの送受については記載されておらず、また、暗号化された画像データの復号処理についての詳細も記載されていない。   Patent Document 1 relates to a stand-alone system, not a server client type, and does not describe data transmission / reception between the server and the client, and details about decryption processing of encrypted image data. Is also not described.

本発明の目的は、サーバクライアント型のシステムにおいて、物体の形状を表すモデルデータの送受および画像処理におけるセキュリティ強度の向上を図ることである。   An object of the present invention is to improve the security strength in transmission / reception of model data representing the shape of an object and image processing in a server client type system.

かかる課題を解決すべく、第1の発明は、エンコード処理部と、デコードプログラム生成部と、データ送信部とを有するモデルデータ配信サーバを提供する。エンコード処理部は、物体の形状を表すモデルデータをエンコードすることによって、エンコードモデルデータを生成する。デコードプログラム生成部は、エンコードモデルデータをデコードする処理手順を指示する一連の命令群によって構成され、かつ、クライアント側において、中央処理装置とは別に設けられた画像処理部によって実行されるデコードプログラムを生成する。データ送信部は、エンコードモデルデータと、デコードプログラムとをクライアントに送信する。   In order to solve such a problem, the first invention provides a model data distribution server having an encoding processing unit, a decoding program generation unit, and a data transmission unit. The encoding processing unit generates encoded model data by encoding model data representing the shape of the object. The decode program generation unit is composed of a series of instructions for instructing a processing procedure for decoding the encode model data, and on the client side, a decode program executed by an image processing unit provided separately from the central processing unit Generate. The data transmission unit transmits the encoding model data and the decoding program to the client.

ここで、第1の発明において、上記エンコード処理部は、モデルデータの配信毎に異なる処理でモデルデータをエンコードし、上記デコードプログラム生成部は、配信対象毎に処理内容が異なるデコードプログラムを生成することが好ましい。また、上記デコードプログラムは、画像処理部によって実行されるシェーダプログラムであることが好ましい。   Here, in the first invention, the encoding processing unit encodes the model data by a different process for each distribution of the model data, and the decoding program generation unit generates a decoding program having a different processing content for each distribution target. It is preferable. The decoding program is preferably a shader program executed by the image processing unit.

第2の発明は、データ受信部と、画像処理部とを有するモデルデータ受信クライアントを提供する。データ受信部は、物体の形状を表すモデルデータをエンコードしたエンコードモデルデータと、エンコードモデルデータをデコードする処理手順を指示する一連の命令群によって構成されたデコードプログラムとを、サーバより受信する。画像処理部は、中央処理装置とは別に設けられていると共に、画像を表示する際、デコードプログラムを実行することによって、エンコードモデルデータをデコードして画像を生成する。   A second invention provides a model data receiving client having a data receiving unit and an image processing unit. The data receiving unit receives, from the server, encoded model data obtained by encoding model data representing the shape of an object, and a decoding program configured by a series of instructions for instructing a processing procedure for decoding encoded model data. The image processing unit is provided separately from the central processing unit, and generates an image by decoding the encoded model data by executing a decoding program when displaying the image.

ここで、第2の発明において、上記デコードプログラムは、サーバより配信されるモデルデータの配信対象毎に処理内容が異なることが好ましい。また、上記デコードプログラムは、画像処理部によって実行されるシェーダプログラムであることが好ましい。   Here, in the second invention, it is preferable that the decoding program has different processing contents for each distribution target of the model data distributed from the server. The decoding program is preferably a shader program executed by the image processing unit.

本発明によれば、サーバとクライアントとの間におけるモデルデータの送受を、モデルデータをエンコードしたエンコードモデルデータの形で行うことで、第三者による盗聴や改ざんを防止できる。また、クライアント側におけるエンコードモデルデータのデコードは、画像を表示する際、中央処理装置とは別に設けられた画像処理部がデコードプログラムを実行することによって行われる。ネットワーク上やメインメモリ上にデコード済のモデルデータを配置せず、モデルデータを表示する際(描画時)、その都度デコードすることで、セキュリティ強度の向上を図ることができる。   According to the present invention, eavesdropping and falsification by a third party can be prevented by transmitting and receiving model data between a server and a client in the form of encoded model data obtained by encoding model data. Also, the decoding of the encoding model data on the client side is performed by an image processing unit provided separately from the central processing unit executing a decoding program when displaying an image. The security strength can be improved by not decoding the model data on the network or on the main memory, but decoding the model data each time it is displayed (during drawing).

サーバクライアント型システムの全体図Overall view of server-client system サーバのブロック図Server block diagram モデルデータのエンコードの一例を示す図Diagram showing an example of model data encoding デコードプログラムの一例を示すフローチャートFlow chart showing an example of a decoding program クライアントのブロック図Client block diagram GPUにおける画像処理の流れの説明図Explanatory drawing of flow of image processing in GPU

図1は、本実施形態に係るサーバクライアント型システムの全体図である。このシステム1は、モデルデータを配信するサーバ2と、モデルデータを受信可能な多数のクライアント3とがインターネットを介して接続されている。サーバ2は、クライアント3からの要求に応じて、配信データとして、エンコード処理が施されたモデルデータ(以下、エンコードモデルデータという。)と、このエンコードデータをデコードするためのデコードプログラムとを配信する。本実施形態の特徴は、モデルデータをそのまま配信するのではなく、モデルデータにエンコード処理を施して内容を特定困難な形(エンコードモデルデータ)で配信することにある。この場合、エンコードモデルデータを受信したクライアント3は、そのままでは有意なデータを復元できないので、この復元を可能にすべく、サーバ2からクライアント3にデコードプログラムが渡される。配信データを受信したクライアント3は、画像の表示に際して、エンコードモデルデータをデコードプログラムによって復元して画像を生成し、この画像を表示する。   FIG. 1 is an overall view of a server client type system according to the present embodiment. In this system 1, a server 2 that distributes model data and a large number of clients 3 that can receive the model data are connected via the Internet. In response to a request from the client 3, the server 2 distributes model data that has been encoded (hereinafter referred to as “encoded model data”) and a decoding program for decoding the encoded data as distribution data. . The feature of this embodiment is not to distribute the model data as it is, but to perform an encoding process on the model data and distribute the contents in a form that is difficult to identify (encoded model data). In this case, since the client 3 receiving the encoded model data cannot restore significant data as it is, a decoding program is transferred from the server 2 to the client 3 in order to enable the restoration. When the client 3 receives the distribution data, when displaying the image, the client 3 generates the image by restoring the encoded model data using the decoding program, and displays the image.

ここで、「モデルデータ」とは、物体の形状を表すデータであって、二次元データ、三次元データのいずれであってもよい。三次元データは、三次元CADデータ(ファイルの拡張子としては、IGES、STEP、PARASOLID、SAT、JT、VDAなど)であってもよいし、3DCG(三次元コンピュータグラフィックス)データや、三次元の表面形状を多数の点で表現した点群データであってもよい。また、「デコードプログラム」とは、エンコードモデルデータをデコードするためのプログラムであって、エンコードモデルデータをデコードする処理手順を指示する一連の命令群によって構成されている。この「デコードプログラム」は、クライアント側において、中央処理装置とは別に設けられた画像処理部(典型的には、グラフィックス・プロセッシング・ユニット(以下、GPUという。))によって実行される   Here, the “model data” is data representing the shape of the object, and may be either two-dimensional data or three-dimensional data. The 3D data may be 3D CAD data (file extensions such as IGES, STEP, PARASOLID, SAT, JT, VDA, etc.), 3DCG (3D computer graphics) data, 3D It may be point cloud data that expresses the surface shape of the image by a number of points. The “decode program” is a program for decoding the encoded model data, and is composed of a series of instructions for instructing a processing procedure for decoding the encoded model data. This “decode program” is executed on the client side by an image processing unit (typically, a graphics processing unit (hereinafter referred to as GPU)) provided separately from the central processing unit.

なお、エンコードモデルデータおよびデコードプログラムの配信は、同時に行ってもよいが、セキュリティ強度の向上を図るべく、別個に配信してもよいし、所定のサイトにアクセスすることによって別ルートで入手するようにしてもよい。さらに、本実施形態に係るモデルデータの配信方法とともに、ユーザ認証や公開鍵暗号などといった周知のセキュリティ強化手法を併用すれば、データの送受におけるセキュリティの一層の強化を図ることができる。   The distribution of the encoded model data and the decoding program may be performed simultaneously, but may be distributed separately in order to improve the security strength, or may be obtained through a different route by accessing a predetermined site. It may be. Furthermore, when a well-known security enhancement technique such as user authentication or public key cryptography is used in combination with the model data distribution method according to the present embodiment, the security in data transmission / reception can be further enhanced.

図2は、サーバ2のブロック図である。このサーバ2は、データ要求受信部2aと、エンコード処理部2bと、デコードプログラム生成部2cと、データ送信部2dと、モデルデータ格納部2eとを主体に構成されている。   FIG. 2 is a block diagram of the server 2. The server 2 is mainly composed of a data request receiving unit 2a, an encoding processing unit 2b, a decoding program generating unit 2c, a data transmitting unit 2d, and a model data storage unit 2e.

データ要求受信部2aは、指定したモデルデータを取得する旨の要求をクライアント3から受信する。エンコード処理部2bは、モデルデータ格納部2eを参照して、クライアント3によって指定されたモデルデータを配信対象として取得する。そして、エンコード処理部2bは、配信対象となるモデルデータをエンコードプログラムを用いてエンコードすることによって、エンコードモデルデータを生成する。   The data request receiving unit 2a receives from the client 3 a request to acquire designated model data. The encoding processing unit 2b refers to the model data storage unit 2e and acquires model data designated by the client 3 as a distribution target. Then, the encoding processing unit 2b generates encoded model data by encoding model data to be distributed using an encoding program.

デコードプログラム生成部2cは、エンコード処理部2bからの指示を受けて、配信対象となるエンコードモデルデータをデコードするためのデコードプログラムを生成する。このデコードプログラムは、配信対象に対して適用されたエンコードプログラムとは逆の処理を行うものであり、エンコードプログラムが配信対象毎に異なる場合には、デコードプログラムも配信対象毎に固有のものとなる。データ送信部2dは、エンコード処理部2bによって生成されたエンコードモデルデータと、デコードプログラム生成部2cによって生成されたデコードプログラムとをクライアント3に送信する。   In response to the instruction from the encoding processing unit 2b, the decoding program generation unit 2c generates a decoding program for decoding the encoding model data to be distributed. This decoding program performs the reverse process of the encoding program applied to the distribution target. When the encoding program differs for each distribution target, the decoding program is also unique for each distribution target. . The data transmission unit 2d transmits the encoding model data generated by the encoding processing unit 2b and the decoding program generated by the decoding program generation unit 2c to the client 3.

図3は、モデルデータのエンコードの一例を示す図である。例えば、モデルデータが三次元座標よりなる多数の頂点Vによって構成されている場合、最もシンプルな例として、所定のエンコード規則にしたがって、X座標、Y座標、Z座標を入れ替えるスクランブルが考えられる。同図の例では、奇数番目の頂点V2n-1(nは自然数)については、X座標をZ座標に、Y座標をX座標に、Z座標とY座標にそれぞれ入れ替え、偶数番目の頂点V2nについては、X座標をY座標に、Y座標をZ座標に、Z座標をX座標にそれぞれ入れ替えている。また、座標値の入れ替えに代えて、頂点V同士を入れ替えてもよい。このようなエンコード処理を行うことで、有意なモデルデータは有意でないデータに変換される。ただし、これは一例であって、クライアント3側の画像処理部で演算可能な形態であれば、スクランブルに限らず、どのようなエンコード手法を用いてもよいことに留意すべきである。   FIG. 3 is a diagram illustrating an example of encoding of model data. For example, when the model data is composed of a large number of vertices V composed of three-dimensional coordinates, as the simplest example, scrambling is possible in which the X, Y, and Z coordinates are switched according to a predetermined encoding rule. In the example of the figure, for the odd-numbered vertex V2n-1 (n is a natural number), the X coordinate is replaced with the Z coordinate, the Y coordinate is replaced with the X coordinate, and the Z coordinate and the Y coordinate are respectively replaced. Replaces the X coordinate with the Y coordinate, the Y coordinate with the Z coordinate, and the Z coordinate with the X coordinate. Further, the vertices V may be exchanged instead of the coordinate values. By performing such an encoding process, significant model data is converted into insignificant data. However, this is merely an example, and it should be noted that any encoding method may be used as long as the image processing unit on the client 3 side can perform calculation, not limited to scrambling.

図4は、図3に示したエンコードに対応するデコードプログラムの一例を示すフローチャートである。このデコードプログラムは、配信対象となるエンコードモデルデータをデコードする処理手順を指示する一連の命令群によって構成されている。詳細については後述するが、本実施形態では、クライアント3側の画像処理部(例えばプログラマブルシェーダ)によって実行されるシェーダプログラムをデコードプログラムとして用いる。同図の例は、シェーダプログラムとして、頂点の座標変換方法を規定した頂点シェーダプログラムを用いるケースを示している。   FIG. 4 is a flowchart showing an example of a decoding program corresponding to the encoding shown in FIG. This decoding program is composed of a series of instructions for instructing a processing procedure for decoding encoding model data to be distributed. Although details will be described later, in this embodiment, a shader program executed by an image processing unit (for example, a programmable shader) on the client 3 side is used as a decoding program. The example in the figure shows a case in which a vertex shader program that defines a vertex coordinate conversion method is used as a shader program.

まず、ステップ1において、頂点フォーマットが定義される。つぎに、ステップ2において、どんな頂点情報を扱うのかをシェーダに教えるため、頂点シェーダで扱う頂点データが宣言される。   First, in step 1, a vertex format is defined. Next, in step 2, in order to tell the shader what kind of vertex information is to be handled, vertex data to be handled by the vertex shader is declared.

ステップ3以降は、シェーダプログラムの実体部分である。ステップ3において、頂点シェーダプログラムを作成し、画像処理部が理解できる形にコンパイルした上で、バッファにコンパイル後の命令が保持される。ステップ4において、シェーダプログラムバッファを用いて、頂点シェーダインターフェイス(シェーダハンドラ)が生成される。ステップ5において、頂点シェーダインターフェイスをストリームに設定し、固定機能パイプラインをプログラマブルパイプラインに切り替えて、レンダリングが行われる。   Step 3 and subsequent steps are the shader program entity. In step 3, a vertex shader program is created and compiled into a form that can be understood by the image processing unit, and the compiled instruction is held in the buffer. In step 4, a vertex shader interface (shader handler) is generated using the shader program buffer. In step 5, the vertex shader interface is set to a stream, the fixed function pipeline is switched to a programmable pipeline, and rendering is performed.

ステップ3以降の実体部分において、デコードの処理内容として、上述したエンコードとは逆の手順が記述される。例えば、図3に示したエンコードの場合、奇数番目の頂点V2n-1(nは自然数)については、Z座標をX座標に、X座標をY座標に、Y座標とZ座標にそれぞれ入れ替え、偶数番目の頂点V2nについては、Y座標をX座標に、Z座標をY座標に、X座標をZ座標にそれぞれ入れ替えるといった如くである。   In the actual part after step 3, the reverse procedure of the above-described encoding is described as the decoding processing content. For example, in the case of the encoding shown in FIG. 3, for odd-numbered vertices V2n-1 (n is a natural number), the Z coordinate is replaced with the X coordinate, the X coordinate is replaced with the Y coordinate, the Y coordinate and the Z coordinate, respectively. For the second vertex V2n, the Y coordinate is replaced with the X coordinate, the Z coordinate is replaced with the Y coordinate, and the X coordinate is replaced with the Z coordinate.

なお、セキュリティ強度の向上を図るという観点でいえば、モデルデータのエンコードは、配信対象毎にエンコード方法を変えることが好ましい。この場合、エンコード処理部2bは、モデルデータの配信毎に異なる処理でモデルデータをエンコードする。そして、デコードプログラム生成部2cは、エンコード処理部2bが採用したエンコード方法に応じて、配信対象毎に処理内容が異なるデコードプログラムを生成する。   From the viewpoint of improving the security strength, it is preferable that the encoding method of the model data is changed for each distribution target. In this case, the encoding processing unit 2b encodes the model data by a different process for each delivery of the model data. Then, the decode program generation unit 2c generates a decode program having different processing contents for each distribution target in accordance with the encoding method adopted by the encoding processing unit 2b.

図5は、クライアント3のブロック図である。このクライアント3は、CPU3a(中央演算装置)と、画像処理部としてのGPU3bと、データ受信部3cと、メインメモリなどの記憶装置3dと、GPU用メモリ3eと、表示装置3fとを主体に構成されている。記憶装置3dは、CPU3aがアクセス可能であり、GPU用メモリ3eは、GPU3bのみがアクセス可能である。   FIG. 5 is a block diagram of the client 3. The client 3 is composed mainly of a CPU 3a (central processing unit), a GPU 3b as an image processing unit, a data receiving unit 3c, a storage device 3d such as a main memory, a GPU memory 3e, and a display device 3f. Has been. The storage device 3d can be accessed by the CPU 3a, and the GPU memory 3e can be accessed only by the GPU 3b.

データ受信部3cは、サーバ2より送信されたエンコードモデルデータと、デコードプログラムとを受信する。これらのデータは記憶装置3dに記憶される。記憶装置3dに記憶されたモデルデータのエンコードされたままなので、記憶装置3dをダンプしても、有意なデータを取り出すことは困難である。GPU3bは、CPU3aとは別に設けられており、CPU3aの指示に基づいて、もっぱら画像処理を担当する。GPU3bは、表示装置3fに画像を表示する際、サーバ2より配信されたデコードプログラムを実行することによって、エンコードモデルデータをデコード、すなわち、有意なデータに復元して、画像を生成する。   The data receiving unit 3c receives the encoding model data and the decoding program transmitted from the server 2. These data are stored in the storage device 3d. Since the model data stored in the storage device 3d is still encoded, it is difficult to extract significant data even if the storage device 3d is dumped. The GPU 3b is provided separately from the CPU 3a, and is exclusively responsible for image processing based on instructions from the CPU 3a. When displaying an image on the display device 3f, the GPU 3b executes the decoding program distributed from the server 2 to decode the encoded model data, that is, restore the significant model data to generate an image.

図6は、GPU3bにおける画像処理の流れの説明図であり、一例として、マイクロソフト社が開発・提供しているゲームなどのマルチメディア向けAPIセットであるDirectX(特にDirectX9)の流れを示している。まず、「頂点データ」とは、ローカル座標で定義され頂点バッファに格納されている頂点データのことである。頂点バッファの中には、位置や頂点の色、テクスチャ座標などが設定されている。「プリミティブデータ」とは、基本的な図形、例えば点、線、三角ポリゴンなどで構成されている幾何学図形で、序列(インデックス)バッファとして定義される。頂点バッファおよびインデックスバッファは、両方あってもよいが、どちらか一方であっても構わない。これらの情報は、「テセレーション」に渡される。これは、ポリゴンを細かく分割する部分である。通常、この機能はサポートされないことも多く、何もせずに通り抜ける時もある。   FIG. 6 is an explanatory diagram of the flow of image processing in the GPU 3b. As an example, the flow of DirectX (particularly DirectX9), which is an API set for multimedia such as games developed and provided by Microsoft Corporation, is shown. First, “vertex data” is vertex data defined in local coordinates and stored in a vertex buffer. In the vertex buffer, positions, vertex colors, texture coordinates, and the like are set. “Primitive data” is a geometric figure composed of basic figures such as points, lines, and triangular polygons, and is defined as an order (index) buffer. Both the vertex buffer and the index buffer may be provided, but either one may be provided. These pieces of information are passed to “Tessellation”. This is a part for finely dividing the polygon. Usually this feature is often not supported, and sometimes you can get through without doing anything.

「固定機能パイプライン」および「プログラマブルパイプライン(頂点シェーダ)」は、三次元のポリゴンの情報を直方体の座標系に変換する。プログラマブルパイプラインについて、プログラマがこの頂点変換作業を独自の方法で記述する。これらのパイプラインを通った座標は直方体の座標系に凝縮される。視点を正面に設定した場合、二次元のスクリーン画像となるが、その際、必要のない情報が多く含まれることになる。そこで、「背面カリング」、「クリッピング」、「属性の評価」、「ラスタ化」などによって、無駄を省きながら、不要な情報が破棄される。以上の処理によって、頂点の変換およびスクリーンでの位置決めが終了する。   The “fixed function pipeline” and the “programmable pipeline (vertex shader)” convert three-dimensional polygon information into a rectangular coordinate system. For programmable pipelines, programmers describe this vertex transformation in a unique way. Coordinates passing through these pipelines are condensed into a rectangular coordinate system. When the viewpoint is set to the front, it becomes a two-dimensional screen image, but at this time, a lot of unnecessary information is included. Therefore, unnecessary information is discarded while eliminating waste by “rear culling”, “clipping”, “attribute evaluation”, “rasterization”, and the like. With the above processing, vertex conversion and screen positioning are completed.

以後の処理は頂点ではなく、描画される1点毎に各種の描画処理と判定とが行われる。最初の「ピクセルシェーダ」では、ラスタ化の段階で、ポリゴンをスクリーン上にどうやって描画するかが記述され、最終的には「ピクセルカラー」が出力される。プログラマはピクセルシェーダを独自にカスタマイズすることで、様々なエフェクトを発生させることができる。「テクスチャサーフェイス」は、テクスチャ情報のことであり、「テクスチャサンプラ」は、入力されたテクスチャに各種フィルタを適用する。これにより、ピクセルシェーダは、指定のテクスチャ座標(テクセル)に対して、適切な色を取り出すことができるようになる。   Subsequent processes are not vertices, but various drawing processes and determinations are performed for each drawn point. The first “pixel shader” describes how to draw a polygon on the screen at the stage of rasterization, and finally “pixel color” is output. Programmers can customize the pixel shader to generate various effects. The “texture surface” is texture information, and the “texture sampler” applies various filters to the input texture. As a result, the pixel shader can extract an appropriate color for the designated texture coordinate (texel).

ピクセルシェーダによりスクリーン上でのピクセルカラーが決まった後は、「アルファテスト」、「深度テスト」、「ステンシルテスト」、「フォグテスト」、「ブレンディング」などにより、描画するか否かの判定が行われる。これらの判定を経て、バッファにピクセルが描画される。   After the pixel color on the screen is determined by the pixel shader, whether to draw or not is determined by "alpha test", "depth test", "stencil test", "fog test", "blending", etc. Is called. After these determinations, pixels are drawn in the buffer.

プログラマブルシェーダは、GPU3bのうち、「プログラマブルパイプライン(頂点シェーダ)」と、「ピクセルシェーダ」の部分について、独自の命令群を差し込むものである。頂点シェーダおよびピクセルシェーダには、それぞれGPU3bに命令を与えるための命令群が予め用意されている。本実施形態では、クライアント3側の画像処理部3bが有するプログラマブルシェーダによって実行されるシェーダプログラムのうち、特に、頂点の座標変換方法を規定した頂点シェーダプログラム(図4参照)をデコードプログラムとして用いる。GPU3bは、このプログラムを実行することにより、エンコードモデルデータを逐次的にデコードしながら画像処理を行い、表示装置3fに画像を表示させる。なお、デコードプログラムとしては、頂点シェーダプログラムに代えて、ピクセルシェーダプログラムを用いることも可能である。   The programmable shader inserts a unique instruction group into the “programmable pipeline (vertex shader)” and “pixel shader” portion of the GPU 3b. In the vertex shader and the pixel shader, an instruction group for giving an instruction to the GPU 3b is prepared in advance. In the present embodiment, among the shader programs executed by the programmable shader of the image processing unit 3b on the client 3 side, a vertex shader program (see FIG. 4) that defines a vertex coordinate conversion method is used as a decoding program. By executing this program, the GPU 3b performs image processing while sequentially decoding the encoded model data, and displays an image on the display device 3f. As the decoding program, a pixel shader program can be used instead of the vertex shader program.

このように、本実施形態によれば、サーバ2とクライアント3との間におけるモデルデータの送受を、モデルデータをエンコードしたエンコードモデルデータの形で行うことで、第三者による盗聴や改ざんを防止できる。また、クライアント3側におけるエンコードモデルデータのデコードは、画像を表示する際、CPU3aとは別に設けられた画像処理部(典型的にはGPU3b)がデコードプログラムを実行することによって行われる。この画像処理は、メインメモリ等の記憶装置3dを用いることなく、GPU用メモリ3eを用いて行われる。このように、ネットワーク上やメインメモリ上にデコード済のモデルデータを配置せず、モデルデータを表示する際(描画時)、その都度デコードする。エンコードモデルデータは、表示画面(1フレーム分)を形成するために必要なデータのみが部分的に順次デコードされていき、GPU用メモリ3eに全てのデータが一括で展開されることはない。これにより、モデルデータの送受および画像処理におけるセキュリティ強度の向上を図ることができる。   As described above, according to the present embodiment, model data is transmitted and received between the server 2 and the client 3 in the form of encoded model data obtained by encoding model data, thereby preventing eavesdropping and falsification by a third party. it can. Further, the decoding of the encoding model data on the client 3 side is performed by an image processing unit (typically GPU 3b) provided separately from the CPU 3a when displaying an image, by executing a decoding program. This image processing is performed using the GPU memory 3e without using the storage device 3d such as the main memory. In this way, the model data that has already been decoded is not arranged on the network or the main memory, but is decoded each time the model data is displayed (during drawing). In the encoding model data, only data necessary for forming a display screen (for one frame) is partially decoded sequentially, and all data is not expanded in the GPU memory 3e at once. Thereby, it is possible to improve the security strength in the transmission / reception of model data and image processing.

なお、上述した実施形態では、図6のDirectX9を例に説明したが、最新のDirectX12では、これとは異なる環境が採用されており、ブラウザで動作するWebGLは、OpenGLベースであるため、図6とは環境が更に異なる。レンダリングパイプラインの詳細は環境に依存しており、本発明は、画像処理部としてのGPU3bの環境を問うものではない。本発明において重要なことは、画像処理部において、「頂点データをラスタライズして画面に表示するまでの間に、ユーザが作成した処理を挿入できる」ことである。この条件を満たす限り、本発明は、画像処理部の環境を何ら問うものではないことに留意すべきである。   In the above-described embodiment, the DirectX 9 in FIG. 6 has been described as an example. However, the latest DirectX 12 employs a different environment, and the WebGL operating in the browser is based on OpenGL. The environment is different. The details of the rendering pipeline depend on the environment, and the present invention does not ask the environment of the GPU 3b as the image processing unit. What is important in the present invention is that the user can insert a process created by the user before the vertex data is rasterized and displayed on the screen in the image processing unit. It should be noted that the present invention does not question the environment of the image processing unit as long as this condition is satisfied.

また、上述した実施形態では、「画像処理部で動作するプログラム(シェーダ)」として、頂点シェーダについて例示し、ピクセルシェーダについても適用可能である旨説明したが、本発明はこれに限定されるものではなく、両者を区別することについても、本質的な意味はない。例えば、統合型シェーダ・アーキテクチャのGPUでは、これらを区別しておらず、頂点シェーダやピクセルシェーダとは別のジオメトリシェーダ等が使用可能な環境も存在する。本発明は、クライアント3が備える画像処理部の環境下で動作する各種シェーダ(プログラム)を広く用いることができる。   In the above-described embodiment, the vertex shader is exemplified as the “program (shader) operating in the image processing unit”, and the pixel shader is also applicable. However, the present invention is not limited to this. However, there is no essential meaning to distinguish the two. For example, the GPU of the integrated shader architecture does not distinguish between these, and there is an environment in which a geometry shader other than the vertex shader and the pixel shader can be used. The present invention can widely use various shaders (programs) that operate in the environment of the image processing unit included in the client 3.

1 サーバクライアント型システム
2 サーバ
2a データ要求受信部
2b エンコード処理部
2c デコードプログラム生成部
2d データ送信部
2e モデルデータ格納部
3 クライアント
3a CPU
3b GPU
3c データ受信部
3d 記憶装置
3e GPU用メモリ
3f 表示装置
DESCRIPTION OF SYMBOLS 1 Server client type system 2 Server 2a Data request receiving part 2b Encoding process part 2c Decoding program production | generation part 2d Data transmission part 2e Model data storage part 3 Client 3a CPU
3b GPU
3c Data receiving unit 3d Storage device 3e GPU memory 3f Display device

Claims (6)

モデルデータ配信サーバにおいて、
物体の形状を表すモデルデータをエンコードすることによって、エンコードモデルデータを生成するエンコード処理部と、
前記エンコードモデルデータをデコードする処理手順を指示する一連の命令群によって構成され、かつ、クライアント側において、中央処理装置とは別に設けられた画像処理部によって実行されるデコードプログラムを生成するデコードプログラム生成部と、
前記エンコードモデルデータと、前記デコードプログラムとをクライアントに送信するデータ送信部と
を有することを特徴とするモデルデータ配信サーバ。
In the model data distribution server,
An encoding processing unit that generates encoded model data by encoding model data representing the shape of an object;
Decoding program generation that includes a series of instructions for instructing a processing procedure for decoding the encoding model data, and that generates a decoding program executed on the client side by an image processing unit provided separately from the central processing unit And
A model data distribution server comprising: a data transmission unit configured to transmit the encoding model data and the decoding program to a client.
前記デコードプログラムは、前記画像処理部によって実行されるシェーダプログラムであることを特徴とする請求項1に記載されたモデルデータ配信サーバ。   The model data distribution server according to claim 1, wherein the decoding program is a shader program executed by the image processing unit. 前記エンコード処理部は、前記モデルデータの配信毎に異なる処理で前記モデルデータをエンコードし、
前記デコードプログラム生成部は、前記配信対象毎に処理内容が異なる前記デコードプログラムを生成することを特徴とする請求項1または2に記載されたモデルデータ配信サーバ。
The encoding processing unit encodes the model data by a different process for each delivery of the model data,
The model data distribution server according to claim 1, wherein the decode program generation unit generates the decode program having different processing contents for each distribution target.
モデルデータ受信クライアントにおいて、
物体の形状を表すモデルデータをエンコードしたエンコードモデルデータと、前記エンコードモデルデータをデコードする処理手順を指示する一連の命令群によって構成されたデコードプログラムとを、前記サーバより受信するデータ受信部と、
中央処理装置とは別に設けられていると共に、画像を表示する際、前記デコードプログラムを実行することによって、前記エンコードモデルデータをデコードして前記画像を生成する画像処理部と
を有することを特徴とするモデルデータ受信クライアント。
In the model data receiving client,
A data receiving unit that receives from the server, an encoded model data that encodes model data representing the shape of an object, and a decoding program configured by a series of instructions that instruct a processing procedure for decoding the encoded model data;
An image processing unit that is provided separately from the central processing unit and that generates the image by decoding the encoded model data by executing the decoding program when the image is displayed. Model data receiving client.
前記デコードプログラムは、前記画像処理部によって実行されるシェーダプログラムであることを特徴とする請求項4に記載されたモデルデータ受信クライアント。   The model data receiving client according to claim 4, wherein the decoding program is a shader program executed by the image processing unit. 前記デコードプログラムは、前記サーバより配信される前記モデルデータの配信対象毎に処理内容が異なることを特徴とする請求項4または5に記載されたモデルデータ受信クライアント。   6. The model data receiving client according to claim 4, wherein the decoding program has different processing contents for each distribution target of the model data distributed from the server.
JP2017065266A 2017-03-29 2017-03-29 Model data distribution server and model data reception client Pending JP2018170588A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017065266A JP2018170588A (en) 2017-03-29 2017-03-29 Model data distribution server and model data reception client

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017065266A JP2018170588A (en) 2017-03-29 2017-03-29 Model data distribution server and model data reception client

Publications (1)

Publication Number Publication Date
JP2018170588A true JP2018170588A (en) 2018-11-01

Family

ID=64018891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017065266A Pending JP2018170588A (en) 2017-03-29 2017-03-29 Model data distribution server and model data reception client

Country Status (1)

Country Link
JP (1) JP2018170588A (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11353462A (en) * 1998-06-09 1999-12-24 Monolith:Kk Method for encrypting and decrypting three-dimensional shape data
JP2008017489A (en) * 2006-07-06 2008-01-24 Accenture Global Services Gmbh Encryption and decryption in graphics processing unit
JP2013238855A (en) * 2012-05-14 2013-11-28 Thomson Licensing Methods and devices for protecting graphical object and methods and devices for unprotecting graphical object
JP2014531175A (en) * 2011-10-28 2014-11-20 ダンマークス・テクニスケ・ユニヴェルシテット Dynamic encryption method
JP2016085503A (en) * 2014-10-23 2016-05-19 日本電気株式会社 Information processing apparatus, information processing method, and information processing program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11353462A (en) * 1998-06-09 1999-12-24 Monolith:Kk Method for encrypting and decrypting three-dimensional shape data
JP2008017489A (en) * 2006-07-06 2008-01-24 Accenture Global Services Gmbh Encryption and decryption in graphics processing unit
JP2014531175A (en) * 2011-10-28 2014-11-20 ダンマークス・テクニスケ・ユニヴェルシテット Dynamic encryption method
JP2013238855A (en) * 2012-05-14 2013-11-28 Thomson Licensing Methods and devices for protecting graphical object and methods and devices for unprotecting graphical object
JP2016085503A (en) * 2014-10-23 2016-05-19 日本電気株式会社 Information processing apparatus, information processing method, and information processing program

Similar Documents

Publication Publication Date Title
JP4987988B2 (en) Image compression and / or decompression
EP3673463B1 (en) Rendering an image from computer graphics using two rendering computing devices
CN101685548B (en) Fragment shader for a hybrid raytracing system and method of operation
CN103946895B (en) The method for embedding in presentation and equipment based on tiling block
TWI328200B (en) Systems and methods for providing controllable texture sampling,and computer readable medium for recording related instructions thereon
JP5847159B2 (en) Surface patch tessellation in tile-based rendering systems
EP3185214B1 (en) Streaming of hybrid geometry and image based 3d objects
KR20210151114A (en) Hybrid rendering
CN111754381B (en) Graphics rendering method, device and computer readable storage medium
US7463269B2 (en) Texture data compression and rendering in 3D computer graphics
KR102258100B1 (en) Method and apparatus for processing texture
JP2019012535A (en) Gradient adjustment for texture mapping to non-orthonormal grid
KR102477264B1 (en) Method and apparatus for processing compressed texture
CN106408635B (en) Graphic processing system, method of operating the same, and computer-readable storage medium
KR20060101223A (en) Method and system for generating 2D transition using 3D model
CN102306391A (en) OpenGL (open graphics library)-based inverted image display processing device and method
JP2018101415A (en) Method, apparatus, computer program and recording medium for determining LOD for texturing a cube map
CN113076152B (en) Rendering method and device, electronic equipment and computer readable storage medium
KR20160032597A (en) Method and apparatus for processing texture
CN103413344A (en) 3D frame animation realization method, device and terminal
US8854368B1 (en) Point sprite rendering in a cross platform environment
WO2016040538A1 (en) Convex polygon clipping during rendering
JP2018170588A (en) Model data distribution server and model data reception client
JP2016009374A (en) Information processing apparatus, method, and program
WO2022135050A1 (en) Rendering method, device, and system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210511

A603 Late request for extension of time limit during examination

Free format text: JAPANESE INTERMEDIATE CODE: A603

Effective date: 20210511

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211006