JP2017072977A - コンピュータ・プログラム - Google Patents
コンピュータ・プログラム Download PDFInfo
- Publication number
- JP2017072977A JP2017072977A JP2015199246A JP2015199246A JP2017072977A JP 2017072977 A JP2017072977 A JP 2017072977A JP 2015199246 A JP2015199246 A JP 2015199246A JP 2015199246 A JP2015199246 A JP 2015199246A JP 2017072977 A JP2017072977 A JP 2017072977A
- Authority
- JP
- Japan
- Prior art keywords
- image
- texture atlas
- computer program
- unit
- partial images
- 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
Landscapes
- Image Generation (AREA)
Abstract
【課題】アプリケーションにおいて多数のオブジェクトや様々な大きさ及び形状を有するオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行する。【解決手段】本発明の実施形態は、アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像が記憶部に格納されているか否かを判定するステップと、当該画像が記憶部に格納されていない場合、サーバにアクセスして当該画像を取得するステップと、当該画像を所定の幅を有する複数の部分画像へと分割するステップと、当該複数の部分画像を含むよう、記憶部に格納されている現在のテクスチャアトラスを更新して、更新されたテクスチャアトラスを生成するステップとを含む方法をコンピュータに実行させる、コンピュータ・プログラムを提供する。【選択図】図3
Description
本発明は、コンピュータ・プログラムに関し、特に、テクスチャアトラスを動的に生成するコンピュータ・プログラムに関する。
ゲーム・アプリケーションなどにおいて多くのオブジェクト(キャラクタ、建物など)を画面上に描画するとき、オブジェクトごとに描画処理を実行すると、コンピュータにかかる負荷が大きくなる。
例えば、グラフィックス処理ユニット(Graphics Processing Unit、GPU)がメモリ内に保持している3つのオブジェクトのテクスチャA、B及びCを描画する場合を考える。テクスチャごとに描画処理を実行する場合、中央演算処理装置(Central Processing Unit、CPU)からGPUに対して描画命令を3回送る必要がある。したがって、描画するべきオブジェクトの数が増えるほど、必要な命令の数が増加し、高速な描画処理が困難になる。
この問題を解決するため、一般に、予め複数のテクスチャを1つの大きなテクスチャ(「テクスチャアトラス」と呼ばれる)にまとめる手法が行われている。これにより、描画処理のためにCPUからGPUに送る命令の数を減らすことができる。
アプリケーションの種類によっては、アプリケーションの進行に応じて、描画するべきオブジェクトの数や種類が変化し得る。1つのテクスチャアトラスのサイズには上限がある。このため、多数のオブジェクトが出現し得る場合、潜在的なすべてのオブジェクトのテクスチャを1つのテクスチャアトラスに詰め込めないことがある。したがって、複数のテクスチャアトラスを作成することが必要となる。この場合、CPUからGPUに発行される命令の数が増加するので、コンピュータにかかる負荷が増大し、高速な描画処理が困難になる。
また、アプリケーションの種類によっては、様々な大きさや形状を有するオブジェクトが存在し得る。様々な大きさや形状のテクスチャを1つのテクスチャアトラスに効率的に詰め込むための計算処理の量は膨大になり得るので、コンピュータにかかる負荷が増大し、高速な描画処理が困難になる。
本発明は、アプリケーションにおいて多数の潜在的なオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することを目的とする。
また、本発明は、アプリケーションにおいて様々な大きさや形状を有するオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することを目的とする。
上記の課題を解決するために、本発明の実施形態は、コンピュータにアプリケーションを実行させるコンピュータ・プログラムであって、前記コンピュータに、前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像が記憶部に格納されているか否かを判定するステップと、前記画像が前記記憶部に格納されていない場合、前記コンピュータに接続されたサーバにアクセスして、前記サーバから前記画像を取得するステップと、前記画像を、所定の幅を有する複数の部分画像へと分割するステップと、前記複数の部分画像を含むよう、前記記憶部に格納されている現在のテクスチャアトラスを更新して、更新されたテクスチャアトラスを生成するステップと、を含む方法を実行させるコンピュータ・プログラムを提供する。
本発明によれば、アプリケーションにおいて多数の潜在的なオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
また、本発明によれば、アプリケーションにおいて様々な大きさや形状を有するオブジェクトが存在する場合であっても、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
本発明のその他の特徴及び利点は、後述する実施形態の説明、添付の図面及び特許請求の範囲の記載から明らかなものとなる。
[本発明の実施形態の説明]
最初に、本発明の実施形態の内容を列記して説明する。本発明の実施形態によるコンピュータ・プログラムは、以下のような構成を備える。
最初に、本発明の実施形態の内容を列記して説明する。本発明の実施形態によるコンピュータ・プログラムは、以下のような構成を備える。
(項目1)
コンピュータにアプリケーションを実行させるコンピュータ・プログラムであって、前記コンピュータに、
前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像が記憶部に格納されているか否かを判定するステップと、
前記画像が前記記憶部に格納されていない場合、前記コンピュータに接続されたサーバにアクセスして、前記サーバから前記画像を取得するステップと、
前記画像を、所定の幅を有する複数の部分画像へと分割するステップと、
前記複数の部分画像を含むよう、前記記憶部に格納されている現在のテクスチャアトラスを更新して、更新されたテクスチャアトラスを生成するステップと
を含む方法を実行させるコンピュータ・プログラム。
コンピュータにアプリケーションを実行させるコンピュータ・プログラムであって、前記コンピュータに、
前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像が記憶部に格納されているか否かを判定するステップと、
前記画像が前記記憶部に格納されていない場合、前記コンピュータに接続されたサーバにアクセスして、前記サーバから前記画像を取得するステップと、
前記画像を、所定の幅を有する複数の部分画像へと分割するステップと、
前記複数の部分画像を含むよう、前記記憶部に格納されている現在のテクスチャアトラスを更新して、更新されたテクスチャアトラスを生成するステップと
を含む方法を実行させるコンピュータ・プログラム。
本項目のコンピュータ・プログラムによれば、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
(項目2)
前記方法は、前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像のリストを前記サーバから取得するステップをさらに含み、
前記判定するステップは、前記画像のリストに含まれるすべての画像が前記記憶部に格納されているか否かを判定するステップを含む項目1に記載のコンピュータ・プログラム。
(項目2)
前記方法は、前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像のリストを前記サーバから取得するステップをさらに含み、
前記判定するステップは、前記画像のリストに含まれるすべての画像が前記記憶部に格納されているか否かを判定するステップを含む項目1に記載のコンピュータ・プログラム。
本項目のコンピュータ・プログラムによれば、アプリケーション内で生じた動作に応じて、テクスチャアトラスを動的に生成することができる。
(項目3)
前記方法は、前記複数の部分画像の各々について、前記更新されたテクスチャアトラス内における位置情報を前記記憶部に格納するステップをさらに含む項目1又は2に記載のコンピュータ・プログラム。
(項目3)
前記方法は、前記複数の部分画像の各々について、前記更新されたテクスチャアトラス内における位置情報を前記記憶部に格納するステップをさらに含む項目1又は2に記載のコンピュータ・プログラム。
本項目のコンピュータ・プログラムによれば、必要な部分画像をテクスチャアトラスから取得することが容易になる。
(項目4)
前記方法は、
前記位置情報に基づいて、表示するべき画像に対応する複数の部分画像を前記更新されたテクスチャアトラスから取得するステップと、
取得された前記複数の部分画像を合成して画像を生成し、生成された前記画像を前記表示部に表示するステップと
をさらに含む項目3に記載のコンピュータ・プログラム。
(項目4)
前記方法は、
前記位置情報に基づいて、表示するべき画像に対応する複数の部分画像を前記更新されたテクスチャアトラスから取得するステップと、
取得された前記複数の部分画像を合成して画像を生成し、生成された前記画像を前記表示部に表示するステップと
をさらに含む項目3に記載のコンピュータ・プログラム。
本項目のコンピュータ・プログラムによれば、生成されたテクスチャアトラスを用いて描画処理を高速に実行できる。
(項目5)
前記複数の部分画像は、前記現在のテクスチャアトラスに含まれる他の複数の部分画像に対して隙間なく配置される項目1乃至4のいずれか1項に記載のコンピュータ・プログラム。
(項目5)
前記複数の部分画像は、前記現在のテクスチャアトラスに含まれる他の複数の部分画像に対して隙間なく配置される項目1乃至4のいずれか1項に記載のコンピュータ・プログラム。
本項目のコンピュータ・プログラムによれば、テクスチャアトラス内に部分画像を効率的に配置することが容易になる。
(項目6)
前記複数の部分画像及び前記他の複数の部分画像は同一の幅を有する項目5に記載のコンピュータ・プログラム。
(項目6)
前記複数の部分画像及び前記他の複数の部分画像は同一の幅を有する項目5に記載のコンピュータ・プログラム。
本項目のコンピュータ・プログラムによれば、テクスチャアトラス内に部分画像を効率的に配置することが容易になる。
(項目7)
前記分割するステップ及び前記生成するステップは、前記コンピュータのグラフィックス処理ユニットによって実行される項目1乃至6のいずれか1項に記載のコンピュータ・プログラム。
(項目7)
前記分割するステップ及び前記生成するステップは、前記コンピュータのグラフィックス処理ユニットによって実行される項目1乃至6のいずれか1項に記載のコンピュータ・プログラム。
本項目のコンピュータ・プログラムによれば、高速な描画処理が可能となる。
(項目8)
前記方法は、前記表示部に表示するべき画像に対応しない部分画像を前記現在のテクスチャアトラスから削除するステップをさらに含む項目1乃至7のいずれか1項に記載のコンピュータ・プログラム。
(項目8)
前記方法は、前記表示部に表示するべき画像に対応しない部分画像を前記現在のテクスチャアトラスから削除するステップをさらに含む項目1乃至7のいずれか1項に記載のコンピュータ・プログラム。
本項目のコンピュータ・プログラムによれば、テクスチャアトラスの領域を効率的に利用できる。
(項目9)
前記サーバから前記画像を取得する前記ステップは、前記アプリケーション内での動作に応じてオブジェクトを別の方向から見たときの画像が表示されるべきである場合において、該画像が前記記憶部に格納されていないとき、該画像を前記サーバから取得するステップを含む項目1乃至8のいずれか1項に記載のコンピュータ・プログラム。
(項目9)
前記サーバから前記画像を取得する前記ステップは、前記アプリケーション内での動作に応じてオブジェクトを別の方向から見たときの画像が表示されるべきである場合において、該画像が前記記憶部に格納されていないとき、該画像を前記サーバから取得するステップを含む項目1乃至8のいずれか1項に記載のコンピュータ・プログラム。
本項目のコンピュータ・プログラムによれば、様々な方向から見たオブジェクトを表示することが必要なアプリケーションにおいて、テクスチャアトラスを動的に生成することができる。
[本発明の実施形態の詳細]
以下、図面を参照して、本発明の実施形態によるコンピュータ・プログラムについて説明する。
以下、図面を参照して、本発明の実施形態によるコンピュータ・プログラムについて説明する。
図1は、本発明の実施形態によるコンピュータ・プログラムを実行するためのコンピュータ・システム100の全体概略図である。図1には、コンピュータ・システム100の主要な構成要素のみが示されている。コンピュータ・システム100は、ユーザ端末102A〜102D(以後、「ユーザ端末」、「ユーザ端末102」と総称する)及びサーバ116を備える。ユーザ端末102及びサーバ116はネットワーク114(例えば、インターネット)を介して互いに通信する。以下では、本発明の実施形態のコンピュータ・プログラムの一例として、多数のオブジェクトが登場し得るアプリケーション・プログラム(例えば、街に建物などを配置して発展させていくゲーム・アプリケーション・プログラム)を想定する。しかし、本発明の実施形態はこのようなコンピュータ・プログラムに限定されない。様々なオブジェクトを表示することを必要とする多種多様なアプリケーションを実行するプログラムに対して本発明を適用できることを理解されたい。
ユーザ端末102は、本発明の実施形態のコンピュータ・プログラムを実行する任意のコンピューティング・デバイスとすることができる。ユーザ端末102の例は、パーソナル・コンピュータ(PC)、スマートフォン、タブレット端末、ゲーム・コンソール、ノートPCなどを含むが、これらに限定されない。図示されるように、ユーザ端末102は、表示部104、入力部106、制御部108、通信部110及び記憶部112などを備える。これらのコンポーネントはバスを介して相互に接続される。
通信部110は、サーバ116からデータやプログラムを受信し、これらは記憶部112に格納される。通信部110はまた、ユーザ端末102において実行されるアプリケーションの進行に応じて、データや要求を適宜サーバ116に送信する。アプリケーションの進行に応じて、制御部108は、表示するべきオブジェクトの画像を生成する。表示部104は当該画像を表示する。表示部104は、液晶ディスプレイ(LCD)などによって実現することができる。一例として、ユーザ端末102がスマートフォンやタブレット端末である場合、表示部104はタッチ・ディスプレイとして構成されてもよい。入力部106は、アプリケーションを進行させるためのユーザ作用全般の命令の入力に使用される。
入力部106が受け取った入力に基づいて、制御部108はアプリケーションを進行させる。記憶部112は、ユーザ端末102に関連付けられる各種のデータ及びプログラムを格納してもよい。記憶部112は、さらに、サーバ116から受信されるデータやプログラムなどを格納してもよい。
サーバ116は、制御部118、メインメモリ120、外部メモリ122、ユーザ・インタフェース124、通信部126、及びディスク・ドライブ128などを備える。これらはバスを介して相互に接続される。制御部118は、外部メモリ122に格納されたプログラム・モジュール、及びディスク・ドライブ128に格納されたユーザ・データ、アプリケーション進行データなどの各種データをメインメモリ120にロードする。制御部118はまた、ユーザ端末102におけるアプリケーションの進行に応じて変化するアプリケーション内の環境などに関するデータを管理する。制御部118は、必要に応じて、通信部126を介してユーザ端末102にこれらのデータを提供する。ユーザ・インタフェース124は、サーバ116の管理者がサーバ116にアクセスするのに用いられる。これにより、各種サーバ機能の設定やネットワーク設定が実施される。
図2は、例示的なユーザ端末102の基本構成に関するブロック図を示す。ユーザ端末102はスマートフォンなどのモバイル端末であってもよい。しかし、本発明の実施形態は、図1に関連して説明したような様々な種類のユーザ端末上で実行することができる。
図2に示されるように、ユーザ端末102は、表示部204、制御部208及び記憶部212を備える。図示しないが、ユーザ端末102は、表示部204を含むタッチ・ディスプレイを備えてもよい。タッチ・ディスプレイは、表示部204に対する人の指やスタイラスなどの物体による接触操作(主に、タッチ操作、スワイプ(スライド)操作及びタップ操作などの物理的接触操作)を検知する接触検知部/タッチパネルを含んでもよい。
制御部208は、本発明の実施形態によるコンピュータ・プログラムを実行して、ユーザ端末102を動作させるように構成される。制御部208は、中央演算処理装置(CPU)214及びグラフィックス処理ユニット(GPU)216を備えることができる。制御部208の詳細については図3で後述する。記憶部212は、コンピュータ・プログラム、ユーザやアプリケーションに関連する各種データなどを格納し、制御部208からの命令に応答して、情報の格納、更新、削除などを実行する。
図3は、ユーザ端末102に実装される制御部208の機能ブロック図を示す。図3はまた、制御部208と情報をやり取りする、サーバ116、記憶部212及び表示部204を示している。制御部208は、画像リスト比較部304、第1の画像取得部306、画像分割部308、テクスチャアトラス更新部310、第2の画像取得部314、画像生成部316及び画像出力部318として動作するように構成されてもよい。テクスチャアトラス更新部310は、画像位置決定部312を含んでもよい。記憶部212は、テクスチャアトラス320、テクスチャアトラスにおける画像位置情報(例えば、頂点情報)322、オブジェクト画像及びリスト324、並びに表示部における画像配置情報326などのデータを格納することができる。図3に示される各コンポーネントは以下で具体的に説明される。
図4は、アプリケーションが進行し、オブジェクトAの画像402及びオブジェクトBの画像404が既にユーザ端末102の表示部204に表示されているときの、テクスチャアトラス320の構成を説明する図である。図4(a)に示すように、画像402及び404が表示部204に表示されている。画像402及び404は、第1の画像取得部306によってサーバ116から取得されて、記憶部212内のオブジェクト画像及びリスト324に格納されている。図4(a)に示すように表示される際、オブジェクトAの画像402はまず、図4(b)に示すように、画像分割部308によって所定の幅Wを有する部分画像A1、A2及びA3へと分割される。この例では、部分画像A1乃至A3は同一の長さを有している。しかし、画像402は、異なる長さを有する部分画像A1乃至A3へと分割されてもよい。次いで、図4(c)に示すように、部分画像A1乃至A3は、テクスチャアトラス更新部310によって、記憶部212に格納されるテクスチャアトラス320内に隙間なく配置される。同様に、オブジェクトBの画像404は、幅Wを有する部分画像B1及びB2としてテクスチャアトラス320内に配置される。画像分割部308及びテクスチャアトラス更新部310による動作は、図2に示すGPU216によって実行されてもよい。これにより、CPU214からGPU216に対して発行される命令の数を減らすことができ、高速な描画処理が可能となる。
図5は、記憶部212に格納されている、テクスチャアトラスにおける画像位置情報322について説明する図である。一例として、部分画像の位置情報は、テクスチャアトラス320内のXY座標のデータとして格納されてもよい。例えば、図示されるように、部分画像A1は、4つの頂点502、504、506及び508を有する。これら4つの頂点の座標によって、テクスチャアトラス320における部分画像A1の位置を特定することができる。図5に示す例において、頂点502の座標は(0,0)であり、頂点504の座標は(64,0)であり、頂点506の座標は(0,256)であり、頂点508の座標は(64,256)である。同様に、部分画像A2は、4つの頂点(0,256)、(64,256)、(0,512)及び(64,512)を有する。また、部分画像A3は、4つの頂点(0,512)、(64,512)、(0,768)及び(64,768)を有する。図5(b)に示すように、テクスチャアトラスにおける画像位置情報322は、オブジェクト画像A及びBの各々を構成する部分画像に関する情報、各部分画像の頂点情報などを含むことができる。図5に示されるテクスチャアトラス320のサイズは一例にすぎない。例えば、テクスチャアトラス320は、2048ピクセル×2048ピクセルのサイズを有してもよいし、他の様々なサイズを有してもよい。
図6は、図4に示す状態からアプリケーションがさらに進行したときの描画処理を模式的に示す。アプリケーションの進行に応じて、オブジェクトAの画像602及びオブジェクトBの画像604に加えて、図6(a)に点線で示すようにオブジェクトCの画像606を表示部204に表示する必要が生じた場合を考える。画像リスト比較部304は、サーバ116から得られた表示するべきオブジェクト画像のリストと、記憶部212に格納されているオブジェクト画像のリスト324とを比較する。この時点では、オブジェクトA、B及びCの画像602、604及び606を表示するべきであるのに対して、図4及び図5において示したように記憶部212にはオブジェクトA及びBの画像しか格納されていない。したがって、画像リスト比較部304は、オブジェクトCの画像606の取得の指示を第1の画像取得部306に送る。当該指示に応答して、第1の画像取得部306は、サーバ116にアクセスして画像606を取得し、これを記憶部212のオブジェクト画像及びリスト324に格納する。次いで、図6(b)に示すように、画像分割部308は、画像606を、所定の幅を有する複数の部分画像C1、C2及びC3に分割する。ここで、所定の幅は、図4に示される部分画像A1などの幅Wと同一とすることができる。次いで、図6(c)に示すように、テクスチャアトラス更新部310は、部分画像C1乃至C3を含むようにテクスチャアトラス320を更新して、更新されたテクスチャアトラス320を生成する。画像位置決定部312は、テクスチャアトラスにおける部分画像C1乃至C3が配置される位置を決定し、当該位置を、記憶部212の画像位置情報322に格納する。このとき、部分画像C1乃至C3は、テクスチャアトラス320内に既に含まれている部分画像A1、A2、A3、B1及びB2に対して、隙間なく整列するように配置される。本発明の一実施形態によれば、すべての部分画像が同一の幅Wを有するので、隙間のないテクスチャアトラス320を容易に生成することが可能となる。
図7は、図6において生成された、更新されたテクスチャアトラス320を用いて、表示部204にオブジェクトA、B及びCの画像702、704及び706を表示する様子を示す。第2の画像取得部314は、記憶部212に格納されているテクスチャアトラス320及びテクスチャアトラスにおける画像位置情報322に基づいて、部分画像A1乃至A3、B1及びB2、並びにC1乃至C3を取得する。例えば、第2の画像取得部314は、図5(b)に示すような画像位置情報322から、画像702を構成する部分画像A1乃至A3の頂点情報を得て、当該頂点情報に基づいて、テクスチャアトラス320からこれらの部分画像を取得する。次いで、画像生成部316は、図7(b)に示すように、取得された部分画像A1、A2及びA3を合成して画像702を生成する。画像704及び706も同様に生成される。記憶部212は、画像702、704及び706の各々が配置されるべき表示部204上の位置を示す情報(表示部における画像配置情報326)を格納している。画像出力部318は、生成された画像702、704及び706並びに画像配置情報326に基づいて、図7(c)に示すように、これらの画像を表示部204に表示させる。
図8は、図7(c)に示す状態からアプリケーションがさらに進行したときの描画処理を模式的に示す。ここでは、アプリケーションの進行に応じて、図8(a)に示すように、オブジェクトA及びBの画像702及び704を表示部204から除去し、且つ、点線で示すようにオブジェクトDの画像808を表示部204に表示することが必要になった場合を考える。画像リスト比較部304は、サーバ116から得られる表示するべき画像のリストと、オブジェクト画像のリスト324とを比較する。この例では、オブジェクトC及びDの画像を表示するべきであるのに対して、記憶部212にはオブジェクトA、B及びCの画像しか格納されていない。したがって、画像リスト比較部304は、オブジェクトDの画像808の取得の指示を第1の画像取得部306に送る。当該指示に応答して、第1の画像取得部306は、サーバ116にアクセスしてオブジェクトDの画像808を取得し、これを記憶部212のオブジェクト画像及びリスト324に格納する。次いで、図8(b)に示すように、画像分割部308は、画像808を、所定の幅を有する複数の部分画像D1乃至D5に分割する。ここで、所定の幅は、図4に示される部分画像A1などの幅Wと同一であってもよい。次いで、図8(c)に示すように、テクスチャアトラス更新部310は、部分画像A1、A2、A3、B1及びB2をテクスチャアトラス320から削除し、部分画像D1乃至D5をテクスチャアトラス320に追加することによって、テクスチャアトラス320を更新する。このとき、図8(c)に示すように、部分画像C1乃至C3は、部分画像A1、A2、A3、B1及びB2の削除によって生じた空き領域に移動されてもよい。そして、部分画像D1乃至D5が、移動された部分画像C1乃至C3に対して隙間なく配置されてもよい。あるいは、部分画像D1乃至D5は、部分画像A1、A2、A3、B1及びB2の削除によって生じた空き領域に配置されてもよい。次いで、図7において説明した動作と同様の動作が、画像位置決定部312、第2の画像取得部314、画像生成部316及び画像出力部318によって実行され、画像806及び808が表示部204に表示される。
図9は、図8の処理の後にアプリケーションがさらに進行したときの描画処理を模式的に示す。ここでは、オブジェクトCが円筒形状を有していると仮定する。そして、アプリケーションの進行に応じて、オブジェクトCの表示を、図8に示す正面から見た状態から、図9(a)に示す斜め上の方向から見た状態へと変化させる必要が生じた場合を考える。画像リスト比較部304は、サーバ116から得られる表示するべき画像のリストと、記憶部212に格納されているオブジェクト画像のリスト324とを比較する。この例では、斜め上の方向から見たオブジェクトC’の画像906’及びオブジェクトDの画像908を表示するべきであるのに対して、記憶部212にはオブジェクトA、B及びDの画像並びにオブジェクトCを正面から見たときの画像しか格納されていない。したがって、画像リスト比較部304は、画像906’の取得の指示を第1の画像取得部306に送る。当該指示に応答して、第1の画像取得部306は、サーバ116にアクセスしてオブジェクトC’の画像906’を取得し、これを記憶部212のオブジェクト画像及びリスト324に格納する。次いで、図9(b)に示すように、画像分割部308は、画像906’を、所定の幅を有する複数の部分画像C’1乃至C’3に分割する。ここで、所定の幅は、図4に示される部分画像A1などの幅Wと同一であってもよい。次いで、図9(c)に示すように、テクスチャアトラス更新部310は、部分画像C1乃至C3をテクスチャアトラス320から削除し、部分画像C’1乃至C’3をテクスチャアトラス320に追加することによって、テクスチャアトラス320を更新する。次いで、図7において説明した動作と同様の動作が、画像位置決定部312、第2の画像取得部314、画像生成部316及び画像出力部318によって実行され、画像906’及び908が表示部204に表示される。
図10は、本発明の実施形態のコンピュータ・プログラムにより実現される、テクスチャアトラスの動的な生成及び表示部へのオブジェクト画像の表示に関する処理のフロー図である。処理はステップ1002において開始する。サーバ116とユーザ端末102とは、実行されるアプリケーションに関するデータや要求などを互いに通信する。したがって、ユーザ端末102におけるアプリケーションの実行により、アプリケーション内の状況(例えば、表示するべきオブジェクトの種類やその位置など)が変化すると、その情報はサーバ116によって共有される。ステップ1004において、サーバ116は、アプリケーション内においてなされたユーザアクションやイベントなどの動作に関する情報をユーザ端末102から取得し、表示部204に表示するべきオブジェクト画像を決定する。ユーザ端末102は、アプリケーション内での動作に応じて表示するべきオブジェクト画像のリストをサーバ116から取得する。ステップ1006において、画像リスト比較部304は、当該オブジェクト画像のリストを、記憶部212に格納されているオブジェクト画像のリスト324と比較する。これにより、画像リスト比較部304は、サーバ116から得られたリストに含まれるすべてのオブジェクト画像が記憶部212に格納されているか否かを判定する。すべての画像が既に格納されている場合(ステップ1006の「はい」)、処理は後述されるステップ1012に移る。いずれかの画像がまだ格納されていない場合(ステップ1006の「いいえ」)、処理はステップ1008に進む。ステップ1008において、第1の画像取得部306は、記憶部212に格納されていない(オブジェクトの画像及びリスト324に含まれていない)画像をサーバ116から取得する。このとき、取得された画像及びその関連情報(画像ファイル名など)が、記憶部212のオブジェクト画像及びリスト324に格納される。また、表示するべき画像の各々について、表示部204上での配置位置に関する情報が、画像配置情報326に格納される。ステップ1010において、画像分割部308は、取得された画像を、所定の幅(例えば、同一の幅W)を有する複数の部分画像へと分割する。ステップ1012において、テクスチャアトラス更新部310は、表示するべき画像に対応しない部分画像を、記憶部212に格納されている現在のテクスチャアトラスから削除する。テクスチャアトラス更新部310はまた、表示するべき画像に対応する部分画像を含むよう、現在のテクスチャアトラス320を更新する。例えば、ステップ1010によって得られた部分画像が現在のテクスチャアトラスに追加される。これらの処理によって、テクスチャアトラス更新部310は、更新されたテクスチャアトラス320を生成する。ステップ1014において、画像位置決定部312は、更新されたテクスチャアトラス320に含まれる部分画像の各々について、当該更新されたテクスチャアトラス320内における位置情報(例えば、頂点情報)を記憶部212の画像位置情報322に格納する。ステップ1016において、第2の画像取得部314は、画像位置情報322に基づいて、表示するべき画像に対応する部分画像を、更新されたテクスチャアトラス320から取得する。ステップ1018において、画像生成部316は、ステップ1016において取得された部分画像を合成して、表示するべき画像を生成する。ステップ1020において、画像出力部318は、画像配置情報326に基づいて、ステップ1018によって生成された画像を表示部204上に表示する。処理はステップ1022において終了する。
図10によって説明された本発明の実施形態は、(1)多数のオブジェクトが存在する場合であっても、テクスチャアトラスの動的な生成を高速に実行することを可能にする実施形態と、(2)様々な大きさや形状を有するオブジェクトが存在する場合であっても、テクスチャアトラスの効率的な生成を高速に実行することを可能にする実施形態との組み合わせである。これら2つの実施形態は、それぞれ独立して、本発明の1つの実施形態となり得る。以下では、これら2つの実施形態を別々に説明する。
図11は、本発明の実施形態のコンピュータ・プログラムにより実現される、テクスチャアトラスの動的な生成及び表示部へのオブジェクト画像の表示に関する処理のフロー図である。処理はステップ1102において開始する。ステップ1104において、サーバ116は、アプリケーション内でなされたユーザアクションやイベントなどの動作に関する情報をユーザ端末102から取得し、表示部204に表示するべきオブジェクト画像を決定する。次いで、ユーザ端末102は、アプリケーション内で生じた動作に応じて表示するべきオブジェクト画像のリストをサーバ116から取得する。ステップ1106において、画像リスト比較部304は、当該オブジェクト画像のリストを、記憶部212に格納されているオブジェクト画像のリスト324と比較する。これにより、画像リスト比較部304は、サーバ116から得られたリストに含まれるすべての画像が記憶部212に格納されているか否かを判定する。すべての画像が既に格納されている場合(ステップ1106の「はい」)、処理は後述されるステップ1112に移る。いずれかの画像がまだ格納されていない場合(ステップ1106の「いいえ」)、処理はステップ1108に進む。ステップ1108において、第1の画像取得部306は、記憶部212に格納されていない(オブジェクトの画像及びリスト324に含まれていない)画像をサーバ116から取得する。取得された画像及びその関連情報(画像ファイル名など)は、オブジェクトの画像及びリスト324に格納される。また、表示するべき画像の各々について、表示部204上での配置位置に関する情報が、画像配置情報326に格納される。ステップ1112において、テクスチャアトラス更新部310は、表示するべき画像に対応しない画像を、記憶部212に格納されている現在のテクスチャアトラス320から削除する。テクスチャアトラス更新部310はまた、表示するべき画像を含むよう、現在のテクスチャアトラス320を更新する。例えば、ステップ1108によって取得された画像が現在のテクスチャアトラス320に追加される。これらの処理によって、テクスチャアトラス更新部310は、更新されたテクスチャアトラス320を生成する。ステップ1114において、画像位置決定部312は、更新されたテクスチャアトラス320に含まれる画像の各々について、当該更新されたテクスチャアトラス内における位置情報(例えば、頂点情報)を記憶部212の画像位置情報322に格納する。ステップ1116において、第2の画像取得部314は、画像位置情報322に基づいて、表示するべき画像を、更新されたテクスチャアトラス320から取得する。ステップ1120において、画像出力部318は、画像配置情報326に基づいて、ステップ1116によって取得された画像を表示部204に表示する。処理はステップ1122において終了する。図11に示す構成によれば、アプリケーションにおいて膨大な数の潜在的なオブジェクトが存在する場合であっても、アプリケーションの進行状況に応じて、その都度必要なオブジェクトの画像だけを含むテクスチャアトラスを動的に生成することができる。したがって、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
図12は、本発明の実施形態のコンピュータ・プログラムにより実現される、テクスチャアトラスの動的な生成及び表示部へのオブジェクト画像の表示に関する処理のフロー図である。処理はステップ1202において開始する。ステップ1204において、第1の画像取得部306は、アプリケーション内においてなされたユーザアクションやイベントなどの動作に応じて、表示するべきオブジェクト画像を取得する。このとき、ユーザ端末102は、表示するべきオブジェクト画像のリストなどの情報をサーバ116から得て、当該情報に基づいて必要な画像をサーバ116や記憶部212から取得してもよい。ステップ1210において、画像分割部308は、取得された画像を、所定の幅(例えば、同一の幅W)を有する複数の部分画像へと分割する。ステップ1212において、テクスチャアトラス更新部310は、表示するべきオブジェクト画像に対応しない部分画像を、記憶部212に格納されている現在のテクスチャアトラス320から削除する。テクスチャアトラス更新部310はまた、表示するべき画像に対応する部分画像を含むよう、現在のテクスチャアトラス320を更新する。例えば、ステップ1210によって得られた部分画像が現在のテクスチャアトラス320に追加される。これらの処理によって、テクスチャアトラス更新部310は、更新されたテクスチャアトラスを生成する。ステップ1214において、画像位置決定部312は、更新されたテクスチャアトラスに含まれる部分画像の各々について、当該更新されたテクスチャアトラス内における位置情報(例えば、頂点情報)を記憶部212の画像位置情報322に格納する。ステップ1216において、第2の画像取得部314は、画像位置情報322に基づいて、表示するべき画像に対応する部分画像を、更新されたテクスチャアトラス320から取得する。ステップ1218において、画像生成部316は、ステップ1216において取得された部分画像を合成して、表示するべき画像を生成する。ステップ1220において、画像出力部318は、画像配置情報326に基づいて、ステップ1218によって生成された画像を表示部204に表示する。処理はステップ1022において終了する。図12に示す構成によれば、アプリケーションにおいて様々な大きさや形状を有するオブジェクトが存在する場合であっても、アプリケーションの進行状況に応じて、テクスチャアトラスの効率的な生成を高速に実行することができる。したがって、コンピュータにかかる負荷の増大を抑制し、描画処理を高速に実行することができる。
以上、本発明の実施形態によるコンピュータ・プログラムについて具体的に説明したが、上述の実施形態は例示に過ぎず、本発明の範囲を限定するものではない。本発明の技術的思想は、コンピュータ・プログラムのほか、説明した実施形態のステップを含むコンピュータにより実施される方法や、説明した実施形態の各コンポーネントを備えるコンピューティング・デバイスとして実施することが可能であることが理解されよう。また、本発明の趣旨及び範囲から逸脱することなく、実施形態の変更、追加、改良などを適宜行うことができることが理解されるべきである。本発明の範囲は、特許請求の範囲の記載に基づいて解釈されるべきであり、さらにその均等物を含むものと理解されるべきである。
Claims (9)
- コンピュータにアプリケーションを実行させるコンピュータ・プログラムであって、前記コンピュータに、
前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像が記憶部に格納されているか否かを判定するステップと、
前記画像が前記記憶部に格納されていない場合、前記コンピュータに接続されたサーバにアクセスして、前記サーバから前記画像を取得するステップと、
前記画像を、所定の幅を有する複数の部分画像へと分割するステップと、
前記複数の部分画像を含むよう、前記記憶部に格納されている現在のテクスチャアトラスを更新して、更新されたテクスチャアトラスを生成するステップと
を含む方法を実行させるコンピュータ・プログラム。 - 前記方法は、前記アプリケーション内で生じた動作に応じて、表示部に表示するべきオブジェクトの画像のリストを前記サーバから取得するステップをさらに含み、
前記判定するステップは、前記画像のリストに含まれるすべての画像が前記記憶部に格納されているか否かを判定するステップを含む請求項1に記載のコンピュータ・プログラム。 - 前記方法は、前記複数の部分画像の各々について、前記更新されたテクスチャアトラス内における位置情報を前記記憶部に格納するステップをさらに含む請求項1又は2に記載のコンピュータ・プログラム。
- 前記方法は、
前記位置情報に基づいて、表示するべき画像に対応する複数の部分画像を前記更新されたテクスチャアトラスから取得するステップと、
取得された前記複数の部分画像を合成して画像を生成し、生成された前記画像を前記表示部に表示するステップと
をさらに含む請求項3に記載のコンピュータ・プログラム。 - 前記複数の部分画像は、前記現在のテクスチャアトラスに含まれる他の複数の部分画像に対して隙間なく配置される請求項1乃至4のいずれか1項に記載のコンピュータ・プログラム。
- 前記複数の部分画像及び前記他の複数の部分画像は同一の幅を有する請求項5に記載のコンピュータ・プログラム。
- 前記分割するステップ及び前記生成するステップは、前記コンピュータのグラフィックス処理ユニットによって実行される請求項1乃至6のいずれか1項に記載のコンピュータ・プログラム。
- 前記方法は、前記表示部に表示するべき画像に対応しない部分画像を前記現在のテクスチャアトラスから削除するステップをさらに含む請求項1乃至7のいずれか1項に記載のコンピュータ・プログラム。
- 前記サーバから前記画像を取得する前記ステップは、前記アプリケーション内での動作に応じてオブジェクトを別の方向から見たときの画像が表示されるべきである場合において、該画像が前記記憶部に格納されていないとき、該画像を前記サーバから取得するステップを含む請求項1乃至8のいずれか1項に記載のコンピュータ・プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015199246A JP2017072977A (ja) | 2015-10-07 | 2015-10-07 | コンピュータ・プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015199246A JP2017072977A (ja) | 2015-10-07 | 2015-10-07 | コンピュータ・プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017072977A true JP2017072977A (ja) | 2017-04-13 |
Family
ID=58537205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015199246A Pending JP2017072977A (ja) | 2015-10-07 | 2015-10-07 | コンピュータ・プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017072977A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2593206A (en) * | 2020-03-19 | 2021-09-22 | Samsung Electronics Co Ltd | Method, apparatus and computer program for generating or updating a texture atlas |
-
2015
- 2015-10-07 JP JP2015199246A patent/JP2017072977A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2593206A (en) * | 2020-03-19 | 2021-09-22 | Samsung Electronics Co Ltd | Method, apparatus and computer program for generating or updating a texture atlas |
US11514619B2 (en) | 2020-03-19 | 2022-11-29 | Samsung Electronics Co., Ltd. | Method, apparatus and computer program for generating or updating a texture atlas |
GB2593206B (en) * | 2020-03-19 | 2023-04-26 | Samsung Electronics Co Ltd | Method, apparatus and computer program for generating or updating a texture atlas |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6591405B2 (ja) | 頂点シェーダ出力パラメータの圧縮スキーム | |
JP6230702B2 (ja) | 頂点シェーダ演算を実行するフラグメントシェーダ | |
JP2013513873A (ja) | ディスプレイ面を複数の仮想ディスプレイ区域に区分化するための装置及び方法 | |
CN106575158B (zh) | 环境映射虚拟化机构 | |
KR20060052717A (ko) | 가상 데스크 탑, 프로그램 예의 배열을 리콜링하는 방법, 애플리케이션 예를 관리하는 방법 및 애플리케이션을 관리하는 방법 | |
WO2019033995A1 (zh) | 一种页面更新方法和装置 | |
JP2016212859A (ja) | 両眼視差映像に対するレンダリング方法及びその装置 | |
JP6532981B2 (ja) | 持続的ノードフレームワーク | |
JP2018509686A (ja) | インクストロークの編集および操作 | |
CN110020300B (zh) | 一种浏览器页面合成方法及终端 | |
US20140059114A1 (en) | Application service providing system and method and server apparatus and client apparatus for application service | |
CN112604289B (zh) | 游戏地图生成方法、装置、设备和存储介质 | |
JP2010539754A (ja) | デジタル画像をキャプチャするためのシステム及び方法 | |
JP2014512597A (ja) | 三次元ビューイングの方法 | |
JP2024521202A (ja) | ページ処理方法、装置、電子機器および可読記憶媒体 | |
CN107077347B (zh) | 视图管理架构 | |
JP2023026531A (ja) | バーチャルキャラクター生成方法、装置、電子機器、記憶媒体及びコンピュータプログラム | |
US10403040B2 (en) | Vector graphics rendering techniques | |
CN109598672B (zh) | 一种地图道路渲染方法及装置 | |
CN109800039B (zh) | 一种用户界面展示方法、装置、电子设备及存储介质 | |
JP2017072977A (ja) | コンピュータ・プログラム | |
US10262631B1 (en) | Large scale highly detailed model review using augmented reality | |
CN113487704B (zh) | 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备 | |
JP2010092103A (ja) | Webページ表示方法、サーバ装置、及びプログラム | |
JP7480076B2 (ja) | コンテンツ作成システム及び方法 |