(57)【要約】【課題】アプリケーションにおいて多数のオブジェクトや様々な大きさ及び形状を有するオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行する。【解決手段】本発明の実施形態は、アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像が記憶部に格納されているか否かを判定するステップと、当該画像が記憶部に格納されていない場合、サーバにアクセスして当該画像を取得するステップと、当該画像を所定の幅を有する複数の部分画像へと分割するステップと、当該複数の部分画像を含むよう、記憶部に格納されている現在のテクスチャアトラスを更新して、更新されたテクスチャアトラスを生成するステップとを含む方法をコンピュータに実行させる、コンピュータ・プログラムを提供する。【選択図】図３
2017072977.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにアプリケーションを実行させるコンピュータ・プログラムであって、前記コンピュータに、
前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像が記憶部に格納されているか否かを判定するステップと、
前記画像が前記記憶部に格納されていない場合、前記コンピュータに接続されたサーバにアクセスして、前記サーバから前記画像を取得するステップと、
前記画像を、所定の幅を有する複数の部分画像へと分割するステップと、
前記複数の部分画像を含むよう、前記記憶部に格納されている現在のテクスチャアトラスを更新して、更新されたテクスチャアトラスを生成するステップと
を含む方法を実行させるコンピュータ・プログラム。
【請求項２】
前記方法は、前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像のリストを前記サーバから取得するステップをさらに含み、
前記判定するステップは、前記画像のリストに含まれるすべての画像が前記記憶部に格納されているか否かを判定するステップを含む請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記方法は、前記複数の部分画像の各々について、前記更新されたテクスチャアトラス内における位置情報を前記記憶部に格納するステップをさらに含む請求項１又は２に記載のコンピュータ・プログラム。
【請求項４】
前記方法は、
前記位置情報に基づいて、表示するべき画像に対応する複数の部分画像を前記更新されたテクスチャアトラスから取得するステップと、
取得された前記複数の部分画像を合成して画像を生成し、生成された前記画像を前記表示部に表示するステップと
をさらに含む請求項３に記載のコンピュータ・プログラム。
【請求項５】
前記複数の部分画像は、前記現在のテクスチャアトラスに含まれる他の複数の部分画像に対して隙間なく配置される請求項１乃至４のいずれか１項に記載のコンピュータ・プログラム。
【請求項６】
前記複数の部分画像及び前記他の複数の部分画像は同一の幅を有する請求項５に記載のコンピュータ・プログラム。
【請求項７】
前記分割するステップ及び前記生成するステップは、前記コンピュータのグラフィックス処理ユニットによって実行される請求項１乃至６のいずれか１項に記載のコンピュータ・プログラム。
【請求項８】
前記方法は、前記表示部に表示するべき画像に対応しない部分画像を前記現在のテクスチャアトラスから削除するステップをさらに含む請求項１乃至７のいずれか１項に記載のコンピュータ・プログラム。
【請求項９】
前記サーバから前記画像を取得する前記ステップは、前記アプリケーション内での動作に応じてオブジェクトを別の方向から見たときの画像が表示されるべきである場合において、該画像が前記記憶部に格納されていないとき、該画像を前記サーバから取得するステップを含む請求項１乃至８のいずれか１項に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・プログラムに関し、特に、テクスチャアトラスを動的に生成するコンピュータ・プログラムに関する。
【背景技術】
【０００２】
ゲーム・アプリケーションなどにおいて多くのオブジェクト（キャラクタ、建物など）を画面上に描画するとき、オブジェクトごとに描画処理を実行すると、コンピュータにかかる負荷が大きくなる。
【０００３】
例えば、グラフィックス処理ユニット（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＧＰＵ）がメモリ内に保持している３つのオブジェクトのテクスチャＡ、Ｂ及びＣを描画する場合を考える。テクスチャごとに描画処理を実行する場合、中央演算処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）からＧＰＵに対して描画命令を３回送る必要がある。したがって、描画するべきオブジェクトの数が増えるほど、必要な命令の数が増加し、高速な描画処理が困難になる。
【０００４】
この問題を解決するため、一般に、予め複数のテクスチャを１つの大きなテクスチャ（「テクスチャアトラス」と呼ばれる）にまとめる手法が行われている。これにより、描画処理のためにＣＰＵからＧＰＵに送る命令の数を減らすことができる。
【０００５】
アプリケーションの種類によっては、アプリケーションの進行に応じて、描画するべきオブジェクトの数や種類が変化し得る。１つのテクスチャアトラスのサイズには上限がある。このため、多数のオブジェクトが出現し得る場合、潜在的なすべてのオブジェクトのテクスチャを１つのテクスチャアトラスに詰め込めないことがある。したがって、複数のテクスチャアトラスを作成することが必要となる。この場合、ＣＰＵからＧＰＵに発行される命令の数が増加するので、コンピュータにかかる負荷が増大し、高速な描画処理が困難になる。
【０００６】
また、アプリケーションの種類によっては、様々な大きさや形状を有するオブジェクトが存在し得る。様々な大きさや形状のテクスチャを１つのテクスチャアトラスに効率的に詰め込むための計算処理の量は膨大になり得るので、コンピュータにかかる負荷が増大し、高速な描画処理が困難になる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、アプリケーションにおいて多数の潜在的なオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することを目的とする。
【０００８】
また、本発明は、アプリケーションにおいて様々な大きさや形状を有するオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明の実施形態は、コンピュータにアプリケーションを実行させるコンピュータ・プログラムであって、前記コンピュータに、前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像が記憶部に格納されているか否かを判定するステップと、前記画像が前記記憶部に格納されていない場合、前記コンピュータに接続されたサーバにアクセスして、前記サーバから前記画像を取得するステップと、前記画像を、所定の幅を有する複数の部分画像へと分割するステップと、前記複数の部分画像を含むよう、前記記憶部に格納されている現在のテクスチャアトラスを更新して、更新されたテクスチャアトラスを生成するステップと、を含む方法を実行させるコンピュータ・プログラムを提供する。
【発明の効果】
【００１０】
本発明によれば、アプリケーションにおいて多数の潜在的なオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
【００１１】
また、本発明によれば、アプリケーションにおいて様々な大きさや形状を有するオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
【００１２】
本発明のその他の特徴及び利点は、後述する実施形態の説明、添付の図面及び特許請求の範囲の記載から明らかなものとなる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施形態によるコンピュータ・プログラムを実行するためのコンピュータ・システムの全体概略図である。
【図２】図２は、例示的なユーザ端末の基本構成に関するブロック図を示す。
【図３】図３は、ユーザ端末に実装される制御部の機能ブロック図を示す。
【図４】図４は、アプリケーションが進行し、オブジェクトＡ及びＢの画像がユーザ端末の表示部に表示されているときのテクスチャアトラスの構成について説明する図である。
【図５】図５は、記憶部に格納されている、テクスチャアトラスにおける画像位置情報について説明する図である。
【図６】図６は、図４に示す状態からアプリケーションがさらに進行したときの描画処理を模式的に示す。
【図７】図７は、図６において生成された更新されたテクスチャアトラスを用いて表示部に画像を表示する様子を示す。
【図８】図８は、図７（ｃ）に示す状態からアプリケーションがさらに進行したときの描画処理を模式的に示す。
【図９】図９は、図８の処理の後にアプリケーションがさらに進行したときの描画処理を模式的に示す。
【図１０】図１０は、本発明の実施形態のコンピュータ・プログラムにより実現される、テクスチャアトラスの動的な生成及び表示部へのオブジェクト画像の表示に関する処理のフロー図である。
【図１１】図１１は、本発明の実施形態のコンピュータ・プログラムにより実現される、テクスチャアトラスの動的な生成及び表示部へのオブジェクト画像の表示に関する処理のフロー図である。
【図１２】図１２は、本発明の実施形態のコンピュータ・プログラムにより実現される、テクスチャアトラスの動的な生成及び表示部へのオブジェクト画像の表示に関する処理のフロー図である。
【発明を実施するための形態】
【００１４】
［本発明の実施形態の説明］
最初に、本発明の実施形態の内容を列記して説明する。本発明の実施形態によるコンピュータ・プログラムは、以下のような構成を備える。
【００１５】
（項目１）
コンピュータにアプリケーションを実行させるコンピュータ・プログラムであって、前記コンピュータに、
前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像が記憶部に格納されているか否かを判定するステップと、
前記画像が前記記憶部に格納されていない場合、前記コンピュータに接続されたサーバにアクセスして、前記サーバから前記画像を取得するステップと、
前記画像を、所定の幅を有する複数の部分画像へと分割するステップと、
前記複数の部分画像を含むよう、前記記憶部に格納されている現在のテクスチャアトラスを更新して、更新されたテクスチャアトラスを生成するステップと
を含む方法を実行させるコンピュータ・プログラム。
【００１６】
本項目のコンピュータ・プログラムによれば、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
（項目２）
前記方法は、前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像のリストを前記サーバから取得するステップをさらに含み、
前記判定するステップは、前記画像のリストに含まれるすべての画像が前記記憶部に格納されているか否かを判定するステップを含む項目１に記載のコンピュータ・プログラム。
【００１７】
本項目のコンピュータ・プログラムによれば、アプリケーション内で生じた動作に応じて、テクスチャアトラスを動的に生成することができる。
（項目３）
前記方法は、前記複数の部分画像の各々について、前記更新されたテクスチャアトラス内における位置情報を前記記憶部に格納するステップをさらに含む項目１又は２に記載のコンピュータ・プログラム。
【００１８】
本項目のコンピュータ・プログラムによれば、必要な部分画像をテクスチャアトラスから取得することが容易になる。
（項目４）
前記方法は、
前記位置情報に基づいて、表示するべき画像に対応する複数の部分画像を前記更新されたテクスチャアトラスから取得するステップと、
取得された前記複数の部分画像を合成して画像を生成し、生成された前記画像を前記表示部に表示するステップと
をさらに含む項目３に記載のコンピュータ・プログラム。
【００１９】
本項目のコンピュータ・プログラムによれば、生成されたテクスチャアトラスを用いて描画処理を高速に実行できる。
（項目５）
前記複数の部分画像は、前記現在のテクスチャアトラスに含まれる他の複数の部分画像に対して隙間なく配置される項目１乃至４のいずれか１項に記載のコンピュータ・プログラム。
【００２０】
本項目のコンピュータ・プログラムによれば、テクスチャアトラス内に部分画像を効率的に配置することが容易になる。
（項目６）
前記複数の部分画像及び前記他の複数の部分画像は同一の幅を有する項目５に記載のコンピュータ・プログラム。
【００２１】
本項目のコンピュータ・プログラムによれば、テクスチャアトラス内に部分画像を効率的に配置することが容易になる。
（項目７）
前記分割するステップ及び前記生成するステップは、前記コンピュータのグラフィックス処理ユニットによって実行される項目１乃至６のいずれか１項に記載のコンピュータ・プログラム。
【００２２】
本項目のコンピュータ・プログラムによれば、高速な描画処理が可能となる。
（項目８）
前記方法は、前記表示部に表示するべき画像に対応しない部分画像を前記現在のテクスチャアトラスから削除するステップをさらに含む項目１乃至７のいずれか１項に記載のコンピュータ・プログラム。
【００２３】
本項目のコンピュータ・プログラムによれば、テクスチャアトラスの領域を効率的に利用できる。
（項目９）
前記サーバから前記画像を取得する前記ステップは、前記アプリケーション内での動作に応じてオブジェクトを別の方向から見たときの画像が表示されるべきである場合において、該画像が前記記憶部に格納されていないとき、該画像を前記サーバから取得するステップを含む項目１乃至８のいずれか１項に記載のコンピュータ・プログラム。
【００２４】
本項目のコンピュータ・プログラムによれば、様々な方向から見たオブジェクトを表示することが必要なアプリケーションにおいて、テクスチャアトラスを動的に生成することができる。
【００２５】
［本発明の実施形態の詳細］
以下、図面を参照して、本発明の実施形態によるコンピュータ・プログラムについて説明する。
【００２６】
図１は、本発明の実施形態によるコンピュータ・プログラムを実行するためのコンピュータ・システム１００の全体概略図である。図１には、コンピュータ・システム１００の主要な構成要素のみが示されている。コンピュータ・システム１００は、ユーザ端末１０２Ａ〜１０２Ｄ（以後、「ユーザ端末」、「ユーザ端末１０２」と総称する）及びサーバ１１６を備える。ユーザ端末１０２及びサーバ１１６はネットワーク１１４（例えば、インターネット）を介して互いに通信する。以下では、本発明の実施形態のコンピュータ・プログラムの一例として、多数のオブジェクトが登場し得るアプリケーション・プログラム（例えば、街に建物などを配置して発展させていくゲーム・アプリケーション・プログラム）を想定する。しかし、本発明の実施形態はこのようなコンピュータ・プログラムに限定されない。様々なオブジェクトを表示することを必要とする多種多様なアプリケーションを実行するプログラムに対して本発明を適用できることを理解されたい。
【００２７】
ユーザ端末１０２は、本発明の実施形態のコンピュータ・プログラムを実行する任意のコンピューティング・デバイスとすることができる。ユーザ端末１０２の例は、パーソナル・コンピュータ（ＰＣ）、スマートフォン、タブレット端末、ゲーム・コンソール、ノートＰＣなどを含むが、これらに限定されない。図示されるように、ユーザ端末１０２は、表示部１０４、入力部１０６、制御部１０８、通信部１１０及び記憶部１１２などを備える。これらのコンポーネントはバスを介して相互に接続される。
【００２８】
通信部１１０は、サーバ１１６からデータやプログラムを受信し、これらは記憶部１１２に格納される。通信部１１０はまた、ユーザ端末１０２において実行されるアプリケーションの進行に応じて、データや要求を適宜サーバ１１６に送信する。アプリケーションの進行に応じて、制御部１０８は、表示するべきオブジェクトの画像を生成する。表示部１０４は当該画像を表示する。表示部１０４は、液晶ディスプレイ（ＬＣＤ）などによって実現することができる。一例として、ユーザ端末１０２がスマートフォンやタブレット端末である場合、表示部１０４はタッチ・ディスプレイとして構成されてもよい。入力部１０６は、アプリケーションを進行させるためのユーザ作用全般の命令の入力に使用される。
【００２９】
入力部１０６が受け取った入力に基づいて、制御部１０８はアプリケーションを進行させる。記憶部１１２は、ユーザ端末１０２に関連付けられる各種のデータ及びプログラムを格納してもよい。記憶部１１２は、さらに、サーバ１１６から受信されるデータやプログラムなどを格納してもよい。
【００３０】
サーバ１１６は、制御部１１８、メインメモリ１２０、外部メモリ１２２、ユーザ・インタフェース１２４、通信部１２６、及びディスク・ドライブ１２８などを備える。これらはバスを介して相互に接続される。制御部１１８は、外部メモリ１２２に格納されたプログラム・モジュール、及びディスク・ドライブ１２８に格納されたユーザ・データ、アプリケーション進行データなどの各種データをメインメモリ１２０にロードする。制御部１１８はまた、ユーザ端末１０２におけるアプリケーションの進行に応じて変化するアプリケーション内の環境などに関するデータを管理する。制御部１１８は、必要に応じて、通信部１２６を介してユーザ端末１０２にこれらのデータを提供する。ユーザ・インタフェース１２４は、サーバ１１６の管理者がサーバ１１６にアクセスするのに用いられる。これにより、各種サーバ機能の設定やネットワーク設定が実施される。
【００３１】
図２は、例示的なユーザ端末１０２の基本構成に関するブロック図を示す。ユーザ端末１０２はスマートフォンなどのモバイル端末であってもよい。しかし、本発明の実施形態は、図１に関連して説明したような様々な種類のユーザ端末上で実行することができる。
【００３２】
図２に示されるように、ユーザ端末１０２は、表示部２０４、制御部２０８及び記憶部２１２を備える。図示しないが、ユーザ端末１０２は、表示部２０４を含むタッチ・ディスプレイを備えてもよい。タッチ・ディスプレイは、表示部２０４に対する人の指やスタイラスなどの物体による接触操作（主に、タッチ操作、スワイプ（スライド）操作及びタップ操作などの物理的接触操作）を検知する接触検知部／タッチパネルを含んでもよい。
【００３３】
制御部２０８は、本発明の実施形態によるコンピュータ・プログラムを実行して、ユーザ端末１０２を動作させるように構成される。制御部２０８は、中央演算処理装置（ＣＰＵ）２１４及びグラフィックス処理ユニット（ＧＰＵ）２１６を備えることができる。制御部２０８の詳細については図３で後述する。記憶部２１２は、コンピュータ・プログラム、ユーザやアプリケーションに関連する各種データなどを格納し、制御部２０８からの命令に応答して、情報の格納、更新、削除などを実行する。
【００３４】
図３は、ユーザ端末１０２に実装される制御部２０８の機能ブロック図を示す。図３はまた、制御部２０８と情報をやり取りする、サーバ１１６、記憶部２１２及び表示部２０４を示している。制御部２０８は、画像リスト比較部３０４、第１の画像取得部３０６、画像分割部３０８、テクスチャアトラス更新部３１０、第２の画像取得部３１４、画像生成部３１６及び画像出力部３１８として動作するように構成されてもよい。テクスチャアトラス更新部３１０は、画像位置決定部３１２を含んでもよい。記憶部２１２は、テクスチャアトラス３２０、テクスチャアトラスにおける画像位置情報（例えば、頂点情報）３２２、オブジェクト画像及びリスト３２４、並びに表示部における画像配置情報３２６などのデータを格納することができる。図３に示される各コンポーネントは以下で具体的に説明される。
【００３５】
図４は、アプリケーションが進行し、オブジェクトＡの画像４０２及びオブジェクトＢの画像４０４が既にユーザ端末１０２の表示部２０４に表示されているときの、テクスチャアトラス３２０の構成を説明する図である。図４（ａ）に示すように、画像４０２及び４０４が表示部２０４に表示されている。画像４０２及び４０４は、第１の画像取得部３０６によってサーバ１１６から取得されて、記憶部２１２内のオブジェクト画像及びリスト３２４に格納されている。図４（ａ）に示すように表示される際、オブジェクトＡの画像４０２はまず、図４（ｂ）に示すように、画像分割部３０８によって所定の幅Ｗを有する部分画像Ａ１、Ａ２及びＡ３へと分割される。この例では、部分画像Ａ１乃至Ａ３は同一の長さを有している。しかし、画像４０２は、異なる長さを有する部分画像Ａ１乃至Ａ３へと分割されてもよい。次いで、図４（ｃ）に示すように、部分画像Ａ１乃至Ａ３は、テクスチャアトラス更新部３１０によって、記憶部２１２に格納されるテクスチャアトラス３２０内に隙間なく配置される。同様に、オブジェクトＢの画像４０４は、幅Ｗを有する部分画像Ｂ１及びＢ２としてテクスチャアトラス３２０内に配置される。画像分割部３０８及びテクスチャアトラス更新部３１０による動作は、図２に示すＧＰＵ２１６によって実行されてもよい。これにより、ＣＰＵ２１４からＧＰＵ２１６に対して発行される命令の数を減らすことができ、高速な描画処理が可能となる。
【００３６】
図５は、記憶部２１２に格納されている、テクスチャアトラスにおける画像位置情報３２２について説明する図である。一例として、部分画像の位置情報は、テクスチャアトラス３２０内のＸＹ座標のデータとして格納されてもよい。例えば、図示されるように、部分画像Ａ１は、４つの頂点５０２、５０４、５０６及び５０８を有する。これら４つの頂点の座標によって、テクスチャアトラス３２０における部分画像Ａ１の位置を特定することができる。図５に示す例において、頂点５０２の座標は（０，０）であり、頂点５０４の座標は（６４，０）であり、頂点５０６の座標は（０，２５６）であり、頂点５０８の座標は（６４，２５６）である。同様に、部分画像Ａ２は、４つの頂点（０，２５６）、（６４，２５６）、（０，５１２）及び（６４，５１２）を有する。また、部分画像Ａ３は、４つの頂点（０，５１２）、（６４，５１２）、（０，７６８）及び（６４，７６８）を有する。図５（ｂ）に示すように、テクスチャアトラスにおける画像位置情報３２２は、オブジェクト画像Ａ及びＢの各々を構成する部分画像に関する情報、各部分画像の頂点情報などを含むことができる。図５に示されるテクスチャアトラス３２０のサイズは一例にすぎない。例えば、テクスチャアトラス３２０は、２０４８ピクセル×２０４８ピクセルのサイズを有してもよいし、他の様々なサイズを有してもよい。
【００３７】
図６は、図４に示す状態からアプリケーションがさらに進行したときの描画処理を模式的に示す。アプリケーションの進行に応じて、オブジェクトＡの画像６０２及びオブジェクトＢの画像６０４に加えて、図６（ａ）に点線で示すようにオブジェクトＣの画像６０６を表示部２０４に表示する必要が生じた場合を考える。画像リスト比較部３０４は、サーバ１１６から得られた表示するべきオブジェクト画像のリストと、記憶部２１２に格納されているオブジェクト画像のリスト３２４とを比較する。この時点では、オブジェクトＡ、Ｂ及びＣの画像６０２、６０４及び６０６を表示するべきであるのに対して、図４及び図５において示したように記憶部２１２にはオブジェクトＡ及びＢの画像しか格納されていない。したがって、画像リスト比較部３０４は、オブジェクトＣの画像６０６の取得の指示を第１の画像取得部３０６に送る。当該指示に応答して、第１の画像取得部３０６は、サーバ１１６にアクセスして画像６０６を取得し、これを記憶部２１２のオブジェクト画像及びリスト３２４に格納する。次いで、図６（ｂ）に示すように、画像分割部３０８は、画像６０６を、所定の幅を有する複数の部分画像Ｃ１、Ｃ２及びＣ３に分割する。ここで、所定の幅は、図４に示される部分画像Ａ１などの幅Ｗと同一とすることができる。次いで、図６（ｃ）に示すように、テクスチャアトラス更新部３１０は、部分画像Ｃ１乃至Ｃ３を含むようにテクスチャアトラス３２０を更新して、更新されたテクスチャアトラス３２０を生成する。画像位置決定部３１２は、テクスチャアトラスにおける部分画像Ｃ１乃至Ｃ３が配置される位置を決定し、当該位置を、記憶部２１２の画像位置情報３２２に格納する。このとき、部分画像Ｃ１乃至Ｃ３は、テクスチャアトラス３２０内に既に含まれている部分画像Ａ１、Ａ２、Ａ３、Ｂ１及びＢ２に対して、隙間なく整列するように配置される。本発明の一実施形態によれば、すべての部分画像が同一の幅Ｗを有するので、隙間のないテクスチャアトラス３２０を容易に生成することが可能となる。
【００３８】
図７は、図６において生成された、更新されたテクスチャアトラス３２０を用いて、表示部２０４にオブジェクトＡ、Ｂ及びＣの画像７０２、７０４及び７０６を表示する様子を示す。第２の画像取得部３１４は、記憶部２１２に格納されているテクスチャアトラス３２０及びテクスチャアトラスにおける画像位置情報３２２に基づいて、部分画像Ａ１乃至Ａ３、Ｂ１及びＢ２、並びにＣ１乃至Ｃ３を取得する。例えば、第２の画像取得部３１４は、図５（ｂ）に示すような画像位置情報３２２から、画像７０２を構成する部分画像Ａ１乃至Ａ３の頂点情報を得て、当該頂点情報に基づいて、テクスチャアトラス３２０からこれらの部分画像を取得する。次いで、画像生成部３１６は、図７（ｂ）に示すように、取得された部分画像Ａ１、Ａ２及びＡ３を合成して画像７０２を生成する。画像７０４及び７０６も同様に生成される。記憶部２１２は、画像７０２、７０４及び７０６の各々が配置されるべき表示部２０４上の位置を示す情報（表示部における画像配置情報３２６）を格納している。画像出力部３１８は、生成された画像７０２、７０４及び７０６並びに画像配置情報３２６に基づいて、図７（ｃ）に示すように、これらの画像を表示部２０４に表示させる。
【００３９】
図８は、図７（ｃ）に示す状態からアプリケーションがさらに進行したときの描画処理を模式的に示す。ここでは、アプリケーションの進行に応じて、図８（ａ）に示すように、オブジェクトＡ及びＢの画像７０２及び７０４を表示部２０４から除去し、且つ、点線で示すようにオブジェクトＤの画像８０８を表示部２０４に表示することが必要になった場合を考える。画像リスト比較部３０４は、サーバ１１６から得られる表示するべき画像のリストと、オブジェクト画像のリスト３２４とを比較する。この例では、オブジェクトＣ及びＤの画像を表示するべきであるのに対して、記憶部２１２にはオブジェクトＡ、Ｂ及びＣの画像しか格納されていない。したがって、画像リスト比較部３０４は、オブジェクトＤの画像８０８の取得の指示を第１の画像取得部３０６に送る。当該指示に応答して、第１の画像取得部３０６は、サーバ１１６にアクセスしてオブジェクトＤの画像８０８を取得し、これを記憶部２１２のオブジェクト画像及びリスト３２４に格納する。次いで、図８（ｂ）に示すように、画像分割部３０８は、画像８０８を、所定の幅を有する複数の部分画像Ｄ１乃至Ｄ５に分割する。ここで、所定の幅は、図４に示される部分画像Ａ１などの幅Ｗと同一であってもよい。次いで、図８（ｃ）に示すように、テクスチャアトラス更新部３１０は、部分画像Ａ１、Ａ２、Ａ３、Ｂ１及びＢ２をテクスチャアトラス３２０から削除し、部分画像Ｄ１乃至Ｄ５をテクスチャアトラス３２０に追加することによって、テクスチャアトラス３２０を更新する。このとき、図８（ｃ）に示すように、部分画像Ｃ１乃至Ｃ３は、部分画像Ａ１、Ａ２、Ａ３、Ｂ１及びＢ２の削除によって生じた空き領域に移動されてもよい。そして、部分画像Ｄ１乃至Ｄ５が、移動された部分画像Ｃ１乃至Ｃ３に対して隙間なく配置されてもよい。あるいは、部分画像Ｄ１乃至Ｄ５は、部分画像Ａ１、Ａ２、Ａ３、Ｂ１及びＢ２の削除によって生じた空き領域に配置されてもよい。次いで、図７において説明した動作と同様の動作が、画像位置決定部３１２、第２の画像取得部３１４、画像生成部３１６及び画像出力部３１８によって実行され、画像８０６及び８０８が表示部２０４に表示される。
【００４０】
図９は、図８の処理の後にアプリケーションがさらに進行したときの描画処理を模式的に示す。ここでは、オブジェクトＣが円筒形状を有していると仮定する。そして、アプリケーションの進行に応じて、オブジェクトＣの表示を、図８に示す正面から見た状態から、図９（ａ）に示す斜め上の方向から見た状態へと変化させる必要が生じた場合を考える。画像リスト比較部３０４は、サーバ１１６から得られる表示するべき画像のリストと、記憶部２１２に格納されているオブジェクト画像のリスト３２４とを比較する。この例では、斜め上の方向から見たオブジェクトＣ’の画像９０６’及びオブジェクトＤの画像９０８を表示するべきであるのに対して、記憶部２１２にはオブジェクトＡ、Ｂ及びＤの画像並びにオブジェクトＣを正面から見たときの画像しか格納されていない。したがって、画像リスト比較部３０４は、画像９０６’の取得の指示を第１の画像取得部３０６に送る。当該指示に応答して、第１の画像取得部３０６は、サーバ１１６にアクセスしてオブジェクトＣ’の画像９０６’を取得し、これを記憶部２１２のオブジェクト画像及びリスト３２４に格納する。次いで、図９（ｂ）に示すように、画像分割部３０８は、画像９０６’を、所定の幅を有する複数の部分画像Ｃ’１乃至Ｃ’３に分割する。ここで、所定の幅は、図４に示される部分画像Ａ１などの幅Ｗと同一であってもよい。次いで、図９（ｃ）に示すように、テクスチャアトラス更新部３１０は、部分画像Ｃ１乃至Ｃ３をテクスチャアトラス３２０から削除し、部分画像Ｃ’１乃至Ｃ’３をテクスチャアトラス３２０に追加することによって、テクスチャアトラス３２０を更新する。次いで、図７において説明した動作と同様の動作が、画像位置決定部３１２、第２の画像取得部３１４、画像生成部３１６及び画像出力部３１８によって実行され、画像９０６’及び９０８が表示部２０４に表示される。
【００４１】
図１０は、本発明の実施形態のコンピュータ・プログラムにより実現される、テクスチャアトラスの動的な生成及び表示部へのオブジェクト画像の表示に関する処理のフロー図である。処理はステップ１００２において開始する。サーバ１１６とユーザ端末１０２とは、実行されるアプリケーションに関するデータや要求などを互いに通信する。したがって、ユーザ端末１０２におけるアプリケーションの実行により、アプリケーション内の状況（例えば、表示するべきオブジェクトの種類やその位置など）が変化すると、その情報はサーバ１１６によって共有される。ステップ１００４において、サーバ１１６は、アプリケーション内においてなされたユーザアクションやイベントなどの動作に関する情報をユーザ端末１０２から取得し、表示部２０４に表示するべきオブジェクト画像を決定する。ユーザ端末１０２は、アプリケーション内での動作に応じて表示するべきオブジェクト画像のリストをサーバ１１６から取得する。ステップ１００６において、画像リスト比較部３０４は、当該オブジェクト画像のリストを、記憶部２１２に格納されているオブジェクト画像のリスト３２４と比較する。これにより、画像リスト比較部３０４は、サーバ１１６から得られたリストに含まれるすべてのオブジェクト画像が記憶部２１２に格納されているか否かを判定する。すべての画像が既に格納されている場合（ステップ１００６の「はい」）、処理は後述されるステップ１０１２に移る。いずれかの画像がまだ格納されていない場合（ステップ１００６の「いいえ」）、処理はステップ１００８に進む。ステップ１００８において、第１の画像取得部３０６は、記憶部２１２に格納されていない（オブジェクトの画像及びリスト３２４に含まれていない）画像をサーバ１１６から取得する。このとき、取得された画像及びその関連情報（画像ファイル名など）が、記憶部２１２のオブジェクト画像及びリスト３２４に格納される。また、表示するべき画像の各々について、表示部２０４上での配置位置に関する情報が、画像配置情報３２６に格納される。ステップ１０１０において、画像分割部３０８は、取得された画像を、所定の幅（例えば、同一の幅Ｗ）を有する複数の部分画像へと分割する。ステップ１０１２において、テクスチャアトラス更新部３１０は、表示するべき画像に対応しない部分画像を、記憶部２１２に格納されている現在のテクスチャアトラスから削除する。テクスチャアトラス更新部３１０はまた、表示するべき画像に対応する部分画像を含むよう、現在のテクスチャアトラス３２０を更新する。例えば、ステップ１０１０によって得られた部分画像が現在のテクスチャアトラスに追加される。これらの処理によって、テクスチャアトラス更新部３１０は、更新されたテクスチャアトラス３２０を生成する。ステップ１０１４において、画像位置決定部３１２は、更新されたテクスチャアトラス３２０に含まれる部分画像の各々について、当該更新されたテクスチャアトラス３２０内における位置情報（例えば、頂点情報）を記憶部２１２の画像位置情報３２２に格納する。ステップ１０１６において、第２の画像取得部３１４は、画像位置情報３２２に基づいて、表示するべき画像に対応する部分画像を、更新されたテクスチャアトラス３２０から取得する。ステップ１０１８において、画像生成部３１６は、ステップ１０１６において取得された部分画像を合成して、表示するべき画像を生成する。ステップ１０２０において、画像出力部３１８は、画像配置情報３２６に基づいて、ステップ１０１８によって生成された画像を表示部２０４上に表示する。処理はステップ１０２２において終了する。
【００４２】
図１０によって説明された本発明の実施形態は、（１）多数のオブジェクトが存在する場合であっても、テクスチャアトラスの動的な生成を高速に実行することを可能にする実施形態と、（２）様々な大きさや形状を有するオブジェクトが存在する場合であっても、テクスチャアトラスの効率的な生成を高速に実行することを可能にする実施形態との組み合わせである。これら２つの実施形態は、それぞれ独立して、本発明の１つの実施形態となり得る。以下では、これら２つの実施形態を別々に説明する。
【００４３】
図１１は、本発明の実施形態のコンピュータ・プログラムにより実現される、テクスチャアトラスの動的な生成及び表示部へのオブジェクト画像の表示に関する処理のフロー図である。処理はステップ１１０２において開始する。ステップ１１０４において、サーバ１１６は、アプリケーション内でなされたユーザアクションやイベントなどの動作に関する情報をユーザ端末１０２から取得し、表示部２０４に表示するべきオブジェクト画像を決定する。次いで、ユーザ端末１０２は、アプリケーション内で生じた動作に応じて表示するべきオブジェクト画像のリストをサーバ１１６から取得する。ステップ１１０６において、画像リスト比較部３０４は、当該オブジェクト画像のリストを、記憶部２１２に格納されているオブジェクト画像のリスト３２４と比較する。これにより、画像リスト比較部３０４は、サーバ１１６から得られたリストに含まれるすべての画像が記憶部２１２に格納されているか否かを判定する。すべての画像が既に格納されている場合（ステップ１１０６の「はい」）、処理は後述されるステップ１１１２に移る。いずれかの画像がまだ格納されていない場合（ステップ１１０６の「いいえ」）、処理はステップ１１０８に進む。ステップ１１０８において、第１の画像取得部３０６は、記憶部２１２に格納されていない（オブジェクトの画像及びリスト３２４に含まれていない）画像をサーバ１１６から取得する。取得された画像及びその関連情報（画像ファイル名など）は、オブジェクトの画像及びリスト３２４に格納される。また、表示するべき画像の各々について、表示部２０４上での配置位置に関する情報が、画像配置情報３２６に格納される。ステップ１１１２において、テクスチャアトラス更新部３１０は、表示するべき画像に対応しない画像を、記憶部２１２に格納されている現在のテクスチャアトラス３２０から削除する。テクスチャアトラス更新部３１０はまた、表示するべき画像を含むよう、現在のテクスチャアトラス３２０を更新する。例えば、ステップ１１０８によって取得された画像が現在のテクスチャアトラス３２０に追加される。これらの処理によって、テクスチャアトラス更新部３１０は、更新されたテクスチャアトラス３２０を生成する。ステップ１１１４において、画像位置決定部３１２は、更新されたテクスチャアトラス３２０に含まれる画像の各々について、当該更新されたテクスチャアトラス内における位置情報（例えば、頂点情報）を記憶部２１２の画像位置情報３２２に格納する。ステップ１１１６において、第２の画像取得部３１４は、画像位置情報３２２に基づいて、表示するべき画像を、更新されたテクスチャアトラス３２０から取得する。ステップ１１２０において、画像出力部３１８は、画像配置情報３２６に基づいて、ステップ１１１６によって取得された画像を表示部２０４に表示する。処理はステップ１１２２において終了する。図１１に示す構成によれば、アプリケーションにおいて膨大な数の潜在的なオブジェクトが存在する場合であっても、アプリケーションの進行状況に応じて、その都度必要なオブジェクトの画像だけを含むテクスチャアトラスを動的に生成することができる。したがって、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
【００４４】
図１２は、本発明の実施形態のコンピュータ・プログラムにより実現される、テクスチャアトラスの動的な生成及び表示部へのオブジェクト画像の表示に関する処理のフロー図である。処理はステップ１２０２において開始する。ステップ１２０４において、第１の画像取得部３０６は、アプリケーション内においてなされたユーザアクションやイベントなどの動作に応じて、表示するべきオブジェクト画像を取得する。このとき、ユーザ端末１０２は、表示するべきオブジェクト画像のリストなどの情報をサーバ１１６から得て、当該情報に基づいて必要な画像をサーバ１１６や記憶部２１２から取得してもよい。ステップ１２１０において、画像分割部３０８は、取得された画像を、所定の幅（例えば、同一の幅Ｗ）を有する複数の部分画像へと分割する。ステップ１２１２において、テクスチャアトラス更新部３１０は、表示するべきオブジェクト画像に対応しない部分画像を、記憶部２１２に格納されている現在のテクスチャアトラス３２０から削除する。テクスチャアトラス更新部３１０はまた、表示するべき画像に対応する部分画像を含むよう、現在のテクスチャアトラス３２０を更新する。例えば、ステップ１２１０によって得られた部分画像が現在のテクスチャアトラス３２０に追加される。これらの処理によって、テクスチャアトラス更新部３１０は、更新されたテクスチャアトラスを生成する。ステップ１２１４において、画像位置決定部３１２は、更新されたテクスチャアトラスに含まれる部分画像の各々について、当該更新されたテクスチャアトラス内における位置情報（例えば、頂点情報）を記憶部２１２の画像位置情報３２２に格納する。ステップ１２１６において、第２の画像取得部３１４は、画像位置情報３２２に基づいて、表示するべき画像に対応する部分画像を、更新されたテクスチャアトラス３２０から取得する。ステップ１２１８において、画像生成部３１６は、ステップ１２１６において取得された部分画像を合成して、表示するべき画像を生成する。ステップ１２２０において、画像出力部３１８は、画像配置情報３２６に基づいて、ステップ１２１８によって生成された画像を表示部２０４に表示する。処理はステップ１０２２において終了する。図１２に示す構成によれば、アプリケーションにおいて様々な大きさや形状を有するオブジェクトが存在する場合であっても、アプリケーションの進行状況に応じて、テクスチャアトラスの効率的な生成を高速に実行することができる。したがって、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
【００４５】
以上、本発明の実施形態によるコンピュータ・プログラムについて具体的に説明したが、上述の実施形態は例示に過ぎず、本発明の範囲を限定するものではない。本発明の技術的思想は、コンピュータ・プログラムのほか、説明した実施形態のステップを含むコンピュータにより実施される方法や、説明した実施形態の各コンポーネントを備えるコンピューティング・デバイスとして実施することが可能であることが理解されよう。また、本発明の趣旨及び範囲から逸脱することなく、実施形態の変更、追加、改良などを適宜行うことができることが理解されるべきである。本発明の範囲は、特許請求の範囲の記載に基づいて解釈されるべきであり、さらにその均等物を含むものと理解されるべきである。
【図１】
2017072977.tif 000003
【図２】
2017072977.tif 000004
【図３】
2017072977.tif 000005
【図４】
2017072977.tif 000006
【図５】
2017072977.tif 000007
【図６】
2017072977.tif 000008
【図７】
2017072977.tif 000009
【図８】
2017072977.tif 000010
【図９】
2017072977.tif 000011
【図１０】
2017072977.tif 000012
【図１１】
2017072977.tif 000013
【図１２】
2017072977.tif 000014