図面 (/)

技術 画像処理装置、画像処理プログラム、及び、画像処理方法

出願人 株式会社ディー・エヌ・エー
発明者 坊野博典
出願日 2018年6月21日 (2年6ヶ月経過) 出願番号 2018-117721
公開日 2019年12月26日 (11ヶ月経過) 公開番号 2019-219985
状態 特許登録済
技術分野 画像処理 イメージ生成
主要キーワード 変換種別 アフィン行列 プレイヤ入力 各描画要素 度行列 末端ノード 描画要素 タイル番号
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2019年12月26日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

制御部と描画処理部を含む画像処理装置において、描画処理に係る制御部の負荷を低減する。

解決手段

CPU18は、木構造40において、根ノードであるノード42rから、描画対象のtile0に対応するノード42tへ向かう経路に含まれる複数のノード42であって、平行移動及び拡大縮小のいずれかを示すアフィン行列Lが定義された上位ノード群(42r、42f、42)を識別する。CPU18は、上位ノード群の複数のアフィン行列の上位行列積Gbg=Lroot・Lfield・Lbgを演算し、上位行列積Gbg、及び、下位ノード42tに定義されたアフィン行列Ltile0をGPU20に送信する。GPU20は、上位行列積Gbgと下位ノードのアフィン行列Ltile0との行列積Gtile0=Gbg・Ltile0を演算し、行列積Gtile0に基づいてtile0の描画位置を特定する。

概要

背景

従来、表示部に表示させる画面描画処理を行う画像処理装置が知られている。画像処理装置は、ユーザからの入力の受付を含む一般的な処理及び描画処理を行う制御部(例えばCPU(Central Processing Unit))と、描画処理を専門に行う描画処理部(例えばGPU(Graphics Processing Unit))とを含んで構成される場合がある。

例えば、特許文献1には、ゲームを提供するゲーム装置であって、ゲームの進行処理あるいはユーザがタッチしているタッチパネルの位置を取得する処理などを含む処理を実行するCPUと、ゲーム画面の描画処理を行うGPUを含むゲーム装置が開示されている。

概要

制御部と描画処理部を含む画像処理装置において、描画処理に係る制御部の負荷を低減する。CPU18は、木構造40において、根ノードであるノード42rから、描画対象のtile0に対応するノード42tへ向かう経路に含まれる複数のノード42であって、平行移動及び拡大縮小のいずれかを示すアフィン行列Lが定義された上位ノード群(42r、42f、42)を識別する。CPU18は、上位ノード群の複数のアフィン行列の上位行列積Gbg=Lroot・Lfield・Lbgを演算し、上位行列積Gbg、及び、下位ノード42tに定義されたアフィン行列Ltile0をGPU20に送信する。GPU20は、上位行列積Gbgと下位ノードのアフィン行列Ltile0との行列積Gtile0=Gbg・Ltile0を演算し、行列積Gtile0に基づいてtile0の描画位置を特定する。

目的

本発明の目的は、制御部と描画処理部を含む画像処理装置において、描画処理に係る制御部の負荷を低減することにある

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数の描画要素に対応する複数のノードを含み、各ノードにアフィン行列が定義された木構造で表される画面描画処理を行う画像処理装置であって、前記木構造の根ノード表示画像全体に対応し、前記根ノードに定義された前記アフィン行列は、表示部上における前記表示画像全体のアフィン変換を表し、前記根ノード以外の各ノードに定義された前記アフィン行列は、親ノードに対応する前記描画要素に対する相対的な位置関係においての、当該ノードに対応する前記描画要素のアフィン変換を表し、前記画像処理装置は、前記根ノードからの経路に含まれる複数の前記ノードから構成される上位ノード群であって、平行移動及び拡大縮小のいずれかを示すアフィン行列が定義されたノードで構成される上位ノード群に定義された複数の前記アフィン行列の積である上位行列積を演算し、前記上位行列積と、前記上位ノード群の末端ノード子ノードから、前記末端ノードの下位にある対象ノードまでの経路に含まれる1又は複数の下位ノードに定義された1又は複数の前記アフィン行列を描画処理部へ送信する制御部と、前記上位行列積と、前記下位ノードに定義された前記アフィン行列との積を演算することで、前記対象ノードに対応する前記描画要素の前記表示部上の描画位置を特定して、当該描画要素の描画を行う描画処理部と、を備えることを特徴とする画像処理装置。

請求項2

前記木構造に含まれる複数のノードに定義されたアフィン行列を解析することで、前記上位ノード群を特定する上位ノード群特定部、をさらに備えることを特徴とする請求項1に記載の画像処理装置。

請求項3

前記上位ノード群特定部は、前記木構造の変動に応じて、前記上位ノード群に含まれるノードを変更する、ことを特徴とする請求項2に記載の画像処理装置。

請求項4

前記表示部上の入力位置を指定した入力をユーザから受け付ける入力部と、をさらに備え、前記制御部は、前記上位行列積と、前記下位ノードに定義された前記アフィン行列との積の逆行列に基づいて、各前記ノードに対応する前記描画要素における前記入力位置の相対位置を演算し、演算された相対位置に基づいて、前記入力位置に対応する前記ノードを特定する、ことを特徴とする請求項1から3のいずれか1項に記載の画像処理装置。

請求項5

複数の描画要素に対応する複数のノードを含み、各ノードにアフィン行列が定義された木構造で表される画面の描画処理を行う画像処理プログラムであって、前記木構造の根ノードは表示画像全体に対応し、前記根ノードに定義された前記アフィン行列は、表示部上における前記表示画像全体のアフィン変換を表し、前記根ノード以外の各ノードに定義された前記アフィン行列は、親ノードに対応する前記描画要素に対する相対的な位置関係においての、当該ノードに対応する前記描画要素のアフィン変換を表し、コンピュータを、前記根ノードからの経路に含まれる複数の前記ノードから構成される上位ノード群であって、平行移動及び拡大縮小のいずれかを示すアフィン行列が定義されたノードで構成される上位ノード群に定義された複数の前記アフィン行列の積である上位行列積を演算し、前記上位行列積と、前記上位ノード群の末端ノードの子ノードから、前記末端ノードの下位にある対象ノードまでの経路に含まれる1又は複数の下位ノードに定義された1又は複数の前記アフィン行列を描画処理部へ送信する制御部と、前記上位行列積と、前記下位ノードに定義された前記アフィン行列との積を演算することで、前記対象ノードに対応する前記描画要素の前記表示部上の描画位置を特定して、当該描画要素の描画を行う描画処理部と、として機能させることを特徴とするプログラム

請求項6

複数の描画要素に対応する複数のノードを含み、各ノードにアフィン行列が定義された木構造で表される画面の描画処理を行う画像処理方法であって、前記木構造の根ノードは表示画像全体に対応し、前記根ノードに定義された前記アフィン行列は、表示部上における前記表示画像全体のアフィン変換を表し、前記根ノード以外の各ノードに定義された前記アフィン行列は、親ノードに対応する前記描画要素に対する相対的な位置関係においての、当該ノードに対応する前記描画要素のアフィン変換を表し、前記画像処理方法は、制御部が、前記根ノードからの経路に含まれる複数の前記ノードから構成される上位ノード群であって、平行移動及び拡大縮小のいずれかを示すアフィン行列が定義されたノードで構成される上位ノード群に定義された複数の前記アフィン行列の積である上位行列積を演算し、前記上位行列積と、前記上位ノード群の末端ノードの子ノードから、前記末端ノードの下位にある対象ノードまでの経路に含まれる1又は複数の下位ノードに定義された1又は複数の前記アフィン行列を描画処理部へ送信する上位行列積演算テップと、描画処理部が、前記上位行列積と、前記下位ノードに定義された前記アフィン行列との積を演算することで、前記対象ノードに対応する前記描画要素の前記表示部上の描画位置を特定して、当該描画要素の描画を行う描画処理ステップと、を含むことを特徴とする画像処理方法。

技術分野

0001

本発明は、画像処理装置画像処理プログラム、及び、画像処理方法に関する。

背景技術

0002

従来、表示部に表示させる画面描画処理を行う画像処理装置が知られている。画像処理装置は、ユーザからの入力の受付を含む一般的な処理及び描画処理を行う制御部(例えばCPU(Central Processing Unit))と、描画処理を専門に行う描画処理部(例えばGPU(Graphics Processing Unit))とを含んで構成される場合がある。

0003

例えば、特許文献1には、ゲームを提供するゲーム装置であって、ゲームの進行処理あるいはユーザがタッチしているタッチパネルの位置を取得する処理などを含む処理を実行するCPUと、ゲーム画面の描画処理を行うGPUを含むゲーム装置が開示されている。

先行技術

0004

特開2011−78649号公報

発明が解決しようとする課題

0005

制御部と描画処理部を含む画像処理装置においては、描画処理は、制御部と描画処理部の双方で実行されるのが一般的である。通常、描画処理の処理能力は、制御部よりも描画処理部の方が優れている(高速に処理できる)。また、制御部は、描画処理以外にも種々の処理(入力検出処理など)を行う必要がある。したがって、描画処理において制御部の負荷が高いと、制御部がボトルネックとなって描画処理が遅れるなどの不具合が生じ得る。

0006

このことに鑑み、制御部と描画処理部を含む画像処理装置において、描画処理に係る制御部の負荷を低減させたいという要望がある。

0007

描画処理に係る制御部の負荷を低減させるべく、描画処理の全てを描画処理部に行わせることが考えられる。しかしながら、描画処理の全てを描画処理部が行う場合、制御部が画像に含まれる各描画要素(例えばオブジェクト)の描画位置を把握できなくなるという問題が生じ得る。制御部が各描画要素の描画位置を把握できないと、ユーザが表示上の入力位置を指定した上で入力を行った場合に、入力位置に描画された描画要素ユーザ指定の描画要素)を制御部が識別できなくなるなどの問題が生じる。なお、描画処理の全てを描画処理部に行わせた上で、描画処理部から各描画要素の位置を制御部に逐一知らせることも考えられるが、これを行うと、制御部と描画処理部との間の通信負荷が増大し、かえって描画処理が遅くなることも考えられるため適切ではない。

0008

本発明の目的は、制御部と描画処理部を含む画像処理装置において、描画処理に係る制御部の負荷を低減することにある。

課題を解決するための手段

0009

本発明は、複数の描画要素に対応する複数のノードを含み、各ノードにアフィン行列が定義された木構造で表される画面の描画処理を行う画像処理装置であって、前記木構造の根ノード表示画像全体に対応し、前記根ノードに定義された前記アフィン行列は、表示部上における前記表示画像全体のアフィン変換を表し、前記根ノード以外の各ノードに定義された前記アフィン行列は、親ノードに対応する前記描画要素に対する相対的な位置関係においての、当該ノードに対応する前記描画要素のアフィン変換を表し、前記画像処理装置は、前記根ノードからの経路に含まれる複数の前記ノードから構成される上位ノード群であって、平行移動及び拡大縮小のいずれかを示すアフィン行列が定義されたノードで構成される上位ノード群に定義された複数の前記アフィン行列の積である上位行列積を演算し、前記上位行列積と、前記上位ノード群の末端ノード子ノードから、前記末端ノードの下位にある対象ノードまでの経路に含まれる1又は複数の下位ノードに定義された1又は複数の前記アフィン行列を描画処理部へ送信する制御部と、前記上位行列積と、前記下位ノードに定義された前記アフィン行列との積を演算することで、前記対象ノードに対応する前記描画要素の前記表示部上の描画位置を特定して、当該描画要素の描画を行う描画処理部と、を備えることを特徴とする画像処理装置である。

0010

望ましくは、前記木構造に含まれる複数のノードに定義されたアフィン行列を解析することで、前記上位ノード群を特定する上位ノード群特定部、をさらに備えることを特徴とする。

0011

望ましくは、前記上位ノード群特定部は、前記木構造の変動に応じて、前記上位ノード群に含まれるノードを変更する、ことを特徴とする。

0012

望ましくは、前記表示部上の入力位置を指定した入力をユーザから受け付ける入力部と、をさらに備え、前記制御部は、前記上位行列積と、前記下位ノードに定義された前記アフィン行列との積の逆行列に基づいて、各前記ノードに対応する前記描画要素における前記入力位置の相対位置を演算し、演算された相対位置に基づいて、前記入力位置に対応する前記ノードを特定する、ことを特徴とする。

0013

また、本発明は、複数の描画要素に対応する複数のノードを含み、各ノードにアフィン行列が定義された木構造で表される画面の描画処理を行う画像処理プログラムであって、前記木構造の根ノードは表示画像全体に対応し、前記根ノードに定義された前記アフィン行列は、表示部上における前記表示画像全体のアフィン変換を表し、前記根ノード以外の各ノードに定義された前記アフィン行列は、親ノードに対応する前記描画要素に対する相対的な位置関係においての、当該ノードに対応する前記描画要素のアフィン変換を表し、コンピュータを、前記根ノードからの経路に含まれる複数の前記ノードから構成される上位ノード群であって、平行移動及び拡大縮小のいずれかを示すアフィン行列が定義されたノードで構成される上位ノード群に定義された複数の前記アフィン行列の積である上位行列積を演算し、前記上位行列積と、前記上位ノード群の末端ノードの子ノードから、前記末端ノードの下位にある対象ノードまでの経路に含まれる1又は複数の下位ノードに定義された1又は複数の前記アフィン行列を描画処理部へ送信する制御部と、前記上位行列積と、前記下位ノードに定義された前記アフィン行列との積を演算することで、前記対象ノードに対応する前記描画要素の前記表示部上の描画位置を特定して、当該描画要素の描画を行う描画処理部と、として機能させることを特徴とするプログラムである。

0014

また、本発明は、複数の描画要素に対応する複数のノードを含み、各ノードにアフィン行列が定義された木構造で表される画面の描画処理を行う画像処理方法であって、前記木構造の根ノードは表示画像全体に対応し、前記根ノードに定義された前記アフィン行列は、表示部上における前記表示画像全体のアフィン変換を表し、前記根ノード以外の各ノードに定義された前記アフィン行列は、親ノードに対応する前記描画要素に対する相対的な位置関係においての、当該ノードに対応する前記描画要素のアフィン変換を表し、前記画像処理方法は、制御部が、前記根ノードからの経路に含まれる複数の前記ノードから構成される上位ノード群であって、平行移動及び拡大縮小のいずれかを示すアフィン行列が定義されたノードで構成される上位ノード群に定義された複数の前記アフィン行列の積である上位行列積を演算し、前記上位行列積と、前記上位ノード群の末端ノードの子ノードから、前記末端ノードの下位にある対象ノードまでの経路に含まれる1又は複数の下位ノードに定義された1又は複数の前記アフィン行列を描画処理部へ送信する上位行列積演算テップと、描画処理部が、前記上位行列積と、前記下位ノードに定義された前記アフィン行列との積を演算することで、前記対象ノードに対応する前記描画要素の前記表示部上の描画位置を特定して、当該描画要素の描画を行う描画処理ステップと、を含むことを特徴とする画像処理方法である。

発明の効果

0015

本発明によれば、制御部と描画処理部を含む画像処理装置において、描画処理に係る制御部の負荷を低減することができる。

図面の簡単な説明

0016

本実施形態に係る画像処理装置の構成概略図である。
本実施形態に係るゲーム画面の例を示す図である。
ゲーム画面の階層構造を示す図である。
ゲーム画面を構成する各ノードの木構造を示す概念図である。
アフィン行列を示す図である。
上位行列積を生成する範囲を示す概念図である。
平行移動又は拡大縮小を行うアフィン行列を示す図である。
本実施形態の描画処理の流れを示すフローチャートである。
本実施形態の入力処理の流れを示すフローチャートである。

実施例

0017

以下、本発明の実施形態について説明する。

0018

<画像処理装置の構成概略>
図1には、本実施形態に係る画像処理装置10の構成概略図が示されている。本実施形態では、画像処理装置10はスマートフォンタブレット端末などの携帯端末であるが、画像処理装置10としては、以下に説明する機能を発揮可能な限りにおいてどのような装置であってもよい。

0019

画像処理装置10は、表示部12に表示される画面の描画処理を行う。本実施形態では、画像処理装置10はゲームを提供するゲーム装置であり、画像処理装置10が処理する画面はゲーム画面であるが、以下に説明する木構造で表される画面である限り、画像処理装置10が処理する画面はゲーム画面に限るものではない。

0020

表示部12は、例えば液晶ディスプレイなどを含んで構成される。表示部12には、画像処理装置10で実行されるゲームに関するゲーム画面などの種々の画面が表示される。

0021

入力部14は、タッチパネルを含んで構成される。あるいは、画像処理装置10がパーソナルコンピュータである場合には、入力部14としてマウスキーボード、又はポインティングデバイスなどが含まれていてもよい。本実施形態では、表示部12としての液晶ディスプレイがタッチパネルとなっている。つまり、画像処理装置10においては、ユーザ(ゲームのプレイヤ)は、ゲーム画面が表示されたタッチパネルに対して入力操作することが可能となっている。特に、入力部14は、ユーザからの、表示部12上の入力位置を指定した入力を受け付ける。入力部14に対するプレイヤの操作を示す入力信号は後述のCPU18に送られる。

0022

記憶部16は、例えばRAM(Random Access Memory)、ROM(Read Only Memory)、あるいはハードディスクなどを含んで構成される。記憶部16には、画像処理装置10の各部を動作させるための画像処理プログラムが記憶される。本実施形態においては、画像処理装置10上でゲームが動作するため、当該画像処理プログラムはゲームプログラムである。また、記憶部16には、各種の制御データあるいは各種の処理結果データなどが記憶される。

0023

制御部としてのCPU18は、記憶部16に記憶された画像処理プログラムに従って、画像処理装置10の各部を制御する。また、CPU18は、ゲームプログラム(画像処理プログラム)に従ってゲームの進行処理を行い、ゲーム処理において入力部14へのプレイヤ入力操作の検出(入力位置の検出あるいは操作対象ゲーム内の描画要素(例えばプレイヤキャラクタなどのオブジェクト)の特定など)を行う。

0024

また、CPU18は画面の描画処理を行う。本明細書における描画処理とは、レンダリング処理のみならず、描画位置の特定処理を含む概念である。本実施形態では、CPU18は、描画処理のうち、描画位置の特定処理の一部を実行する。

0025

描画処理部としてのGPU20は、画面の描画処理を行う。描画処理において、GPU20はCPU18よりも高速に処理可能となっている。GPU20は、描画処理のうち、描画位置の特定処理の一部、及びレンダリング処理を実行する。

0026

<画面の論理的構成
図2には、表示部12に表示されるゲーム画面の一例が示されている。図2に示されたゲーム画面を参照しつつ、画像処理装置10で処理される画面の論理的構成を説明する。

0027

ゲーム画面は、複数の描画要素30を含んで構成される。具体的には、フィールド30a、フィールド30aを構成するバックグラウンド30b及び背景オブジェクト30c(草や木など)、バックグラウンド30bを構成する複数のタイル30d、並びに、プレイヤキャラクタ30e及び敵キャラクタ30fを含んで構成される。さらに、ゲーム画面は、ヘッダ30h及びフッタ30iを含むGUI30gを含んで構成される。

0028

図3には、各描画要素30が区分けされて図示されている。すなわち、図3(a)にはバックグラウンド30b及びバックグラウンド30bを構成するタイル30dが図示され、図3(b)には背景オブジェクト30cが図示され、図3(c)にはプレイヤキャラクタ30e及び敵キャラクタ30fが図示され、図3(d)にはGUI30gが図示されている。

0029

なお、各タイル30dは、複数画素分面積を有した領域となっている。タイル30dの形状は、適宜設定されてよいが、本実施形態では菱形となっている。複数のタイル30dが敷き詰められることによってバックグラウンド30bが形成されている。

0030

本実施形態におけるゲーム画面の論理的構成は、図4に示されるような木構造40で表すことができる。木構造40には、複数のノード42が含まれる。各ノード42は、ゲーム画面に含まれる各描画要素30に対応している。例えば、ノード42rは表示画像全体に対応し、ノード42fはフィールド30aに対応し、ノード42gはGUI30gに対応し、ノード42bはバックグラウンド30bに対応し、ノード42tはタイル30dに対応している。

0031

木構造40においては、各描画要素30の階層構造が表現されている。例えば、表示画像全体(ルート)に対応するノード42rが根ノードであり、ノード42rの子ノードとしてフィールド30aに対応するノード42fが定義されている。さらに、ノード42fの子ノードとしてバックグラウンド30bに対応するノード42bが定義され、ノード42bの子ノードとして複数のタイル30dに対応する複数のノード42tが定義されている。

0032

根ノードであるノード42rには、表示部12上における表示画像全体のアフィン変換を示すアフィン行列Lrootが定義されている。また、根ノード(ノード42r)以外の各ノード42には、親ノードに対応する描画要素30に対する相対的な位置関係における、当該ノード42に対応する描画要素のアフィン変換を表すアフィン行列L(以下、「親ノードに対する相対アフィン行列L」と記載する場合がある)が定義されている。アフィン変換とは、変換対象(本実施形態では描画要素30)を平行移動、拡大縮小、回転、あるいはスキューさせる処理である。なお、本実施形態では、各ノード42のアフィン行列Lは、その親ノードに対応する描画要素30の左上隅画素に対する相対位置を表すものとなっている。

0033

例えば、ノード42fには、ノード42rに対応する表示画像全体に対する相対的な位置関係におけるフィールド30aのアフィン変換を示すアフィン行列Lfieldが定義され、ノード42bには、ノード42fに対応するフィールド30aに対する相対的な位置関係におけるバックグラウンド30bのアフィン変換を示すアフィン行列Lbgが定義され、ノード42tには、ノード42bに対応するバックグラウンド30bに対する相対的な位置関係におけるタイル30dのアフィン変換を示すアフィン行列Ltileが定義されている。

0034

図5には、アフィン行列Lの一般式が示されている。図5に示されたアフィン行列Lの変数a、b、c、d、tx、及びtyの値を適宜決定することで、アフィン変換の変換種別を決定することができる。例えば、a=b=c=d=0とすると、x方向にtx分移動し、y方向にty分移動する平行移動を示すアフィン行列Lとなる。また、b=c=tx=ty=0とすると、x方向にa倍し、y方向にd倍する拡大縮小を示すアフィン行列Lとなる。また、tx=ty=0とし、a=d=cosθ、b=sinθ、c=−sinθとすると、回転を示すアフィン行列Lとなる。また、tx=ty=0とし、a=cosθy、b=sinθy、c=−sinθx、d=conθxとすると、スキューを示すアフィン行列Lとなる。

0035

上述のように、各ノード42に定義されたアフィン行列Lは、親ノードに対する相対アフィン行列Lであるが、子ノードに定義されたアフィン行列Lと孫ノードに定義されたアフィン行列Lとの積は、親ノードに対応する描画要素30に対する相対的な位置関係における、孫ノード42に対応する描画要素のアフィン変換を表すアフィン行列Lとなる。例えば、ノード42fに定義されたアフィン行列Lfieldとノード42bに定義されたアフィン行列Lbgの積Lfield・Lbgは、ノード42rに対応する表示画像全体に対するバックグラウンド30bの相対的な位置関係(すなわち表示部12の絶対位置となる)においてのアフィン変換を示す。

0036

図4に示すように、画面の構造を階層化した上で、各ノード42に対して、親ノードに対する相対アフィン行列Lを定義することで、画面の描画をより効率的に行うことができる。例えば、フィールド30aが平行移動した場合、バックグラウンド30bあるいは各タイル30dも平行移動されることになるが、フィールド30aに対するバックグラウンド30bあるいは各タイル30dの相対位置は変動しない。したがって、この場合、アフィン行列Lfieldのみを変更すればよく、ノード42fの下位にある各ノード42b、42tに対応するアフィン行列LbgあるいはLtileを変更する必要がない。

0037

<従来の描画処理及び入力処理>
本実施形態のゲーム画面における描画処理及び入力処理を説明する前に、従来の描画処理及び入力処理について説明する。まず、従来における描画要素30の描画処理について説明する。ここでは、特定のタイル(tile0)を描画する場合を例に説明する。

0038

描画要素30の描画処理を行うにあたり、当該描画要素30を描画する描画位置を特定する必要がある。描画位置とは、表示部12上の絶対位置であり、すなわち画素の座標である。上述のように、ゲーム画面の論理的構成を示す木構造40においては、各描画要素30は、親ノードに対応する描画要素30に対する相対位置で表されているため、CPU18は、木構造40に基づいて、描画したい描画要素30の描画位置を特定する。

0039

描画要素30の描画位置は、当該描画要素30に対応するノード42からルートに対応するノード42r(木構造40の根ノード)までの各ノード42に定義されている複数のアフィン行列Lの積で表される。したがって、tile0の描画位置は、以下の式で算出されるGtile0で表される。
Gtile0=Lroot・Lfield・Lbg・Ltile0

0040

CPU18は、算出した行列積Gtile0をGPU20に送信し、GPU20は、行列積Gtile0が表す座標の画素に対してtile0の描画を行う。

0041

このように、従来、CPU18は、描画要素30を描画する度に、当該描画要素30について行列積Gを演算してGPU20に送信していた。複数のタイルを描画する際に、行列積Gbg=Lroot・Lfield・Lbgを保持しておき、Gbgと、各タイルに対応するLtile*との積を演算するなどの演算方法を用いることで演算量を低減させることができるが、描画要素30を描画する度に行列積Gを演算する必要があることは変わらず、また、行列積Gの演算は比較的処理量が多くなることから、描画処理(特に描画位置の特定処理)におけるCPU18の負荷が大きかった。なお、フィールド30aが表示部12上を平行移動した場合、あるいはバックグラウンド30bがフィールド30aに対して平行移動した場合などは、LfieldあるいはLbgが変化するため、CPU18は、再度行列積Gbgを演算する必要がある。

0042

木構造40の管理をGPU20に任せ、行列積Gの演算をGPU20に行わせた場合、ユーザからの入力処理を受け付けるCPU18が各描画要素30の描画位置を把握できなくなってしまう。また、GPU20から各描画要素30の描画位置をCPU18に逐一送信する処理を行った場合、CPU18とGPU20間の通信負荷が増大してしまう。したがって、従来においては、木構造40の管理及び行列積Gの演算はCPU18が行っている。

0043

次に、従来における入力処理について説明する。入力処理とは、ユーザが表示部12上の入力位置(画素)を特定して、ゲーム画面に含まれるいずれかの描画要素30を選択する処理である。ここでは、バックグラウンド30bを構成する複数のタイル30dのうち、いずれのタイル30dがユーザによって選択されたかを判定する処理について説明する。

0044

ユーザにより指定された入力位置は、表示部12上の絶対位置であり、木構造40においては各タイル30dの位置はフィールド30a及びバックグラウンド30bに対する相対位置で示されているから、入力処理においては、描画処理とは反対に、CPU18は、入力位置をフィールド30a及びバックグラウンド30bに対する相対位置に変換する必要がある。

0045

絶対位置の相対位置への変換は、上述のように演算した行列積Gの逆行列G’を用いて行うことができる。CPU18は、tile0に対応する行列積Gtile0の逆行列G’tile0に基づいて、ユーザが指定した入力位置をtile0の左上隅の画素からの相対位置に変換する。そして、変換された相対位置が、tile0の内部であるか否かを判定する。なお相対位置がtile0の内部であるか否かは、相対位置とtile0の大きさ(面積)とに基づいて判定することができる。相対位置がtile0の内部である場合は、ユーザがtile0を選択したと判定でき、相対位置がtile0の内部でない場合には、次のタイル(例えばtile1)について同様の処理を繰り返す。このように、相対位置が内部にあるタイルが見つかるまで処理を繰り返し、ユーザが選択したタイルを特定する。

0046

<本実施形態の描画処理及び入力処理>
以下、本実施形態における描画処理及び入力処理について説明する。まず、本実施形態における描画要素30の描画処理について説明する。ここでも、特定のタイル(tile0)を描画する場合を例に説明する。

0047

まず、CPU18は、木構造40において、根ノードであるノード42rから、描画対象の描画要素30であるtile0に対応する対象ノードであるノード42tへ向かう経路に含まれる複数のノード42から構成される上位ノード群を識別する。

0048

上位ノード群は、上述の経路に含まれるノード42のうち、平行移動及び拡大縮小のいずれかを示すアフィン行列Lが定義された複数のノード42により構成される。図6に、木構造40の一部であって、根ノードであるノード42rからtile0に対応するノード42tまでの経路が示されている。本実施形態では、ノード42rに定義されたアフィン行列Lroot、ノード42fに定義されたアフィン行列Lfield、及び、ノード42bに定義されたアフィン行列Lbgが、それぞれ平行移動又は拡大縮小を示すものであるとする。したがって、CPU18は、ノード42r、42f、及び42bを上位ノード群として識別する。

0049

ゲーム画面その他の種々の画面においては、木構造において根ノードに近い描画要素(例えば背景など)は、回転及びスキューがほとんど行われず、根ノードから遠い描画要素(例えばキャラクタなどの細かいオブジェクト)は回転及びスキューを含めた処理が行われることが多い。本実施形態におけるゲームにおいても、フィールド30a及びバックグラウンド30bは、平行移動及び拡大縮小はされ得るものの、回転及びスキューは行われず、タイル30dなどにおいては回転及びスキューを含めた処理が行われる。したがって、画面を表す木構造においては、複数のノードを上位ノード群に含めることができる場合が多い。

0050

ある特定の画面において、平行移動又は拡大縮小のみのアフィン変換が行われるノード42が固定的に決定されている場合は、上位ノード群に含まれるノード42は予め決められていてもよい。例えば、図6の例において、フィールド30a及びバックグラウンド30bが平行移動又は拡大縮小のみ行う(つまり回転及びスキューを行わない)と決まっている場合には、予め、ノード42r、42f、及び42bが上位ノード群であると決められていてよい。

0051

また、CPU18が木構造40に含まれる各ノード42に定義されたアフィン行列Lを解析することで、上位ノード群に含まれるノード42を特定するようにしてもよい。例えば、CPU18は、根ノードから対象ノードへ向かって順番に、ノード42に定義されたアフィン行列Lのうち、行列要素b及びc(図5参照)が0であるか否かを解析し、b及びcが0ならば当該ノードを上位ノード群に加え、b又はcが0でなければその直前のノード42までが上位ノード群であると特定する。このように、CPU18は上位ノード群特定部としても機能し得る。

0052

また、例えばゲームモード切り替わる、あるいは画面の表示モードが切り替わるなどして木構造40に内容が変動する場合がある。例えば、あるゲームモードではバックグラウンド30bは平行移動及び拡大縮小のみで、回転及びスキューは行われなかったが、他のゲームモードに遷移した場合に、当該他のゲームモードにおいては、バックグラウンド30bが回転又はスキューが行われる場合がある。このように、木構造40が変動した場合であっても、CPU18は各ノード42のアフィン行列Lを解析することで、木構造40の変動に応じて上位ノード群に含まれるノード42を変更することで、常に適切な上位ノード群を特定することができる。

0053

一方、上述の経路(図6参照)に含まれるノード42のうち、上位ノード群以外のノード42、すなわち、上位ノード群の末端ノードであるノード42bの子ノードから対象ノードまでの経路に含まれるノード42が下位ノードとなる。下位ノードに対応する描画要素30は、回転及びスキューを行い得るものである。図6の例では、当該子ノードと対象ノードが同一であり、すなわち下位ノードがtile0に対応するノード42tの1つのみとなっているが、下位ノードは複数あってもよい。

0054

CPU18は、上位ノード群に含まれる複数のノード42それぞれに定義された複数のアフィン行列Lの積である上位行列積を演算する。図6の例では、CPU18は、上位行列積Gbg=Lroot・Lfield・Lbgを演算する。

0055

ここで、上位ノード群に定義された各アフィン行列Lは、平行移動又は拡大縮小を行うものである。図7に示す通り、平行移動又は拡大縮小を行うアフィン行列Lは、行列要素のb及びc(図5参照)が0となる。したがって、上位ノード群に定義された複数のアフィン行列Lの積を算出する際の演算量はそれほど大きくならない。少なくとも、演算量は、回転やスキューを示すアフィン行列L(すなわち行列要素のb及びcが0でない行列)を含む行列の積を算出する際の演算量よりも小さくなる。つまり、上位行列積を演算しても、CPU18にはそれほど負荷がかからない。

0056

CPU18は、演算した上位行列積(図6の例ではGbg)と、下位ノードに定義されたアフィン行列(図6の例ではLtile0)をGPU20に送信する。

0057

GPU20は、CPU18から受け取った上位行列積と、下位ノードに定義されたアフィン行列との積を演算する。本実施形態では、上位行列積Gbgと下位ノードのアフィン行列Ltile0との行列積Gtile0=Gbg・Ltile0を演算する。上述のように、行列積Gtile0はtile0の表示部12上の絶対位置を表す。したがって、GPU20は、行列積Gtile0に基づいて、tile0の表示部12上の描画位置を特定する。そして、GPU20は、特定した描画位置にtile0の描画を行う。

0058

上述のように、本実施形態においては、描画要素30の描画位置の特定のために必要な行列積Gの演算のうち、演算量が少ない部分、すなわち、上位ノード群に定義された、平行移動及び拡大縮小のいずれかを示す複数のアフィン行列Lの積である上位行列積の演算をCPU18が行い、比較的演算量が多くなる、回転及びスキューを示すアフィン行列Lを含む行列積の演算はGPU20が行う。これにより、描画処理に係るCPU18の負荷が低減される。

0059

しかも、本実施形態においては、CPU18が木構造40の管理を行っているから、CPU18が各描画要素30の描画位置を把握できなくなることがない。したがって、描画要素30を指定するための、表示部12上の入力位置を指定した入力をユーザから受け付けた場合であっても、CPU18は、ユーザが指定した描画要素30を特定することができる。

0060

以下、本実施形態における入力処理について説明する。ここでも、バックグラウンド30bを構成する複数のタイル30dのうち、いずれのタイル30dがユーザによって選択されたかを判定する処理について説明する。

0061

従来同様、本実施形態においても、入力処理はCPU18が行う。まず、CPU18は、演算済みの上位行列積と、下位ノードに定義されたアフィン行列との行列積Gを演算する。本実施形態では、上位行列積Gbgと下位ノードに定義されたアフィン行列Ltile0との行列積Gtile0=Gbg・Ltile0を演算する。

0062

さらに、CPU18は演算した行列積Gの逆行列G’を演算する。本実施形態では、行列積Gtile0の逆行列G’tile0を演算する。

0063

CPU18は、演算した逆行列G’に基づいて、各ノード42に対応する描画要素30における入力位置の相対位置を演算し、演算された相対位置に基づいて、入力位置に対応する描画要素30を特定する。本実施形態では、CPU18は、逆行列G’tile0に基づいて、ユーザが指定した入力位置をtile0の左上隅の画素からの相対位置に変換する。そして、変換された相対位置が、tile0の内部であるか否かを判定する。相対位置がtile0の内部である場合は、ユーザがtile0を選択したと判定でき、相対位置がtile0の内部でない場合には、次のタイル(例えばtile1)について同様の処理を繰り返す。このように、相対位置が内部にあるタイルが見つかるまで処理を繰り返し、ユーザが選択したタイルを特定する。

0064

以下、図8に示すフローチャートに従って、画像処理装置10における描画処理の流れについて説明する。図8のフローチャートは、tile0を描画する場合の処理の流れを示すものである。

0065

ステップS10において、CPU18は、木構造40の中から、上位ノード群(ノード42r、42f、42b)を特定し、上位行列積Gbg=Lroot・Lfield・Lbgを演算する。

0066

ステップS12において、CPU18は、上位行列積Gbg、及び、下位ノード(tile0に対応するノード42t)に定義されたアフィン行列Ltile0をGPU20に送信する。

0067

ステップS10及びS12が上位行列積演算ステップに相当する。

0068

ステップS14において、GPU20は、ステップS12でCPU18から受信した上位行列積Gbgと下位ノードのアフィン行列Ltile0との行列積Gtile0=Gbg・Ltile0を演算する。そして、演算した行列積Gtile0に基づいて、tile0の表示部12上の描画位置を特定する。

0069

ステップS16において、GPU20は、ステップS14で特定した描画位置にtile0の描画を行う。

0070

ステップS14及びS16が描画処理ステップに相当する。

0071

次に、図9に示すフローチャートに従って、画像処理装置10における入力処理の流れについて説明する。図9のフローチャートは、バックグラウンド30bを構成する複数のタイル30dのうち、ユーザがいずれのタイル30dを指定したのかを特定する処理の流れを示すものである。

0072

ステップS30において、入力部14は、表示部12上の入力位置を指定したユーザからの入力を受け付ける。

0073

ステップS32において変数nが0に初期化される。変数nはタイル番号に相当する変数である。

0074

ステップS34において、CPU18は、上位行列積Gbgと下位ノードのアフィン行列Ltilenとの行列積Gtilen=Gbg・Ltilenを演算する。さらに、CPU18は行列積Gtilenの逆行列G’tilenを演算する。

0075

ステップS36において、CPU18は、逆行列G’tilenに基づいて、ユーザが指定した入力位置をtilenの左上隅の画素からの相対位置に変換する。

0076

ステップS38において、CPU18は、ステップS36で変換された相対位置がtilenの内部であるか否かを判定する。tilenの内部でない場合、ステップS40に進み、ステップS40で変数nが1インクリメントされた後、再度ステップS34からの処理を繰り返す。つまり、次のタイルに対する処理を行う。

0077

ステップS38で相対位置がtilenの内部であると判定された場合、ステップS42に進み、ステップS42において、CPU18は、tilenがユーザにより指定された描画要素30であると特定する。

0078

以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。

0079

例えば、本実施形態では、表示部12に表示される画面は2次元の画面であったが、3次元の画像に対する処理においても本発明を適用することができる。なお、3次元の画像に対する処理の場合、各ノード42に定義されるアフィン行列の次元数が1つ増え、4×4の行列となる。

0080

また、画像処理装置10が有する構成要件の一部が別の装置(例えばサーバなど)に設けられていてもよい。例えば、CPU18とGPU20とが異なる装置に設けられていてもよい。

0081

10画像処理装置、12 表示部、14 入力部、16 記憶部、18 CPU、20 GPU、30描画要素、40木構造、42ノード。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ