実施の形態1.
実施の形態1では、一例として、シーン全体の描画の情報である描画情報内に、同一シーンに描画サイズ差が大きい描画対象が混在している場合について、本開示を適用した場合を以下に説明する。
本開示を適用する描画処理システムでは、まず描画対象が、詳細に描画を行う詳細描画処理を適用してから描画先バッファに描画する適用描画対象と、詳細描画処理は適用せず、描画先バッファにそのまま描画する不適用描画対象とに分けられる。描画処理システムは、不適用描画対象を描画先バッファにそのまま描画し、適用描画対象を描画先バッファとは別のバッファである詳細バッファに拡大描画してから、適用描画対象の透過度を表すアルファ値と色を表すRGB値とを算出し、詳細バッファを描画先バッファと同じ大きさに縮小する。描画処理システムは、描画先バッファに対して算出した適用描画対象のアルファ値で適用描画対象のRGB値をアルファブレンドすることにより、適用描画対象を描画先バッファに描画する。このようにすることによって、シーン全体について詳細描画処理を適用しなくてもいいため、描画対象を表示画面上から消失させないように描画することによる描画処理負荷を低減させることができる。以下に詳細に説明する。
図1は、実施の形態1に係る描画処理装置100を含む描画処理システム1のブロック図である。描画処理システム1は、描画情報に含まれる各描画対象において詳細描画処理を適用するか否かのタグ情報と描画情報とが入力される入力装置4と、描画情報とタグ情報とを用いて、描画情報を描画する処理を行う描画処理装置100と、描画処理装置100で処理されたシーンを出力する出力装置5とを備えている。
入力装置4は、例えば、ユーザーによって入力されたポリゴンモデルなどの描画対象の情報を含むシーン全体の描画情報を受け付ける。ユーザーは、各描画対象に対して、描画サイズの大きさ、輝度、重要度などを見て、適用描画対象と不適用描画対象とのいずれであるかのタグ付けをする。入力装置4は、ユーザーによって各描画対象に対するタグ付けをタグ情報として入力を受け付ける。
描画処理装置100は、描画情報に含まれる描画対象を描画先バッファにシーンとして描画する描画処理を行う。具体的には、描画処理装置100は、詳細描画処理を適用しないとタグ付けされた不適用描画対象を描画先バッファに描画する。描画処理装置100は、詳細描画処理を適用するとタグ付けされた適用描画対象を描画先バッファとは別のバッファである詳細バッファに拡大して描画する。描画処理装置100は、拡大時の描画された面積の割合からアルファ値を算出する。描画処理装置部100は、拡大時に色が塗られたピクセルの色の平均値からRGB値を算出する。描画処理装置部100は、詳細バッファを描画先バッファと同じサイズに縮小する。描画処理装置100は、算出したアルファ値でRGB値をアルファブレンドして適用描画対象を描画先バッファに描画する。このように、描画処理装置100は、すべての描画対象に対して詳細描画処理を適用するのではなく、詳細描画処理が必要な適用描画対象にのみ詳細描画処理を適用するため、描画処理負荷を低減させることができる。
出力装置5は、描画処理装置100で描画先バッファに描画されたシーンを出力する。出力装置5は、例えば、ディスプレイなどの表示装置であり、描画処理装置100で描画先バッファに描画されたシーンを表示する。
次に描画処理装置100について、同様に図1を用いて、以下に説明する。
描画処理装置100は、入力装置4から描画対象を含む描画情報とタグ情報とを取得する取得部101と、描画先バッファと詳細バッファとを作成する作成部102と、タグ情報を用いて描画対象を詳細描画処理するか否か判定する適用判定部106と、詳細描画処理を適用しないとタグ付けされた不適用描画対象を描画先バッファに描画する描画部107と、詳細描画処理を適用するとタグ付けされた適用描画対象を詳細バッファに拡大して描画する拡大描画部108と、適用描画対象のアルファ値とRGB値とを算出し、詳細バッファを描画先バッファと同じサイズに縮小する算出部109と、アルファ値でRGB値をアルファブレンドして適用描画対象を描画先バッファに描画するブレンド処理部110と、出力装置5に描画先バッファに描画されたシーンを出力するよう制御する出力制御部111と、描画先バッファを記憶する描画先記憶部103と、拡大描画する際の詳細バッファを記憶する拡大描画記憶部104と、縮小する際の詳細バッファを記憶する縮小描画記憶部105とを備えている。
次に、実施の形態1に係る描画処理システム1のハードウェア構成について説明する。
図2は、実施の形態1に係る描画処理システム1のハードウェア構成図である。図2を用いて、実施の形態1に係る描画処理装置100を含む描画処理システム1の構成について説明する。
描画処理システム1は、一例として、バス41、CPU(Central Processing Unit)42、メインメモリ43、GPU(Graphics Processing Unit)44、グラフィックメモリ45、入力インターフェース46、出力インターフェース47とで構成されている。
バス41は、各装置間を電気的に接続し、データのやり取りを行う信号経路である。描画処理システム1の装置間及び機器間は通信を介して接続されている。用いる通信については、有線通信でも無線通信でもよい。
CPU42は、メインメモリ43に格納されるプログラムを読み込み、実行する。具体的には、CPU42は、メインメモリ42に記憶したOS(Operating System)の少なくとも一部をロードし、OSを実行しながら、プログラムを実行する。CPU42は、バス41を介して他の装置と接続し、当該装置を制御する。CPU42は、プロセッシングを行うIC(Integrated Circuit)であればいいので、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)であってもよい。
メインメモリ43は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアの組み合わせが記述されたプログラム、OSを記憶する。また、メインメモリ43は、各種情報等を記憶する。メインメモリ43は、例えば、RAM(Random Access Memory)等の揮発性の半導体メモリ、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、HDD(Hard Disk Drive)等の不揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disc)といった可搬記録媒体等である。
GPU44は、グラフィックメモリ45に格納されるプログラムを読み込み、描画処理を実行する。具体的には、GPU44は、グラフィックメモリ45に記憶したOSの少なくとも一部をロードし、OSを実行しながら、描画処理のプログラムを実行する。描画処理装置100の取得部101と、作成部102と、適用判定部16と、描画部107と、拡大描画部108と、算出部109と、ブレンド処理部110と、出力制御部111とは、GPU44がグラフィックメモリ45にロードしたプログラムを読み込み、実行することにより実現する。
グラフィックメモリ45は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアの組み合わせが記述されたプログラム、OSを記憶する。また、グラフィックメモリ45は、各種情報等を記憶する。グラフィックメモリ45は、例えば、RAM等の揮発性の半導体メモリ、ROM、フラッシュメモリ、EPROM、EEPROM、HDD等の不揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVDといった可搬記録媒体等である。描画処理装置100の取得部101と、作成部102と、適用判定部106と、描画部107と、拡大描画部108と、算出部109と、ブレンド処理部110と、出力制御部111とは、グラフィックメモリ45に記憶するプログラムによって実現する。また、描画先バッファを記憶する描画先記憶部103と、拡大描画する際の詳細バッファを記憶する拡大描画記憶部104と、縮小する際の詳細バッファを記憶する縮小描画記憶部105とは、グラフィックメモリ45によって実現される。
なお、グラフィックメモリ45は、描画処理装置100の取得部101と、作成部102と、適用判定部106と、描画部107と、拡大描画部108と、算出部109と、ブレンド処理部110と、出力制御部111との機能それぞれを別々のメモリで実現してもよい。また、描画先記憶部103と、拡大描画記憶部104と、縮小描画記憶部105それぞれを別々のメモリで実現してもよい。
実施の形態1では、描画処理装置100が行う描画処理を含む処理は、GPU44及びグラフィックメモリ45で行い、描画処理装置100が行う描画処理を含む処理以外の処理は、CPU42及びメインメモリ43で行う。なお、描画処理システム1は、CPU42とGPU44のどちらか一方だけ備えていて、備えている方がすべての処理を実現してもよい。また、描画処理システム1は、メインメモリ43とグラフィックメモリ45のどちらか一方だけ備えていて、備えているメモリが備えていない方のメモリと同様の機能を実現してもよい。各部の情報等は、メインメモリ43、グラフィックメモリ45のどちらに記憶されてもよい。また、各部の情報等は、メインメモリ43、グラフィックメモリ45を組み合わせて記憶されてもよい。
入力インターフェース46は、描画情報及びタグ情報を入力可能とする装置である。入力インターフェース46は、例えば、キーボード、マウス、音声入力などでの入力、通信を介した情報の受信などである。入力装置4は、入力インターフェース46にて実現する。
出力インターフェース47は、描画されたシーンを出力する装置である。出力インターフェース47は、例えば、ディスプレイ、プロジェクターなどの表示装置である。出力装置5は、出力インターフェース47にて実現する。
なお、描画処理システム1の各機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実現できる。描画処理システム1の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。例えば、描画処理システム1の一部は専用のハードウェアとしての処理回路でその機能を実現し、残りの部分はCPUがメモリに格納されたプログラムを読み出して実行することによってその機能を実現してもよい。ソフトウェア、ファームウェア、またはソフトウェアとファームウェアの組み合わせはプログラムとして記述されていればよい。
次に、描画処理システム1の動作について説明する。
図3は、実施の形態1に係る描画処理システム1の動作を示すフローチャートである。図3を用いて、描画処理システム1の動作を以下に説明する。
ステップS1において、入力装置4は、描画対象を含む描画情報の入力を受け付ける。例えば、ユーザーがマウス、キーボードなどを用いて、描画情報を指定して入力装置4に入力し、入力装置4は、当該入力を受け付ける。
なお、入力装置4が受け付ける描画情報は、ユーザーが指定しなくても、通信を介して受信した描画情報、予め定められた基準を満たしたものを自動的に抽出した描画情報、機械学習で抽出した描画情報など、どのようなものでもよい。実施の形態1では、例えば、描画対象を3次元のポリゴンモデルとし、描画情報はポリゴンモデルである描画対象の情報を含んでいるとする。ポリゴンモデルである描画対象の情報とは、RGB値、位置情報などである。
図4は、実施の形態1の描画情報の一例である。描画情報は、描画対象であるポリゴンモデル51と、ポリゴンモデル52と、ポリゴンモデル53とを含むとする。なお、図4では、描画の流れがわかりやすいように描画先バッファと同じ大きさのバッファの上にポリゴンモデル51~53が描画されているように表示している。
図3に戻って、入力装置4は、描画情報と共に、受け付けた描画情報に含まれる描画対象において、適用描画対象と不適用描画対象とのいずれであるかのタグ情報の入力を受け付ける。なお、タグ情報は、各描画対象に対応している。
例えば、ユーザーは、描画対象ごとに、描画サイズの大きさを基に、描画対象であるポリゴンモデルが詳細描画処理を行わなくてもいいほど大きいサイズか、それとも描画対象であるポリゴンモデルが詳細描画処理を行うほど小さいサイズかを判定する。ユーザーは、マウス、キーボード、音声入力などを用いて、大きいサイズであると判定した描画対象を不適用描画対象、小さいサイズと判定した描画対象を適用描画対象として、描画対象ごとにタグ付けをしたタグ情報を入力装置4に入力する。入力装置4は、当該入力を受け付ける。
実施の形態1では、図4の描画情報に対して、ポリゴンモデル51~52は、詳細描画処理を行うほど小さいサイズであるとユーザーに判定されて、ポリゴンモデル53は、詳細描画処理を行わなくてもいいほど大きいサイズであるとユーザーに判定されたとする。入力装置4は、ユーザーによって入力された、ポリゴンモデル51が適用描画対象であるとタグ付けされたタグ情報と、ポリゴンモデル52が適用描画対象であるとタグ付けされたタグ情報と、ポリゴンモデル53が不適用描画対象であるとタグ付けされたタグ情報とを受け付けたとする。
なお、適用描画対象と不適用描画対象とのいずれであるかを判定する基準は、描画対象のサイズの大きさに限らない。例えば、ユーザーは、輝度、重要度などを基準に適用描画対象と不適用描画対象とのいずれであるかを判定してもよい。また、ユーザーは、描画サイズの大きさ、輝度、重要度などを組み合わせたものを基準に適用描画対象と不適用描画対象とのいずれであるかを判定してもよい。具体的には、ユーザーは、重要度が高く描画対象が消えてほしくないと判定した描画対象を適用描画対象、重要度が低い描画対象を不適用描画対象としてもよい。また、ユーザーは、描画対象のサイズが予め定められたサイズ以下で、描画対象の輝度が予め定められた輝度以上であった場合、適用描画対象とし、それ以外の描画対象を不適用描画対象としてもよい。描画対象が適用描画対象と不適用描画対象とのいずれであるかの判断は、ユーザーの好みで判定してもよい。
図3に戻って、入力装置4は、描画情報とタグ情報とを描画処理装置100に送信し、ステップS2に進む。
ステップS2において、描画処理装置100は、入力装置4から描画情報とタグ情報とを受信する。描画処理装置100は、受信した描画情報とタグ情報とを用いて、描画処理を行う。詳細については、後述する。描画処理装置100は、描画先バッファに描画されたシーンを出力するように出力装置5を制御し、ステップS3に進む。
ステップS3において、出力装置5は、描画処理装置100の制御によって、描画先バッファに描画されたシーンをディスプレイなどの表示装置に出力する。
ステップS3を実行した後もステップS1に戻り、電源をOFFにすること、あるいは終了操作がなされる等の処理の終了のトリガーがあるまで上記のような処理を繰り返す。なお、上記のような処理を繰り返すとしたが、繰り返さず一回行うだけでもよい。
次に、描画処理装置100の動作について説明する。
図5は、実施の形態1に係る描画処理装置100の動作を示すフローチャートである。図5を用いて、描画処理装置100の動作を以下に説明する。
ステップS11において、取得部101は、入力装置4から描画情報とタグ情報とを取得する。取得部101は、描画情報とタグ情報とを作成部102に送信し、ステップS12に進む。
ステップS12において、作成部102は、取得部101から描画情報とタグ情報とを受信し、描画先記憶部103に描画先バッファを作成する。また、作成部102は、拡大描画記憶部104に拡大描画する際の詳細バッファを作成する。当該詳細バッファには、適用描画対象すべてが描画されることになる。なお、拡大描画する際の詳細バッファは、描画先バッファより高解像度である。
図6は、実施の形態1の描画先バッファ55及び拡大描画する際の詳細バッファ56の図である。実施の形態1では、描画先バッファ55は、縦が8ピクセルで、横が8ピクセルの合計64ピクセルとする。拡大描画する際の詳細バッファ56は、縦が16ピクセルで、横が16ピクセルの合計256ピクセルとする。つまり、拡大描画する際の詳細バッファ56は、描画先バッファ55より4倍の拡大率であるとする。当該拡大率は、解像度に対応するため、拡大描画する際の詳細バッファ56は、描画先バッファ55より4倍の解像度となる。
なお、描画先バッファに対する拡大描画する際の詳細バッファの拡大率は、予め決められていてもよいし、ユーザーからの入力の受付によってユーザーが決められるようにしてもよいし、描画対象の描画サイズの大きさに対応して決めるなど、拡大率の決め方は限定しない。例えば、描画対象の描画サイズの大きさに対応して決める場合は、作成部102は、描画対象ごとの面積を計算してもよいし、バウンディングボックスなどを用いて描画対象ごとの面積の概算をしてもよい。なお、3次元の描画対象の場合は、描画対象を2次元に投影変換してから、描画対象の大きさを計算する。
図7は、バウンディングボックス80を用いて3次元の描画対象81を2次元に投影変換して描画対象81の面積を概算することを示した概念図である。例えば、描画対象81の面積を概算する方法としては、家の形をした3次元の描画対象81をバウンディングボックス80で囲み、2次元に投影変換したい面に対応するバウンディングボックス80の面積82を3次元の描画対象81を2次元に投影変換したときの描画対象81の面積の概算値とする。
なお、図7は2次元に投影変換したい面にちょうどバウンディングボックス80の1面が重なっていたが、バウンディングボックス80の1面が重ならなくても、2次元に投影変換したい面にバウンディングボックス80を投影変換すれば、3次元の描画対象81を2次元に投影変換したときの描画対象81の面積の概算値は求まる。また、図7は平行投影について説明したが、透視投影などでも適用可能である。
このように、バウンディングボックス80を用いて3次元の描画対象81を2次元に投影変換して描画対象81の面積を概算することで、描画対象81をそのまま2次元に投影変換して描画対象81の面積を求めるよりも描画処理負荷を低減することができる。なお、描画対象81が複雑な形ほど描画処理負荷が高くなるため、描画対象81が複雑な形ほどバウンディングボックス80を用いて3次元の描画対象81を2次元に投影変換して描画対象81の面積を概算すると描画処理負荷の低減の効果が高くなる。
図5に戻って、作成部102は、描画情報とタグ情報とを適用判定部106に送信し、ステップS13に進む。
ステップS13において、適用判定部106は、作成部102から描画情報とタグ情報とを受信し、タグ情報を用いて、描画対象が適用描画対象と不適用描画対象とのいずれであるかを判定する。適用判定部106は、描画情報と、不適用描画対象である描画対象のタグ情報のすべてとを描画部107に送信する。描画部107は、適用判定部106から描画情報と、不適用描画対象である描画対象のタグ情報とを受信し、描画先記憶部103の描画先バッファに不適用描画対象を描画する。
実施の形態1では、適用判定部106は、図4の描画情報に対して、描画情報と、不適用描画対象であるとタグ付けされたポリゴンモデル53のタグ情報とを描画部107に送信する。描画部107は、適用判定部106から描画情報と、不適用描画対象であるとタグ付けされたポリゴンモデル53のタグ情報とを受信し、描画先記憶部103の描画先バッファ55にポリゴンモデル53を描画する。
図8は、不適用描画対象のポリゴンモデル53を描画先バッファ55に描画した描画結果54と不適用描画対象のポリゴンモデル53とを重畳した図である。図8の描画結果54のように、描画部107は、ポリゴンモデル53の形に類似するように描画先バッファ55のピクセルを描画情報に含まれる描画対象に付随したRGB値で塗りつぶす。
図9は、不適用描画対象のポリゴンモデル53を描画先バッファ55に描画した描画結果54を示した図である。図9は図8のポリゴンモデル53の重畳表示をなくし、実際の描画結果54のみを示している。
図5に戻って、描画部107が描画先バッファに不適用描画対象を描画し終えたら、描画部107は、描画先バッファへの描画の終了の通知を適用処理部106とブレンド処理部110に送信し、ステップS14に進む。
ステップS14において、適用判定部106は、描画部107から描画先バッファへの描画の終了の通知を受信すると、描画情報と、適用描画対象である描画対象のタグ情報とを拡大描画部108に送信する。
実施の形態1では、適用判定部106は、図4の描画情報に対して、描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル51のタグ情報と、適用描画対象であるとタグ付けされたポリゴンモデル52のタグ情報とを拡大描画部108に送信する。
拡大描画部108は、適用判定部106から描画情報と、適用描画対象である描画対象のタグ情報とを受信し、拡大描画記憶部104の詳細バッファに適用描画対象を拡大描画する。
実施の形態1では、拡大描画部108は、適用判定部106から描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル51のタグ情報と、適用描画対象であるとタグ付けされたポリゴンモデル52のタグ情報とを受信し、拡大描画記憶部104の詳細バッファ56にポリゴンモデル51~52を拡大描画する。なお、詳細バッファ56にポリゴンモデル51~52を拡大描画する際の拡大率は、描画先バッファ55に対する詳細バッファ56の拡大率と同様である。
図10は、適用描画対象のポリゴンモデル51を詳細バッファ56に描画した描画結果57と別の適用描画対象のポリゴンモデル52を詳細バッファ56に描画した描画結果58と適用描画対象の複数のポリゴンモデル51~52とを重畳した図である。図10の描画結果57~58のように、拡大描画部108は、ポリゴンモデル51~52を、描画先バッファ55に対する詳細バッファ56の拡大率と同じ4倍に拡大し、ポリゴンモデル51~52の形に類似するように詳細バッファ56のピクセルを描画情報に含まれる描画対象に付随したRGB値で塗りつぶす。
図11は、適用描画対象のポリゴンモデル51を詳細バッファ56に描画した描画結果57と別の適用描画対象のポリゴンモデル52を詳細バッファ56に描画した描画結果58を示した図である。図11は図10のポリゴンモデル51~52の重畳表示をなくし、実際の描画結果57~58のみを示している。図4からわかるように、ポリゴンモデル51を描画先バッファ55にそのまま描画していれば、ポリゴンモデル51はピクセルの中心を含まないため、描画されず消えてしまうが、ポリゴンモデル51を詳細バッファ56に拡大描画すると、ポリゴンモデル51は1ピクセルにおいて当該ピクセルの中心を含むため、消えることなく描画される。
図5に戻って、拡大描画部108は、拡大描画の終了の通知を算出部109に送信し、ステップS15に進む。
ステップS15において、算出部109は、拡大描画部108から拡大描画の終了の通知を受信すると、拡大描画記憶部104に記憶されている詳細バッファを描画先バッファと同じ大きさに縮小し、縮小描画記憶部105に記憶する。具体的には、算出部109が詳細バッファを描画先バッファと同じ大きさに縮小する際の縮小率は、詳細バッファを作成した際の描画先バッファに対する詳細バッファの拡大率の逆数となる。算出部109は、縮小率を用いて、縮小前の詳細バッファの塗りつぶされたピクセルの割合から、適用描画対象の描画先バッファにおける各ピクセルのアルファ値を算出する。また、算出部109は、縮小率を用いて、縮小前の詳細バッファの塗りつぶされたピクセルのRGB値の平均値から、適用描画対象の描画先バッファにおける各ピクセルのRGB値を算出する。算出部109は、縮小率及び各ピクセルのRGB値を用いて、詳細バッファを描画先バッファと同じ大きさに縮小し、各ピクセルにおいて、アルファ値とRGB値とを記憶する。
実施の形態1では、算出部109は、拡大描画部108から拡大描画の終了の通知を受信すると、拡大描画記憶部104に記憶されている詳細バッファ56を、詳細バッファ56を作成した際の描画先バッファ55に対する詳細バッファ56の拡大率4倍の逆数である1/4倍に縮小し、描画先バッファ55と同じ大きさにする。
図12は、詳細バッファ56を縮小した詳細バッファ59を示した図である。図12は、算出部109が最終的に作成したい拡大描画記憶部104に記憶されている詳細バッファ56を1/4倍に縮小した詳細バッファ59である。ポリゴンモデル51を詳細バッファ56に描画した描画結果57が図12の1ピクセル60に反映されている。ポリゴンモデル52を詳細バッファ56に描画した描画結果58が図12の1ピクセル61~62に反映されている。
図13は、詳細バッファ56と縮小した詳細バッファ59とのピクセルの対応を示した図である。図13のポリゴンモデル51を詳細バッファ56に描画した描画結果57を含む範囲60が図12の1ピクセル60に対応する。また、図13のポリゴンモデル52を詳細バッファ56に描画した描画結果58の一部を含む範囲61が図12の1ピクセル61に対応する。さらに、図13のポリゴンモデル52を詳細バッファ56に描画した描画結果58の一部を含む範囲62が図12の1ピクセル62に対応する。
算出部109は、1/4倍の縮小率を用いて、縮小前の詳細バッファ56の塗りつぶされたピクセルの割合から、ポリゴンモデル51~52の描画先バッファ55における各ピクセルのアルファ値を算出する。具体的には、図13の範囲60が図12の1ピクセル60に対応するため、図13で範囲60の中で1ピクセル塗られているとすると、範囲60の中で塗りつぶされた割合は0.25となる。したがって、図12の1ピクセル60のアルファ値は0.25と算出できる。算出部109は、図12の1ピクセル60に、0.25というアルファ値を記憶させる。図12の1ピクセル60の中の値は、アルファ値を表す。
同様に、図13の範囲61が図12の1ピクセル61に対応するため、図13で範囲61の中で3ピクセル塗られているとすると、範囲61の中で塗りつぶされた割合は0.75となる。したがって、図12の1ピクセル61のアルファ値は0.75と算出できる。算出部109は、図12の1ピクセル61に、0.75というアルファ値を記憶させる。図12の1ピクセル61の中の値は、アルファ値を表す。また、図13の範囲62が図12の1ピクセル62に対応するため、図13で範囲62の中で1ピクセル塗られているとすると、範囲62の中で塗りつぶされた割合は0.25となる。したがって、図12の1ピクセル62のアルファ値は0.25と算出できる。算出部109は、図12の1ピクセル62に、0.25というアルファ値を記憶させる。図12の1ピクセル62の中の値は、アルファ値を表す。
また、算出部109は、1/4倍の縮小率を用いて、縮小前の詳細バッファ56の塗りつぶされたピクセルのRGB値の平均値から、ポリゴンモデル51~52の描画先バッファ55における各ピクセルのRGB値を算出する。具体的には、図12の1ピクセルに対応する図13の4ピクセルのうち、塗りつぶされたピクセルのRGB値の平均値を図12の1ピクセルのRGB値とする。
例えば、ポリゴンモデル51の元々のRGB値を、R=R1、G=G1、B=B1、ポリゴンモデル52の元々のRGB値を、R=R2、G=G2、B=B2とする。図12の1ピクセル60のRGB値については、図13でポリゴンモデル51により1ピクセルしか塗りつぶされていないため、R=R1、G=G1、B=B1がそのまま平均値となり、R=R1、G=G1、B=B1が図12の1ピクセル60のRGB値と算出される。算出部109は、図12の1ピクセル60に、R=R1、G=G1、B=B1というRGB値を記憶させ、図12の1ピクセル60は、R=R1、G=G1、B=B1というRGB値で色が塗られる。
図12の1ピクセル61のRGB値については、図13でポリゴンモデル52により3ピクセル塗りつぶされているため、3ピクセルのRGB値の平均が図12の1ピクセル61のRGB値と算出される。つまり、R=(R2+R2+R2)/3=R2、G=(G2+G2+G2)/3=G2、B=(B2+B2+B2)/3=B2が平均値となり、R=R2、G=G2、B=B2が図12の1ピクセル61のRGB値と算出される。算出部109は、図12の1ピクセル61に、R=R2、G=G2、B=B2というRGB値を記憶させ、図12の1ピクセル61は、R=R2、G=G2、B=B2というRGB値で色が塗られる。
図12の1ピクセル62のRGB値については、図13でポリゴンモデル52により1ピクセルしか塗りつぶされていないため、R=R2、G=G2、B=B2がそのまま平均値となり、R=R2、G=G2、B=B2が図12の1ピクセル62のRGB値と算出される。算出部109は、図12の1ピクセル62に、R=R2、G=G2、B=B2というRGB値を記憶させ、図12の1ピクセル62は、R=R2、G=G2、B=B2というRGB値で色が塗られる。
実施の形態1では、RGB値の算出の結果、図12の1ピクセル60はポリゴンモデル51と同じRGB値、図12の1ピクセル61~62はポリゴンモデル52と同じRGB値となったが、図12の1ピクセルに対応する図13の4ピクセルの中にRGB値の異なる複数のポリゴンモデルが存在していた場合、ポリゴンモデルと同じRGB値とはならず、複数のポリゴンモデルによって塗りつぶされたピクセルのRGB値の平均値が図12の1ピクセルのRGB値となる。このようにすることで、算出部109は、最適なRGB値を算出することができる。
図5に戻って、算出部109は、各適用描画対象の1ピクセルごとのアルファ値及びRGB値の情報を含めて縮小した詳細バッファ59を縮小描画記憶部105に記憶する。算出部109は、算出処理の終了の通知をブレンド処理部110に送信し、ステップS16に進む。
ステップS16において、ブレンド処理部110は、描画部107から描画先バッファへの描画の終了の通知を受信し、算出部109から算出処理の終了の通知を受信すると、描画先記憶部103に記憶されている描画先バッファに対して、縮小描画記憶部105に記憶されている詳細バッファを、1ピクセルごとにアルファ値でRGB値をアルファブレンドして適用描画対象を描画先バッファに描画する。
実施の形態1では、ブレンド処理部110は、描画部107から描画先バッファへの描画の終了の通知を受信し、算出部109から算出処理の終了の通知を受信する。
ブレンド処理部110は、描画先記憶部103に記憶されている描画先バッファ55に対して、縮小描画記憶部105に記憶されている詳細バッファ59の1ピクセル60についてアルファ値である0.25でRGB値であるR=R1、G=G1、B=B1をアルファブレンドする。また、ブレンド処理部110は、描画先記憶部103に記憶されている描画先バッファ55に対して、縮小描画記憶部105に記憶されている詳細バッファ59の1ピクセル61についてアルファ値である0.75でRGB値であるR=R2、G=G2、B=B2をアルファブレンドする。さらに、ブレンド処理部110は、描画先記憶部103に記憶されている描画先バッファ55に対して、縮小描画記憶部105に記憶されている詳細バッファ59の1ピクセル62についてアルファ値である0.25でRGB値であるR=R2、G=G2、B=B2をアルファブレンドする。
図14は、全てのポリゴンモデルを描画先バッファ55に描画した描画結果を示した図である。ポリゴンモデル51を描画先バッファ55に描画したのが描画結果63となる。描画結果63は、1ピクセル60についてアルファ値である0.25でRGB値であるR=R1、G=G1、B=B1をアルファブレンドした結果であり、模擬的に縦縞で塗られている。
ポリゴンモデル52を描画先バッファ55に描画したのが描画結果64~65となる。ポリゴンモデル52の一部である描画結果64は、1ピクセル61についてアルファ値である0.75でRGB値であるR=R2、G=G2、B=B2をアルファブレンドした結果であり、模擬的に斜線で塗られている。ポリゴンモデル52の一部である描画結果65は、1ピクセル62についてアルファ値である0.25でRGB値であるR=R2、G=G2、B=B2をアルファブレンドした結果であり、模擬的に横縞で塗られている。
ポリゴンモデル53を描画先バッファ55に描画したのが描画結果54となる。図14の描画結果54は、図9の描画結果54と同様である。
図5に戻って、ブレンド処理部110は、アルファブレンドの終了の通知を出力制御部111に送信し、ステップS17に進む。
ステップS17において、出力制御部111は、ブレンド処理部110からアルファブレンドの終了の通知を受信し、描画先記憶部103に記憶されている描画先バッファを出力するように出力装置5を制御する。
実施の形態1では、出力制御部111は、ブレンド処理部110からアルファブレンドの終了の通知を受信し、描画先記憶部103に記憶されている描画先バッファ55に描画されたシーンを出力するように出力装置5である表示装置を制御する。
ステップS17を実行した後もステップS11に戻り、電源をOFFにすること、あるいは終了操作がなされる等の処理の終了のトリガーがあるまで上記のような処理を繰り返す。なお、上記のような処理を繰り返すとしたが、繰り返さず一回行うだけでもよい。
以上述べたように、実施の形態1の描画処理システム1は、適用判定部106によって不適用描画対象と判定された描画対象を、描画部107が描画先記憶部103に記憶されている描画先バッファに描画し、適用判定部106によって適用描画対象と判定された描画対象を、拡大描画部108が拡大描画記憶部104に記憶されている描画先バッファよりも高解像度である詳細バッファに拡大して描画し、算出部109が適用描画対象の透過度を表すアルファ値を算出し、詳細バッファを描画先バッファと同じサイズに縮小し、ブレンド処理部110が算出されたアルファ値で描画先バッファに適用描画対象をアルファブレンドし、出力制御部111がアルファブレンドした描画先バッファを出力装置5に出力するように制御するため、同一シーンに描画サイズ差が大きい描画対象が混在する場合に、シーン全体を高解像度、あるいは分割数を多くして描画する必要がないため、描画対象を表示画面上から消失させないように描画することによる描画処理負荷を低減させることができる。
実施の形態2.
実施の形態1では、描画処理システム1は、入力装置4が描画情報とタグ情報との入力を受け付け、取得部101が入力装置4から描画情報とタグ情報とを取得し、適用判定部106がタグ情報を用いて、描画対象が適用描画対象であるか、それとも不適用描画対象であるかを判定した。実施の形態2では、図15~図17に示すように、描画処理システム2は、入力装置6が受け付けるのは描画情報の入力だけであり、取得部201が入力装置6から描画情報を取得し、適用判定部202が描画情報から描画対象が適用描画対象であるか、それとも不適用描画対象であるかを判定する。
当該判定により、ユーザーがタグ情報を入力装置6に入力する必要がなく、描画処理システム2が自動で描画対象が適用描画対象と不適用描画対象とのいずれであるかを判定するため、ユーザーの負荷を低減できる。
なお、実施の形態1では、描画処理システム1は、不適用描画対象も適用描画対象もまとめて描画をしていたが、実施の形態2では、描画処理システム2は、描画対象を1つずつ描画していく。それ以外は、実施の形態1と同様である。以下の説明において実施の形態1で説明した構成及び動作については、同一符号を付して、重複する説明を省略する。
実施の形態2でも実施の形態1と同様に、一例として、シーン全体の描画の情報である描画情報内に、同一シーンに描画サイズ差が大きい描画対象が混在している場合について、本開示を適用した場合を以下に説明する。
図15は、実施の形態2に係る描画処理装置200を含む描画処理システム2のブロック図である。描画処理システム2は、描画情報が入力される入力装置6と、描画情報を用いて、描画情報を描画する処理を行う描画処理装置200と、描画処理装置200で処理されたシーンを出力する出力装置5とを備えている。
実施の形態2では、実施の形態1の図1の入力装置4と、取得部101と、適用判定部106と、描画部107と、拡大描画部108と、算出部109と、ブレンド処理部110との代わりに、入力装置6と、取得部201と、適用判定部202と、描画部203と、拡大描画部204と、算出部205と、ブレンド処理部207と、終了判定部206と、蓄積記憶部208とが機能ブロック図の構成として加わる。
入力装置6は、例えば、ユーザーによって入力されたポリゴンモデルなどの描画対象の情報を含むシーン全体の描画情報のみを受け付ける。
描画処理装置200は、入力装置6から描画情報を取得する取得部201と、描画先バッファと詳細バッファとを作成する作成部102と、描画情報から描画対象を詳細描画処理するか否か判定する適用判定部202と、詳細描画処理を適用しないとタグ付けされた不適用描画対象を描画先バッファに描画する描画部203と、詳細描画処理を適用するとタグ付けされた適用描画対象を詳細バッファに拡大して描画する拡大描画部204と、適用描画対象のアルファ値とRGB値とを算出し、詳細バッファを描画先バッファと同じサイズに縮小する算出部205と、描画情報内に描画先バッファあるいは詳細バッファに描画していない描画対象があるか否かで終了を判定する終了判定部206と、アルファ値でRGB値をアルファブレンドして適用描画対象を描画先バッファに描画するブレンド処理部207と、出力装置5に描画先バッファに描画されたシーンを出力するよう制御する出力制御部111と、描画先バッファを記憶する描画先記憶部103と、拡大描画する際の詳細バッファを記憶する拡大描画記憶部104と、縮小する際の詳細バッファを記憶する縮小描画記憶部105と、ブレンド処理部207でアルファブレンドする詳細バッファを記憶する蓄積記憶部208とを備えている。
次に、実施の形態2に係る描画処理システム2のハードウェア構成について説明する。描画処理システム2のハードウェア構成図は、実施の形態1の図2と同様である。
ただし、入力装置6のハードウェア構成は入力装置4と同様である。取得部201のハードウェア構成は取得部101と同様である。適用判定部202のハードウェア構成は適用判定部106と同様である。描画部203のハードウェア構成は描画部107と同様である。拡大描画部204のハードウェア構成は拡大描画部108と同様である。算出部205のハードウェア構成は算出部109と同様である。ブレンド処理部207のハードウェア構成はブレンド処理部110と同様である。終了判定部206は、グラフィックメモリ45に記憶するプログラムによって実現され、GPU44がグラフィックメモリ45にロードしたプログラムを読み込み、実行することにより実現する。蓄積記憶部208は、グラフィックメモリ45によって実現される。
なお、グラフィックメモリ45は、終了判定部206の機能と他の部の機能とのそれぞれを別々のメモリで実現してもよい。また、蓄積記憶部208と、他の記憶部とのそれぞれを別々のメモリで実現してもよい。それ以外は、実施の形態1のハードウェア構成と同様である。
次に、描画処理システム2の動作について説明する。
図16は、本開示の実施の形態2に係る描画処理システム2の動作を示すフローチャートである。図16を用いて、描画処理システム2の動作を以下に説明する。
ステップS4において、入力装置6は、描画情報の入力を受け付ける。例えば、ユーザーがマウス、キーボードなどを用いて、描画情報を指定して入力装置6に入力し、入力装置6は、当該入力を受け付ける。
なお、入力装置6が受け付ける描画情報は、実施の形態1と同様に、ユーザーが指定しなくても、通信を介して受信した描画情報、予め定められた基準を満たしたものを自動的に抽出した描画情報、機械学習で抽出した描画情報など、どのようなものでもよい。実施の形態2では、実施の形態1と同様に、例えば、描画対象を3次元のポリゴンモデルとし、描画情報はポリゴンモデルである描画対象の情報を含んでいるとする。
実施の形態2では、実施の形態1と同様に、図4に本開示を適用した場合を以下に説明する。入力装置6は、描画情報を描画処理装置200に送信し、ステップS5に進む。
ステップS5において、描画処理装置200は、入力装置6から描画情報を受信する。描画処理装置200は、受信した描画情報を用いて、描画処理を行う。詳細については、後述する。描画処理装置200は、描画先バッファに描画されたシーンを出力するように出力装置5を制御し、ステップS6に進む。
ステップS6において、出力装置5は、実施の形態1のステップS3と同様に、描画処理装置200の制御によって、描画先バッファに描画されたシーンをディスプレイなどの表示装置に出力する。
ステップS6を実行した後もステップS4に戻り、電源をOFFにすること、あるいは終了操作がなされる等の処理の終了のトリガーがあるまで上記のような処理を繰り返す。なお、上記のような処理を繰り返すとしたが、繰り返さず一回行うだけでもよい。
次に、描画処理装置200の動作について説明する。
図17は、本開示の実施の形態2に係る描画処理装置200の動作を示すフローチャートである。図17を用いて、描画処理装置200の動作を以下に説明する。
ステップS21において、取得部201は、入力装置6から描画情報を取得する。取得部201は、描画情報を作成部102に送信し、ステップS22に進む。
ステップS22において、作成部102は、取得部201から描画情報を受信する。作成部102は、描画情報を適用判定部202に送信し、ステップS23に進む。それ以外は、ステップS22は、実施の形態1のステップS12と同様である。ただし、実施の形態1では、当該詳細バッファには、適用描画対象すべてが描画されるが、実施の形態2では、適用描画対象が1つ描画されることになる。
ステップS23において、適用判定部202は、作成部102から描画情報を受信する。適用判定部202は、描画情報を用いて、描画情報に含まれる描画対象の1つについて、描画対象が適用描画対象であるか、それとも不適用描画対象であるかを判定する。実施の形態2では、例えば、適用判定部202は、描画対象の面積sを算出して、面積sが予め定めて記憶しておいた閾値X未満か否かを判定する。閾値Xは、1.0ピクセルや5.0ピクセルなど、ユーザーが描画対象に対して詳細描画処理を行わなくてもいいほど大きいサイズか、それとも詳細描画処理を行うほど小さいサイズかを好みで決定すればよい。
描画対象の面積sを算出する方法は、描画対象そのものの面積を計算してもよいし、実施の形態1の図7のように、バウンディングボックスなどを用いて描画対象の面積の概算をしてもよい。実施の形態2では、例えば、図4のポリゴンモデル51の面積の概算値が0.4ピクセル、ポリゴンモデル52の面積の概算値が1.8ピクセル、ポリゴンモデル53の面積の概算値が16.8ピクセルであったとする。また、予め定めておいた閾値Xが2.0ピクセルであったとする。
適用判定部202は、描画対象の面積sが予め定めておいた閾値X以上の場合は、ステップS23:Noとなる。適用判定部202は、描画対象の描画サイズが大きいため、詳細描画処理を行う必要がないとして、当該描画対象は不適用描画対象であるというタグ情報を生成する。適用判定部202は、描画情報と、不適用描画対象である描画対象のタグ情報とを描画部203に送信し、ステップS24に進む。
実施の形態2では、ポリゴンモデル53の場合は、ポリゴンモデル53の面積の概算値が16.8ピクセルであり、予め定めておいた閾値である2.0ピクセル以上となるため、ポリゴンモデル53は、ステップS23:Noとなる。適用判定部202は、ポリゴンモデル53の描画サイズが大きいため、詳細描画処理を行う必要がないとして、ポリゴンモデル53は不適用描画対象であるというタグ情報を生成する。適用判定部202は、描画情報と、不適用描画対象であるとタグ付けされたポリゴンモデル53のタグ情報とを描画部203に送信し、ステップS24に進む。
一方、適用判定部202は、描画対象の面積sが予め定めておいた閾値X未満の場合は、ステップS23:Yesとなる。適用判定部202は、描画対象の描画サイズが小さいため、詳細描画処理を行う必要があるとして、当該描画対象は適用描画対象であるというタグ情報を生成する。適用判定部202は、描画情報と、適用描画対象である描画対象のタグ情報とを拡大描画部204に送信し、ステップS25に進む。
実施の形態2では、ポリゴンモデル51の場合は、ポリゴンモデル51の面積の概算値が0.4ピクセルであり、予め定めておいた閾値である2.0ピクセル未満となるため、ポリゴンモデル51は、ステップS23:Yesとなる。適用判定部202は、ポリゴンモデル51の描画サイズが小さいため、詳細描画処理を行う必要があるとして、ポリゴンモデル51は適用描画対象であるというタグ情報を生成する。適用判定部202は、描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル51のタグ情報とを拡大描画部204に送信し、ステップS25に進む。
同様に、ポリゴンモデル52の場合は、ポリゴンモデル52の面積の概算値が1.8ピクセルであり、予め定めておいた閾値である2.0ピクセル未満となるため、ポリゴンモデル52は、ステップS23:Yesとなる。適用判定部202は、ポリゴンモデル52の描画サイズが小さいため、詳細描画処理を行う必要があるとして、ポリゴンモデル52は適用描画対象であるというタグ情報を生成する。適用判定部202は、描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル52のタグ情報とを拡大描画部204に送信し、ステップS25に進む。
ステップS24において、描画部203は、適用判定部202から描画情報と、不適用描画対象である描画対象のタグ情報とを受信し、描画先記憶部103の描画先バッファに不適用描画対象を描画する。
実施の形態2では、描画部203は、適用判定部202から描画情報と、不適用描画対象であるとタグ付けされたポリゴンモデル53のタグ情報とを受信し、描画先記憶部103の描画先バッファ55にポリゴンモデル53を描画する。
ポリゴンモデル53を描画先バッファ55に描画した描画結果54とポリゴンモデル53とを重畳した図は、実施の形態1の図8と同様である。また、ポリゴンモデル53を描画先バッファ55に描画した描画結果54を示した図は、実施の形態1の図9と同様である。
描画部203が描画先バッファに1つの不適用描画対象を描画し終えたら、描画部203は、描画先バッファへの描画の終了の通知を終了判定部206に送信し、ステップS27に進む。
一方、ステップS25において、拡大描画部204は、適用判定部202から描画情報と、適用描画対象である描画対象のタグ情報とを受信し、拡大描画記憶部104の詳細バッファに適用描画対象を拡大描画する。
実施の形態2では、拡大描画部204は、適用判定部202から描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル51のタグ情報を受信する。あるいは、拡大描画部204は、適用判定部202から描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル52のタグ情報とを受信する。拡大描画部204は、拡大描画記憶部104の詳細バッファ56にポリゴンモデル51あるいはポリゴンモデル52を拡大描画する。なお、詳細バッファ56にポリゴンモデル51あるいはポリゴンモデル52を拡大描画する際の拡大率は、描画先バッファ55に対する詳細バッファ56の拡大率と同様である。
ポリゴンモデル51を詳細バッファ56に描画した描画結果57とポリゴンモデル52を詳細バッファ56に描画した描画結果58とポリゴンモデル51とポリゴンモデル52とを重畳した図は、実施の形態1の図10と同様である。ただし、実施の形態2では、描画処理システム2は、描画対象を1つずつ描画していくため、ポリゴンモデル51とポリゴンモデル52とは同時には描画されず、一方のポリゴンモデルのみが描画される。
また、ポリゴンモデル51を詳細バッファ56に描画した描画結果57とポリゴンモデル52を詳細バッファ56に描画した描画結果58を示した図は、実施の形態1の図11と同様である。ただし、実施の形態2では、描画処理システム2は、描画対象を1つずつ描画していくため、ポリゴンモデル51とポリゴンモデル52とは同時には描画されず、一方のポリゴンモデルのみが描画される。
拡大描画部204は、詳細バッファに1つの適用描画対象を描画し終えたら、拡大描画の終了の通知を算出部205に送信し、ステップS26に進む。
ステップS26において、算出部205は、1つの適用描画対象の描画先バッファにおける各ピクセルのアルファ値とRGB値とを算出する。詳細バッファ56を縮小した詳細バッファ59を示した図は、実施の形態1の図12と同様である。詳細バッファ56と詳細バッファ59とのピクセルの対応を示した図は、実施の形態1の図13と同様である。ただし、実施の形態2では、描画処理システム2は、描画対象を1つずつ描画していくため、ポリゴンモデル51とポリゴンモデル52とは同時には描画されない。算出部205は、1つの適用描画対象の1ピクセルごとのアルファ値及びRGB値の情報を終了判定部206に送信し、ステップS27に進む。それ以外は、ステップS26は、実施の形態1のステップS15と同様である。
ステップS27において、終了判定部206は、描画部203から描画先バッファへの描画の終了の通知を受信、あるいは算出部205から算出処理の終了の通知を受信した場合、描画先バッファに描画すべき描画対象が他にあるか否かを判定する。
終了判定部206は、まだ描画部203あるいは拡大描画部204にて描画の処理をする描画処理をしておらず、描画先バッファに描画すべき描画対象がある場合は、ステップS27:Yesとなる。終了判定部206は、描画部203から描画先バッファへの描画の終了の通知を受信し、かつ描画先バッファに描画すべき描画対象がまだある場合は、ステップS23に戻って、描画処理をしていない描画対象を描画処理する。終了判定部206は、算出部205から算出処理の終了の通知を受信し、かつ描画先バッファに描画すべき描画対象がまだある場合は、蓄積記憶部208に縮小描画記憶部105に記憶させていた描画処理をした詳細バッファを記憶させ、縮小描画記憶部105に新しい詳細バッファを作成できるようにしてから、ステップS23に戻って、描画処理をしていない描画対象を描画処理する。
一方、終了判定部206は、まだ描画処理をしておらず、描画先バッファに描画すべき描画対象がない場合は、ステップS27:Noとなる。終了判定部206は、蓄積記憶部208に記憶させた描画処理をした詳細バッファを一括でブレンド処理部207に送信し、ステップS28に進む。
実施の形態2では、終了判定部206は、ポリゴンモデル51と、ポリゴンモデル52と、ポリゴンモデル53とのうち、1つでも描画処理をしていないものがある場合は、ステップS27:Yesとなる。終了判定部206は、ポリゴンモデル53の描画処理がされ、描画部203から描画先バッファへの描画の終了の通知を受信し、かつ描画先バッファに描画すべき描画対象がまだある場合は、ステップS23に戻って、描画処理をしていない描画対象を描画処理する。
終了判定部206は、算出部205からポリゴンモデル51あるいはポリゴンモデル52の描画処理がされ、算出部205から算出処理の終了の通知を受信し、かつ描画先バッファに描画すべき描画対象がまだある場合は、蓄積記憶部208に縮小描画記憶部105に記憶させていた描画処理をした詳細バッファを記憶させ、縮小描画記憶部105に新しい詳細バッファを作成できるようにしてから、ステップS23に戻って、描画処理をしていない描画対象を描画処理する。
一方、終了判定部206は、ポリゴンモデル51~53のすべての描画処理をした場合は、ステップS27:Noとなる。終了判定部206は、蓄積記憶部208に記憶させた描画処理をした詳細バッファを一括でブレンド処理部207に送信し、ステップS28に進む。
ステップS28において、ブレンド処理部207は、終了判定部206から適用描画対象の描画処理をした詳細バッファのすべてを一括で受信する。実施の形態1では、ブレンド処理部110は、詳細バッファ1つと描画先バッファとをアルファブレンドしたが、実施の形態2では、ブレンド処理部207は、複数の詳細バッファと描画先バッファとをアルファブレンドする。具体的には、ブレンド処理部207は、詳細バッファ1つと描画先バッファとをアルファブレンドする処理を詳細バッファの数だけ順番に行う。アルファブレンドの方法は、実施の形態1のステップS16と同様である。全てのポリゴンモデルを描画先バッファ55に描画した描画結果を示した図は、実施の形態1の図14と同様である。
ブレンド処理部207は、アルファブレンドの終了の通知を出力制御部111に送信し、ステップS29に進む。それ以外は、ステップS28は、実施の形態1のステップS16と同様である。
ステップS29において、出力制御部111は、ブレンド処理部207からアルファブレンドの終了の通知を受信する。それ以外は、ステップS29は、実施の形態1のステップS17と同様である。
ステップS29を実行した後もステップS21に戻り、電源をOFFにすること、あるいは終了操作がなされる等の処理の終了のトリガーがあるまで上記のような処理を繰り返す。なお、上記のような処理を繰り返すとしたが、繰り返さず一回行うだけでもよい。
以上述べたように、実施の形態2の描画処理システム2は、適用判定部202によって不適用描画対象と判定された描画対象を、描画部203が描画先記憶部103に記憶されている描画先バッファに描画し、適用判定部202によって適用描画対象と判定された描画対象を、拡大描画部204が拡大描画記憶部104に記憶されている描画先バッファよりも高解像度である詳細バッファに拡大して描画し、算出部205が適用描画対象の透過度を表すアルファ値を算出し、詳細バッファを描画先バッファと同じサイズに縮小し、ブレンド処理部207が算出されたアルファ値で描画先バッファに適用描画対象をアルファブレンドし、出力制御部111がアルファブレンドした描画先バッファを出力装置5に出力するように制御するため、同一シーンに描画サイズ差が大きい描画対象が混在する場合に、シーン全体を高解像度、あるいは分割数を多くして描画する必要がないため、描画対象を表示画面上から消失させないように描画することによる描画処理負荷を低減させることができる。
また、実施の形態2においては、描画処理システム2は、入力装置6が受け付けるのは描画情報の入力だけであり、取得部201が入力装置6から描画情報を取得し、適用判定部202が描画情報から描画対象が適用描画対象と不適用描画対象とのいずれであるかを判定する。当該判定により、ユーザーなどがタグ情報を入力装置6に入力する必要がなく、描画処理システム2が自動で描画対象が適用描画対象と不適用描画対象とのいずれであるかを判定するため、ユーザーの負荷を低減できる。
実施の形態2のステップS23において、例えば、適用判定部202は、描画対象の面積sを算出して、面積sが予め定めて記憶しておいた閾値X未満か否かを判定したが、描画対象ごとの輝度値、重要度などで描画対象ごとに閾値を変更させてもよい。例えば、描画対象の輝度値が閾値Yよりも低い場合は、輝度が低いとして閾値Xを小さくし、描画対象の輝度値が閾値Yよりも高い場合は、輝度が高いとして閾値Xを大きくする。当該閾値Xの変更をすることで、輝度が低い描画対象は、より面積が小さくても適用描画対象とならないため、不適用描画対象と判定される確率が高くなり、描画処理負荷を低減させることができる。一方、輝度が高い描画対象は、より面積が大きくないと不適用描画対象とならないため、適用描画対象と判定される確率が高くなり、より消えにくくなる。同様に、例えば、描画対象に予め重要度が付与されている場合、描画対象の重要度が閾値Zよりも低い場合は、重要度が低いとして閾値Xを小さくし、描画対象の重要度が閾値Zよりも高い場合は、重要度が高いとして閾値Xを大きくする。当該閾値Xの変更をすることで、重要度が低い描画対象は、より面積が小さくても適用描画対象とならないため、不適用描画対象と判定される確率が高くなり、描画処理負荷を低減させることができる。一方、重要度が高い描画対象は、より面積が大きくないと不適用描画対象とならないため、適用描画対象と判定される確率が高くなり、より消えにくくなる。
実施の形態3.
実施の形態1では、描画処理システム1は、作成部102が拡大描画記憶部104に適用描画対象すべてが描画されることになる詳細バッファを1つ作成し、拡大描画部108が当該詳細バッファに適用描画対象すべてを拡大描画した。実施の形態3では、図18~図28に示すように、割り当て作成部302が拡大描画記憶部303に適用描画対象ごとの範囲に対応した詳細バッファを作成し、拡大描画部304が適用描画対象の範囲に対応した詳細バッファに当該適用描画対象を拡大描画する。
当該描画により、適用描画対象の描画に使用しない範囲の割合が高い場合に、適用描画対象の範囲に対応した詳細バッファを作成するだけでいいため、無駄にバッファを作成する必要がなく、メモリの使用量を低減することができる。また、それぞれの適用描画対象のサイズに応じて拡大率を設定できるため、一番サイズが小さい適用描画対象の拡大率に他の適用描画対象の拡大率を合わせなくてもいいため、描画処理負荷を低減させることができる。それ以外は、実施の形態1と同様である。以下の説明において実施の形態1で説明した構成及び動作については、同一符号を付して、重複する説明を省略する。
実施の形態3でも実施の形態1と同様に、一例として、シーン全体の描画の情報である描画情報内に、同一シーンに描画サイズ差が大きい描画対象が混在している場合について、本開示を適用した場合を以下に説明する。
図18は、実施の形態3に係る描画処理装置300を含む描画処理システム3のブロック図である。描画処理システム3は、描画情報に含まれる各描画対象において詳細描画処理を適用するか否かのタグ情報と描画情報とが入力される入力装置4と、描画情報とタグ情報とを用いて、描画情報を描画する処理を行う描画処理装置300と、描画処理装置300で処理されたシーンを出力する出力装置5とを備えている。
実施の形態3では、実施の形態1の図1の作成部102と、拡大描画部108と、算出部109と、ブレンド処理部110と、拡大描画記憶部104と、縮小描画記憶部105との代わりに、作成部301と、拡大描画部304と、算出部305と、ブレンド処理部307と、拡大描画記憶部303と、縮小描画記憶部306と、割り当て作成部302とが機能ブロック図の構成として加わる。
描画処理装置300は、入力装置4から描画情報とタグ情報とを取得する取得部101と、描画先バッファを作成する作成部301と、タグ情報を用いて描画対象を詳細描画処理するか否か判定する適用判定部106と、詳細描画処理を適用しないとタグ付けされた不適用描画対象を描画先バッファに描画する描画部107と、詳細描画処理を適用するとタグ付けされた適用描画対象の範囲に対応した詳細バッファをそれぞれ作成する割り当て作成部302と、各適用描画対象をそれぞれ対応する詳細バッファに拡大して描画する拡大描画部304と、適用描画対象のアルファ値とRGB値とを算出し、各詳細バッファを描画先バッファと同じサイズに縮小する算出部109と、アルファ値でRGB値をアルファブレンドして適用描画対象を描画先バッファに描画するブレンド処理部307と、出力装置5に描画先バッファに描画されたシーンを出力するよう制御する出力制御部111と、描画先バッファを記憶する描画先記憶部103と、各適用描画対象に対応する各詳細バッファを記憶する拡大描画記憶部303と、縮小する際の各詳細バッファを記憶する縮小描画記憶部306とを備えている。
次に、実施の形態3に係る描画処理システム3のハードウェア構成について説明する。描画処理システム3のハードウェア構成図は、実施の形態1の図2と同様である。
ただし、作成部301のハードウェア構成は作成部102と同様である。拡大描画部304のハードウェア構成は拡大描画部108と同様である。算出部305のハードウェア構成は算出部109と同様である。ブレンド処理部307のハードウェア構成はブレンド処理部110と同様である。拡大描画記憶部303のハードウェア構成は拡大描画記憶部104と同様である。縮小描画記憶部306のハードウェア構成は縮小描画記憶部105と同様である。割り当て作成部302は、グラフィックメモリ45に記憶するプログラムによって実現され、GPU44がグラフィックメモリ45にロードしたプログラムを読み込み、実行することにより実現する。なお、グラフィックメモリ45は、割り当て作成部302の機能と他の部の機能とのそれぞれを別々のメモリで実現してもよい。
次に、描画処理システム3及び描画処理装置300の動作について説明する。
本開示の実施の形態3に係る描画処理システム3の動作を示すフローチャートは、実施の形態1の図3と同様である。
図19は、本開示の実施の形態3に係る描画処理装置300の動作を示すフローチャートである。図19を用いて、描画処理装置300の動作を以下に説明する。
ステップS31において、取得部101は、描画情報とタグ情報とを作成部301に送信し、ステップS32に進む。それ以外は、ステップS31は、実施の形態1のステップS11と同様である。
ステップS32において、作成部301は、描画先バッファのみを作成し、詳細バッファを作成しない。作成部301は、描画情報とタグ情報とを適用判定部106に送信し、ステップS33に進む。それ以外は、ステップS32は、実施の形態1のステップS12と同様である。
ステップS33において、適用判定部106は、作成部301から描画情報とタグ情報とを受信する。描画部107は、描画先バッファへの描画の終了の通知を適用処理部106とブレンド処理部307に送信し、ステップS34に進む。それ以外は、ステップS33は、実施の形態1のステップS13と同様である。
ステップS34において、適用判定部106は、描画部107から描画先バッファへの描画の終了の通知を受信すると、描画情報と、適用描画対象である描画対象のタグ情報とを割り当て作成部302に送信する。
実施の形態3では、適用判定部106は、図4の描画情報に対して、描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル51のタグ情報と、適用描画対象であるとタグ付けされたポリゴンモデル52のタグ情報とを割り当て作成部302に送信する。
割り当て作成部302は、適用判定部106から描画情報と、適用描画対象である描画対象のタグ情報とを受信し、拡大描画記憶部303に適用描画対象ごとに対応する拡大描画する際の詳細バッファを作成する。各詳細バッファには、対応する各適用描画対象が描画されることになる。なお、拡大描画する際の詳細バッファは、描画先バッファより高解像度である。また、割り当て作成部302は、各詳細バッファが描画先バッファのどこの位置に対応するかという情報である位置情報を作成し、各詳細バッファに記憶させる。
実施の形態3では、割り当て作成部302は、適用判定部106から描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル51のタグ情報と、適用描画対象であるとタグ付けされたポリゴンモデル52のタグ情報とを受信する。割り当て作成部302は、拡大描画記憶部303にポリゴンモデル51に対応する拡大描画する際の詳細バッファ66を作成する。また、割り当て作成部302は、拡大描画記憶部303にポリゴンモデル52に対応する拡大描画する際の詳細バッファ67を作成する。詳細バッファ66には、ポリゴンモデル51が、詳細バッファ67には、ポリゴンモデル52が、それぞれ描画されることになる。なお、詳細バッファ66~67は、描画先バッファ55より高解像度である。
図20は、実施の形態3の適用描画対象のポリゴンモデル51に対応する詳細バッファ66と別の適用描画対象のポリゴンモデル52に対応する別の詳細バッファ67と実施の形態1の詳細バッファ56との対比関係を示した図である。実施の形態3では、詳細バッファ66~67は、実施の形態1と同じ描画先バッファ55の4倍の拡大率であるとする。つまり、実施の形態1の詳細バッファ56と、実施の形態3の詳細バッファ66~67とは、同じ拡大率であるとする。当該拡大率は、解像度に対応するため、拡大描画する際の詳細バッファ66~67は、描画先バッファ55より4倍の解像度となる。
ここで、実施の形態1の拡大描画する際の詳細バッファ56は、縦が16ピクセルで、横が16ピクセルの合計256ピクセルである。一方、実施の形態3の拡大描画する際の詳細バッファ66は、縦が4ピクセルで、横が4ピクセルの合計16ピクセルであり、実施の形態3の拡大描画する際の詳細バッファ67は、縦が6ピクセルで、横が6ピクセルの合計36ピクセルである。実施の形態3では、詳細バッファ66~67以外の範囲の詳細バッファは作成しないため、実施の形態1よりも作成する詳細バッファの大きさが小さくなり、メモリの使用量を低減することができる。
図21は、実施の形態3の適用描画対象のポリゴンモデル51に対応する詳細バッファ66と別の適用描画対象のポリゴンモデル52に対応する別の詳細バッファ67を示した図である。なお、実施の形態3では、詳細バッファ66と詳細バッファ67とは、同じ拡大率であるとしたが、それぞれの描画対象のサイズに合わせて、拡大率は違ってもいい。これにより、描画処理システム3は、それぞれの適用描画対象のサイズに応じて拡大率を設定できるため、一番サイズが小さい適用描画対象の拡大率に他の適用描画対象の拡大率を合わせなくてもいいため、描画処理負荷を低減させることができる。
また、割り当て作成部302は、詳細バッファ66が描画先バッファ55のどこの位置に対応するかという情報である位置情報70と、詳細バッファ67が描画先バッファ55のどこの位置に対応するかという情報である位置情報71とを作成する。割り当て作成部302は、詳細バッファ66に位置情報70を、詳細バッファ67に位置情報71を記憶させる。
図22は、詳細バッファ66が描画先バッファ55のどこの位置に対応するかという情報である位置情報70を模擬的に示した図である。描画先バッファ55上の点線の範囲66が詳細バッファ66の位置に対応する。
図23は、別の詳細バッファ67が描画先バッファ55のどこの位置に対応するかという情報である位置情報71を模擬的に示した図である。描画先バッファ55上の点線の範囲67が詳細バッファ67の位置に対応する。
なお、実施の形態3では、適用描画対象のポリゴンモデルごとに位置情報を分けたが、適用描画対象のポリゴンモデルすべてがそれぞれ描画先バッファ55のどこの位置に対応するかという情報として位置情報を1つにまとめて、拡大描画記憶部303が記憶していてもよい。
図24は、詳細バッファ66が描画先バッファ55のどこの位置に対応するかという情報と、別の詳細バッファ67が描画先バッファ55のどこの位置に対応するかという情報とをまとめた位置情報を模擬的に示した図である。描画先バッファ55上の点線の範囲66が詳細バッファ66の位置に対応し、描画先バッファ55上の点線の範囲67が詳細バッファ67の位置に対応する。
なお、実施の形態1の詳細バッファ56と同様に、実施の形態3の詳細バッファ66~67の描画先バッファ55に対する拡大率は、予め決められていてもよいし、ユーザーからの入力の受付によってユーザーが決められるようにしてもよいし、描画対象の描画サイズの大きさに対応して決められるなど、拡大率の決め方は限定しない。例えば、描画対象の描画サイズの大きさに対応して決められる場合は、割り当て作成部302は、描画対象ごとの面積を計算してもよいし、バウンディングボックスなどを用いて描画対象ごとの面積の概算をしてもよい。なお、3次元の描画対象の場合は、描画対象を2次元に投影変換してから、描画対象の大きさを計算する。バウンディングボックスなどを用いて描画対象ごとの面積の概算をする方法は、実施の形態1の図7と同様である。
また、ポリゴンモデル51に対応する拡大描画する際の詳細バッファ66の範囲は、ポリゴンモデル51全体が描画できる範囲である。ポリゴンモデル52に対応する拡大描画する際の詳細バッファ67の範囲は、ポリゴンモデル52全体が描画できる範囲である。適用描画対象に対応する詳細バッファの範囲は、拡大率と同様に、予め決められていてもよいし、ユーザーからの入力の受付によってユーザーが決められるようにしてもよいし、描画対象の描画サイズの大きさに対応して決められるなど、範囲の決め方は限定しない。例えば、描画対象の描画サイズの大きさに対応して決められる場合は、拡大率の決め方と同様である。なお、割り当て作成部302は、適用描画対象よりも範囲に余裕を持たせて詳細バッファを作成してもよい。
図19に戻って、割り当て作成部302は、描画情報と、適用描画対象である描画対象のタグ情報とを拡大描画部304に送信し、ステップS35に進む。実施の形態3では、割り当て作成部302は、描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル51のタグ情報と、適用描画対象であるとタグ付けされたポリゴンモデル52のタグ情報とを拡大描画部304に送信する。
ステップS35において、拡大描画部304は、割り当て作成部302から描画情報と、適用描画対象である描画対象のタグ情報とを受信すると、拡大描画記憶部303の各詳細バッファに適用描画対象である各描画対象を拡大描画する。
実施の形態3では、拡大描画部304は、割り当て作成部302から描画情報と、適用描画対象であるとタグ付けされたポリゴンモデル51のタグ情報と、適用描画対象であるとタグ付けされたポリゴンモデル52のタグ情報とを受信する。拡大描画部304は、拡大描画記憶部303の詳細バッファ66にポリゴンモデル51を拡大描画する。また、拡大描画部304は、拡大描画記憶部303の詳細バッファ67にポリゴンモデル52を拡大描画する。なお、詳細バッファ66にポリゴンモデル51を拡大描画する際の拡大率は、描画先バッファ55に対する詳細バッファ66の拡大率と同様である。詳細バッファ67にポリゴンモデル52を拡大描画する際の拡大率は、描画先バッファ55に対する詳細バッファ67の拡大率と同様である。
図25は、適用描画対象のポリゴンモデル51を詳細バッファ66に描画した描画結果68と別の適用描画対象のポリゴンモデル52を別の詳細バッファ67に描画した描画結果69と適用描画対象のポリゴンモデル51と別の適用描画対象のポリゴンモデル52とを重畳した図である。実施の形態1と同様に、図25の描画結果68のように、拡大描画部304は、ポリゴンモデル51を、描画先バッファ55に対する詳細バッファ66の拡大率と同じ4倍に拡大し、ポリゴンモデル51の形に類似するように詳細バッファ66のピクセルを描画情報に含まれる描画対象に付随したRGB値で塗りつぶす。同様に、図25の描画結果69のように、拡大描画部304は、ポリゴンモデル52を、描画先バッファ55に対する詳細バッファ67の拡大率と同じ4倍に拡大し、ポリゴンモデル52の形に類似するように詳細バッファ67のピクセルを描画情報に含まれる描画対象に付随したRGB値で塗りつぶす。実施の形態3の描画結果68は、実施の形態1の図10の描画結果57と同じになる。実施の形態3の描画結果69は、実施の形態1の図10の描画結果58と同じになる。
図26は、適用描画対象のポリゴンモデル51を詳細バッファ66に描画した描画結果68と別の適用描画対象のポリゴンモデル52を別の詳細バッファ67に描画した描画結果69とを示した図である。図26は図25のポリゴンモデル51~52の重畳表示をなくし、実際の描画結果68~69のみを示している。実施の形態1と同様に、図4からわかるように、ポリゴンモデル51を描画先バッファ55にそのまま描画していれば、ポリゴンモデル51はピクセルの中心を含まないため、描画されず消えてしまうが、ポリゴンモデル51を詳細バッファ66に拡大描画すると、ポリゴンモデル51は1ピクセルにおいて当該ピクセルの中心を含むため、消えることなく描画される。図25と同様に、実施の形態3の描画結果68は、実施の形態1の図11の描画結果57と同じになる。実施の形態3の描画結果69は、実施の形態1の図11の描画結果58と同じになる。
図19に戻って、拡大描画部304は、拡大描画の終了の通知を算出部305に送信し、ステップS36に進む。
ステップS36において、算出部305は、拡大描画部304から拡大描画の終了の通知を受信すると、拡大描画記憶部303に記憶されている各詳細バッファを描画先バッファと同じ大きさに縮小し、縮小描画記憶部306に記憶する。具体的には、算出部305が各詳細バッファを描画先バッファと同じ大きさに縮小する際の各縮小率は、各詳細バッファを作成した際の描画先バッファに対する各詳細バッファの各拡大率の逆数となる。算出部305は、各縮小率を用いて、縮小前の各詳細バッファの塗りつぶされたピクセルの割合から、適用描画対象の描画先バッファにおける各ピクセルのアルファ値を算出する。また、算出部305は、各縮小率を用いて、縮小前の各詳細バッファの塗りつぶされたピクセルのRGB値の平均値から、各適用描画対象の描画先バッファにおける各ピクセルのRGB値を算出する。算出部305は、各縮小率及び各ピクセルのRGB値を用いて、各詳細バッファを描画先バッファと同じ大きさに縮小し、各ピクセルにおいて、アルファ値とRGB値とを記憶する。なお、算出部305は、各詳細バッファを描画先バッファと同じ大きさに縮小する際、各詳細バッファが記憶している位置情報はそのまま記憶させるようにする。
実施の形態3では、算出部305は、拡大描画部304から拡大描画の終了の通知を受信すると、拡大描画記憶部303に記憶されている詳細バッファ66を、詳細バッファ66を作成した際の描画先バッファ55に対する詳細バッファ66の拡大率4倍の逆数である1/4倍に縮小し、描画先バッファ55と同じ大きさにする。同様に、算出部305は、拡大描画記憶部303に記憶されている詳細バッファ67を、詳細バッファ67を作成した際の描画先バッファ55に対する詳細バッファ67の拡大率4倍の逆数である1/4倍に縮小し、描画先バッファ55と同じ大きさにする。
図27は、詳細バッファ66を縮小した詳細バッファ72及び別の詳細バッファ67を縮小した詳細バッファ73を示した図である。図27は、算出部305が最終的に作成したい拡大描画記憶部303に記憶されている詳細バッファ66を1/4倍に縮小した詳細バッファ72と、詳細バッファ67を1/4倍に縮小した詳細バッファ73である。ポリゴンモデル51を詳細バッファ66に描画した描画結果68が、図27の詳細バッファ72に描画された1ピクセル74に反映されている。ポリゴンモデル52を詳細バッファ67に描画した描画結果69が、図27の詳細バッファ73に描画された1ピクセル75~76に反映されている。また、詳細バッファ72は、詳細バッファ66が記憶していた位置情報70を記憶する。詳細バッファ73は、詳細バッファ67が記憶していた位置情報71を記憶する。
図28は、詳細バッファ66と縮小した詳細バッファ72とのピクセルの対応及び別の詳細バッファ67と縮小した詳細バッファ73とのピクセルの対応を示した図である。図28のポリゴンモデル51を詳細バッファ66に描画した描画結果68を含む範囲74が図27の1ピクセル74に対応する。また、図28のポリゴンモデル52を詳細バッファ67に描画した描画結果69の一部を含む範囲75が図27の1ピクセル75に対応する。さらに、図28のポリゴンモデル52を詳細バッファ67に描画した描画結果69の一部を含む範囲76が図27の1ピクセル76に対応する。
算出部305が、1/4倍の縮小率を用いて、縮小前の詳細バッファ66~67の塗りつぶされたピクセルの割合から、ポリゴンモデル51~52の描画先バッファ55における各ピクセルのアルファ値を算出する方法は、実施の形態1のステップS15と同様である。ただし、算出部109が算出部305、図12が図27、図13が図28、範囲60が範囲74、1ピクセル60が1ピクセル74、範囲61が範囲75、1ピクセル61が1ピクセル75、範囲62が範囲76、1ピクセル62が1ピクセル76に置き換わる。
また、算出部305が、1/4倍の縮小率を用いて、縮小前の詳細バッファ66~67の塗りつぶされたピクセルのRGB値の平均値から、ポリゴンモデル51~52の描画先バッファ55における各ピクセルのRGB値を算出する方法も、実施の形態1のステップS15と同様である。ただし、算出部109が算出部305、図12が図27、図13が図28、1ピクセル60が1ピクセル74、1ピクセル61が1ピクセル75、1ピクセル62が1ピクセル76に置き換わる。
図19に戻って、算出部305は、各適用描画対象の1ピクセルごとのアルファ値及びRGB値の情報含めて縮小した詳細バッファ72~73を縮小描画記憶部306に記憶する。算出部305は、算出処理の終了の通知をブレンド処理部307に送信し、ステップS37に進む。
ステップS37において、ブレンド処理部307は、描画部107から描画先バッファへの描画の終了の通知を受信し、算出部305から算出処理の終了の通知を受信すると、縮小描画記憶部306に記憶されている各詳細バッファの位置情報を用いて、描画先記憶部103に記憶されている描画先バッファに対して、縮小描画記憶部306に記憶されている各詳細バッファを、1ピクセルごとにアルファ値でRGB値をアルファブレンドして適用描画対象を描画先バッファに描画する。
実施の形態3では、ブレンド処理部307は、描画部107から描画先バッファへの描画の終了の通知を受信し、算出部305から算出処理の終了の通知を受信する。
ブレンド処理部307は、詳細バッファ72に記憶されている位置情報70を用いて、描画先記憶部103に記憶されている図9の描画先バッファ55に対して、縮小描画記憶部306に記憶されている図27の詳細バッファ72の1ピクセル74についてアルファ値でRGB値をアルファブレンドして適用描画対象であるポリゴンモデル51を描画先バッファ55に描画する。具体的には、ブレンド処理部307は、図9の描画先バッファ55に対して、位置情報70に対応した位置に、図27のポリゴンモデル51の描画結果74の1ピクセルについて、アルファ値である0.25でRGB値であるR=R1、G=G1、B=B1をアルファブレンドする。
同様に、ブレンド処理部307は、詳細バッファ73に記憶されている位置情報71を用いて、描画先記憶部103に記憶されている図9の描画先バッファ55に対して、縮小描画記憶部306に記憶されている図27の詳細バッファ73の1ピクセル75についてアルファ値でRGB値をアルファブレンドして適用描画対象であるポリゴンモデル52の一部を描画先バッファ55に描画する。具体的には、ブレンド処理部307は、図9の描画先バッファ55に対して、位置情報71に対応した位置に、図27のポリゴンモデル52の一部の描画結果75の1ピクセルについて、アルファ値である0.75でRGB値であるR=R2、G=G2、B=B2をアルファブレンドする。
ブレンド処理部307は、詳細バッファ73に記憶されている位置情報71を用いて、描画先記憶部103に記憶されている図9の描画先バッファ55に対して、縮小描画記憶部306に記憶されている図27の詳細バッファ73の1ピクセル76についてアルファ値でRGB値をアルファブレンドして適用描画対象であるポリゴンモデル52の一部を描画先バッファ55に描画する。具体的には、ブレンド処理部307は、図9の描画先バッファ55に対して、位置情報71に対応した位置に、図27のポリゴンモデル52の一部の描画結果76の1ピクセルについて、アルファ値である0.25でRGB値であるR=R2、G=G2、B=B2をアルファブレンドする。
全てのポリゴンモデルを描画先バッファ55に描画した描画結果を示した図は、図14と同様である。ただし、描画結果63は、1ピクセル74についてアルファ値である0.25でRGB値であるR=R1、G=G1、B=B1をアルファブレンドした結果であり、模擬的に縦縞で塗られている。ポリゴンモデル52の一部である描画結果64は、1ピクセル75についてアルファ値である0.75でRGB値であるR=R2、G=G2、B=B2をアルファブレンドした結果であり、模擬的に斜線で塗られている。ポリゴンモデル52の一部である描画結果65は、1ピクセル76についてアルファ値である0.25でRGB値であるR=R2、G=G2、B=B2をアルファブレンドした結果であり、模擬的に横縞で塗られている。
ブレンド処理部307は、アルファブレンドの終了の通知を出力制御部111に送信し、ステップS38に進む。
ステップS38において、出力制御部111は、ブレンド処理部307からアルファブレンドの終了の通知を受信する。それ以外は、ステップS38は、実施の形態1のステップS17と同様である。
ステップS38を実行した後もステップS31に戻り、電源をOFFにすること、あるいは終了操作がなされる等の処理の終了のトリガーがあるまで上記のような処理を繰り返す。なお、上記のような処理を繰り返すとしたが、繰り返さず一回行うだけでもよい。
以上述べたように、実施の形態3の描画処理システム3は、適用判定部106によって不適用描画対象と判定された描画対象を、描画部107が描画先記憶部103に記憶されている描画先バッファに描画し、適用判定部106によって適用描画対象と判定された描画対象を、拡大描画部304が拡大描画記憶部303に記憶されている描画先バッファよりも高解像度である詳細バッファに拡大して描画し、算出部305が適用描画対象の透過度を表すアルファ値を算出し、詳細バッファを描画先バッファと同じサイズに縮小し、ブレンド処理部307が算出されたアルファ値で描画先バッファに適用描画対象をアルファブレンドし、出力制御部111がアルファブレンドした描画先バッファを出力装置5に出力するように制御するため、同一シーンに描画サイズ差が大きい描画対象が混在する場合に、シーン全体を高解像度、あるいは分割数を多くして描画する必要がないため、描画対象を表示画面上から消失させないように描画することによる描画処理負荷を低減させることができる。
また、実施の形態3においては、描画処理システム3は、割り当て作成部302が拡大描画記憶部303に適用描画対象ごとの範囲に対応した詳細バッファを作成し、拡大描画部304が適用描画対象の範囲に対応した詳細バッファに当該適用描画対象を拡大描画する。当該描画により、描画処理システム3は、適用描画対象の描画に使用しない範囲の割合が高い場合に、適用描画対象の範囲に対応した詳細バッファを作成するだけでいいため、無駄にバッファを作成する必要がなく、メモリの使用量を低減することができる。また、描画処理システム3は、それぞれの適用描画対象のサイズに応じて拡大率を設定できるため、一番サイズが小さい適用描画対象の拡大率に他の適用描画対象の拡大率を合わせなくてもいいため、描画処理負荷を低減させることができる。
また、実施の形態1~3においては、描画処理システム1~3は、算出部が、各縮小率を用いて、縮小前の各詳細バッファの塗りつぶされたピクセルの割合から、適用描画対象の描画先バッファにおける各ピクセルのアルファ値を算出するため、描画対象の輝度値を描画対象のサイズに応じて決定し、適切な輝度にすることができる。なお、ピクセルに限らず、面積であればよい。
実施の形態1~3においては、描画処理システム1~3は、算出部が、縮小率を用いて、縮小前の詳細バッファの塗りつぶされたピクセルのRGB値の平均値から、適用描画対象の描画先バッファにおける各ピクセルのRGB値を算出する。従来の描画処理システムは、複数のピクセルから1つのピクセルにする際のRGB値の平均値を算出する方法は、塗りつぶされていないピクセルも含めたすべてのピクセルのRGB値の平均値を算出する。しかし、本開示で、描画処理システムが塗りつぶされていないピクセルも含めたすべてのピクセルのRGB値の平均値を算出すると、描画先バッファにアルファブレンドする際に、塗りつぶされていないRGB値の値が2度計算されることになるので、実際よりも背景のRGB値が強調されたRGB値となってしまう。これを防ぐために、本開示の描画処理システム1~3は、算出部が、縮小率を用いて、縮小前の詳細バッファの塗りつぶされたピクセルのRGB値の平均値から、適用描画対象の描画先バッファにおける各ピクセルのRGB値を算出することで、より適切なRGB値を算出することができる。
なお、実施の形態1~3において、描画処理システム1~3は、不適用描画対象の描画をしてから、適用描画対象の描画をするように順番に処理していたが、同時に並列に描画してもいいし、描画の順番を逆にしてもよいし、不適用描画対象の描画と適用描画対象の描画とをランダムな順番に処理してもよい。また、不適用描画対象が複数ある場合は、描画処理システム1~3は、複数の不適用描画対象を順番に描画してもよいし、同時に並列に不適用描画対象を描画してもよい。同様に、適用描画対象が複数ある場合は、描画処理システム1~3は、複数の適用描画対象を順番に描画してもよいし、同時に並列に適用描画対象を描画してもよい。
実施の形態1~3において、描画処理システム1~3は、複数の記憶部を備えているが、すべてまとめて同じ記憶部で処理してもよいし、一部をまとめて同じ記憶部で処理してもよいし、さらに複数に記憶部を分けて処理してもよい。例えば、実施の形態1の描画処理システム1は、拡大描画記憶部104と縮小描画記憶部105とは別々に備えているが、同じ記憶部でまとめて処理してもよい。まとめて処理する場合は、記憶部は上書き保存となる。また、描画処理システム1~3は、描画処理装置100~300が複数の記憶部を備えていたが、記憶部はクラウドなど別の装置に備えられていてもよい。描画処理装置100~300は、通信によって記憶部と情報を授受すればよい。
実施の形態1において、描画処理システム1は、ステップS12において作成部102が描画先バッファと詳細バッファとを作成したが、予め描画先バッファと詳細バッファとが作成されていてもよい。また、ステップS12において作成部102が描画先バッファを作成した後、ステップS13とステップS14との間で、作成部102が詳細バッファを作成してもよい。描画先バッファの作成は、描画先バッファに描画がなされる前であればいつもでよい。また、詳細バッファの作成は、詳細バッファに描画がなされる前であればいつもでよい。同様に、実施の形態2~3においても、描画先バッファの作成は、描画先バッファに描画がなされる前であればいつもでよい。また、詳細バッファの作成は、詳細バッファに描画がなされる前であればいつもでよい。
実施の形態1~3において、描画処理システム1~3は、描画対象ごとの面積の概算値を算出する場合にバウンディングボックス80を用いたが、ボックスでなくても、球、ラグビーボール型、三角柱、三角錐などの描画対象の面積の算出よりも頂点数が少なく面積が算出しやすい形状でもよい。また、これらの組合せでもよい。なお、バウンディングボックスなどは、3次元の描画対象の面積の概算だけでなく、2次元の描画対象の面積の概算にも用いることができる。この場合、球は円、ラグビーボール型は楕円、三角柱及び三角錐は三角形などの頂点が少なく概算しやすい形状に置き換わる。
実施の形態1~3において、描画処理システム1~3は、例えば、描画対象が3次元グラフィックスのサーフェースモデルの1つであるポリゴンモデルである場合について適用したが、ポリゴンモデル以外のサーフェースモデル、ソリットモデル、ポイントモデルなどでも適用できる。また、描画対象が3次元グラフィックスではなく、描画対象が2次元グラフィックスである場合にも、描画処理システム1~3を適用できる。
実施の形態1~3において、描画処理システム1~3は、例えば、描画対象がRGB値で表されるRGBカラーの描画を表示する場合に適用したが、グレースケール、HSBカラーで表される描画を表示する場合にも適用できる。
ところで、上記した実施の形態に示した描画処理装置、描画処理システム、描画処理方法、および描画処理プログラムは一例に過ぎず、適宜、他の装置と組み合わせて構成することが出来るものであって、実施の形態単独の構成に限られるものではない。