(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-19
(45)【発行日】2023-10-27
(54)【発明の名称】情報処理装置、プログラム及び描画方法
(51)【国際特許分類】
G06T 15/06 20110101AFI20231020BHJP
G06T 15/00 20110101ALI20231020BHJP
【FI】
G06T15/06
G06T15/00 501
(21)【出願番号】P 2021158315
(22)【出願日】2021-09-28
【審査請求日】2021-12-20
(73)【特許権者】
【識別番号】511249637
【氏名又は名称】株式会社Cygames
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】岩▲崎▼ 順一
(72)【発明者】
【氏名】河端 智治
【審査官】佐野 潤一
(56)【参考文献】
【文献】特開2007-208481(JP,A)
【文献】特開2020-136882(JP,A)
【文献】特開平11-333144(JP,A)
【文献】特開2004-192470(JP,A)
【文献】特開2018-159703(JP,A)
【文献】特開2016-103263(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00-19/00
G06T 1/00- 3/00
A63F 13/00
H04N 9/12
H04N 9/64
H04N 1/46
G09G 5/00
(57)【特許請求の範囲】
【請求項1】
3次元仮想空間の視点を取得する視点取得部と、
前記3次元仮想空間に配置され、前記視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも前記視点に入射する仮想光の経路を計算して決定し、前記オブジェクトの輝度を含むオブジェクト情報を取得するオブジェクト情報取得部と、
前記オブジェクトの輝度に応じた色を反映させた前記オブジェクトを含む前記画面を、前記オブジェクト情報に基づいて描画する画面描画部と、
表示装置に前記画面を出力する画面出力部と、を備え
、
前記画面描画部は、
オブジェクトの輝度ごとにコンテンツの制作者による色彩表現が可能となる色情報が格納された輝度-色対応情報と、
前記輝度-色対応情報を参照して読み出した、前記オブジェクトの輝度に対応する前記色情報に基づいて、前記画面の画素ごとに色を決定する色決定部と、を有する
情報処理装置。
【請求項2】
前記輝度-色対応情報は、前記オブジェクトごと、又は前記オブジェクトの種類ごとに設けられる
請求項
1に記載の情報処理装置。
【請求項3】
3次元仮想空間の視点を取得する手順と、
前記3次元仮想空間に配置され、前記視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも前記視点に入射する仮想光の経路を計算して決定し、前記オブジェクトの輝度を含むオブジェクト情報を取得する手順と、
前記オブジェクトの輝度ごとにコンテンツの制作者による色彩表現が可能となる色情報が格納された輝度-色対応情報を参照して読み出した、前記オブジェクトの輝度に対応する前記色情報に基づいて、前記画面の画素ごとに色を決定し、前記オブジェクトの輝度に応じた色を反映させた前記オブジェクトを含む前記画面を、前記オブジェクト情報に基づいて描画する手順と、
表示装置に前記画面を出力する手順と、を
コンピューターに実行させるためのプログラム。
【請求項4】
3次元仮想空間の視点を取得するステップと、
前記3次元仮想空間に配置され、前記視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも前記視点に入射する仮想光の経路を計算して決定し、前記オブジェクトの輝度を含むオブジェクト情報を取得するステップと、
前記オブジェクトの輝度ごとにコンテンツの制作者による色彩表現が可能となる色情報が格納された輝度-色対応情報を参照して読み出した、前記オブジェクトの輝度に対応する前記色情報に基づいて、前記画面の画素ごとに色を決定し、前記オブジェクトの輝度に応じた色を反映させた前記オブジェクトを含む前記画面を、前記オブジェクト情報に基づいて描画するステップと、
表示装置に前記画面を出力するステップと、を含む
描画方法。
【請求項5】
3次元仮想空間の視点を取得する視点取得部と、
前記3次元仮想空間に配置され、前記視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも前記視点に入射する仮想光の経路を計算して決定し、前記オブジェクトの輝度を含むオブジェクト情報を取得するオブジェクト情報取得部と、
前記オブジェクトの輝度に応じた色を反映させた前記オブジェクトを含む前記画面を、前記オブジェクト情報に基づいて描画する画面描画部と、
表示装置に前記画面を出力する画面出力部と、を備え、
前記画面描画部は、
前記オブジェクトの輝度ごと、かつ
、シーンごとに設定される色味ごとに色情報が格納された輝度-色味-色対応情報と、
前記輝度-色味-色対応情報を参照して読み出した、前記オブジェクトの輝度に対応する前記色情報に基づいて、前記画面の画素ごとに色を決定する色決定部と、を有する
情報処理装置。
【請求項6】
前記輝度-色味-色対応情報は、前記オブジェクトごと、又は前記オブジェクトの種類ごとに設けられる
請求項
5に記載の情報処理装置。
【請求項7】
3次元仮想空間の視点を取得する手順と、
前記3次元仮想空間に配置され、前記視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも前記視点に入射する仮想光の経路を計算して決定し、前記オブジェクトの輝度を含むオブジェクト情報を取得する手順と、
前記オブジェクトの輝度ごと、かつ、シーンごとに設定される色味ごとに色情報が格納された輝度-色味-色対応情報を参照して読み出した、前記オブジェクトの輝度に対応する前記色情報に基づいて、前記画面の画素ごとに色を決定し、前記オブジェクトの輝度に応じた色を反映させた前記オブジェクトを含む前記画面を、前記オブジェクト情報に基づいて描画する手順と、
表示装置に前記画面を出力する手順と、を
コンピューターに実行させるためのプログラム。
【請求項8】
3次元仮想空間の視点を取得するステップと、
前記3次元仮想空間に配置され、前記視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも前記視点に入射する仮想光の経路を計算して決定し、前記オブジェクトの輝度を含むオブジェクト情報を取得するステップと、
前記オブジェクトの輝度ごと、かつ、シーンごとに設定される色味ごとに色情報が格納された輝度-色味-色対応情報を参照して読み出した、前記オブジェクトの輝度に対応する前記色情報に基づいて、前記画面の画素ごとに色を決定し、前記オブジェクトの輝度に応じた色を反映させた前記オブジェクトを含む前記画面を、前記オブジェクト情報に基づいて描画するステップと、
表示装置に前記画面を出力するステップと、を含む
描画方法。
【請求項9】
3次元仮想空間の視点を取得する視点取得部と、
前記3次元仮想空間に配置され、前記視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも前記視点に入射する仮想光の経路を計算して決定し、前記オブジェクトの輝度を含むオブジェクト情報を取得するオブジェクト情報取得部と、
前記オブジェクトの輝度に応じた色を反映させた前記オブジェクトを含む前記画面を、前記オブジェクト情報に基づいて描画する画面描画部と、
表示装置に前記画面を出力する画面出力部と、を備え、
前記画面描画部は、
前記オブジェクトの輝度ごと、かつ前記視点から前記オブジェクトまでの距離ごとに色情報が格納された輝度-距離-色対応情報と、
前記輝度-距離-色対応情報を参照して読み出した、前記オブジェクトの輝度及び前記オブジェクトまでの距離に対応する前記色情報に基づいて、前記画面の画素ごとに色を決定する色決定部と、を有する
情報処理装置。
【請求項10】
前記輝度-色味-色対応情報は、前記オブジェクトごと、又は前記オブジェクトの種類ごとに設けられる
請求項
9に記載の情報処理装置。
【請求項11】
3次元仮想空間の視点を取得する手順と、
前記3次元仮想空間に配置され、前記視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも前記視点に入射する仮想光の経路を計算して決定し、前記オブジェクトの輝度を含むオブジェクト情報を取得する手順と、
前記オブジェクトの輝度ごと、かつ前記視点から前記オブジェクトまでの距離ごとに色情報が格納された輝度-距離-色対応情報を参照して読み出した、前記オブジェクトの輝度及び前記オブジェクトまでの距離に対応する前記色情報に基づいて、前記画面の画素ごとに色を決定し、前記オブジェクトの輝度に応じた色を反映させた前記オブジェクトを含む前記画面を、前記オブジェクト情報に基づいて描画する手順と、
表示装置に前記画面を出力する手順と、を
コンピューターに実行させるためのプログラム。
【請求項12】
3次元仮想空間の視点を取得するステップと、
前記3次元仮想空間に配置され、前記視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも前記視点に入射する仮想光の経路を計算して決定し、前記オブジェクトの輝度を含むオブジェクト情報を取得するステップと、
前記オブジェクトの輝度ごと、かつ前記視点から前記オブジェクトまでの距離ごとに色情報が格納された輝度-距離-色対応情報を参照して読み出した、前記オブジェクトの輝度及び前記オブジェクトまでの距離に対応する前記色情報に基づいて、前記画面の画素ごとに色を決定し、前記オブジェクトの輝度に応じた色を反映させた前記オブジェクトを含む前記画面を、前記オブジェクト情報に基づいて描画するステップと、
表示装置に前記画面を出力するステップと、を含む
描画方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、プログラム及び描画方法に関する。
【背景技術】
【0002】
従来、3次元仮想空間に配置されるオブジェクトはボリュームレンダリングという手法を用いて描画されていた。ボリュームレンダリングは、ボリュームデータという「voxel(ボクセル)」と呼ばれる六面体(立方体)の集まりで形成された3次元的なデータを、voxel単位の輝度を算出し、全体を見渡せる2次元画像としてピクセルに変換を行い、画面に表示する技術である。この技術のためには、輝度を算出する処理が必要となる。そこで、レイマーチ、又はレイトレーシングと呼ばれる、3次元仮想空間で特定される視点に入力される光線を追跡することで、視点で観測される像をシミュレートする技術が用いられている。
【0003】
特許文献1には、第1画像データを取得する取得手段と、第1画像データの色を所定色域に含まれる色に変換して、第2画像データを生成する変換手段と、第2画像データに基づいて画像を表示する表示手段と、を有し、目標輝度に変換後の色の輝度が近づくように色を変換する第1変換処理と、輝度が変化しないように色を変換する第2変換処理と、の少なくとも一方の変換処理で、第1画像データの色を変換する表示装置について記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の技術で情報処理装置がオブジェクトをボリュームレンダリングする場合、レイマーチを行う過程で色や輝度の計算を行い、その計算結果の累積値を用いて画像を描画していた。一方、近年の高フレームレートかつ高精細画像での描画処理では、輝度ごとの計算量の削減が求められている。しかし、従来のレイマーチを行う過程で行われる色や輝度の計算の計算量は膨大であり、情報処理装置に対して処理負荷がかかっていた。
【0006】
また、特許文献1に開示された技術は、輝度と特定輝度との比較、色の変換処理が必要であるため、処理量を削減することはできなかった。また、写実的な画像であれば、輝度が反映されても違和感はないが、イラスト画像である場合、輝度がそのまま反映されると違和感が生じやすい。また、イラストの制作者が意図した画像が得られるとは限らなかった。
【0007】
本発明はこのような状況に鑑みて成されたものであり、制作者が意図した画像を表現することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る情報処理装置は、3次元仮想空間の視点を取得する視点取得部と、3次元仮想空間に配置され、視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも視点に入射する仮想光の経路を計算して決定し、オブジェクトの輝度を含むオブジェクト情報を取得するオブジェクト情報取得部と、オブジェクトの輝度に応じた色を反映させたオブジェクトを含む画面を、オブジェクト情報に基づいて描画する画面描画部と、表示装置に画面を出力する画面出力部と、を備え、オブジェクトの輝度ごとにコンテンツの制作者による色彩表現が可能となる色情報が格納された輝度-色対応情報と、輝度-色対応情報を参照して読み出した、オブジェクトの輝度に対応する色情報に基づいて、画面の画素ごとに色を決定する色決定部と、を有する。
また、本発明に係る情報処理装置は、3次元仮想空間の視点を取得する視点取得部と、3次元仮想空間に配置され、視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも視点に入射する仮想光の経路を計算して決定し、オブジェクトの輝度を含むオブジェクト情報を取得するオブジェクト情報取得部と、オブジェクトの輝度に応じた色を反映させたオブジェクトを含む画面を、オブジェクト情報に基づいて描画する画面描画部と、表示装置に画面を出力する画面出力部と、を備え、画面描画部は、オブジェクトの輝度ごと、かつ、シーンごとに設定される色味ごとに色情報が格納された輝度-色味-色対応情報と、輝度-色味-色対応情報を参照して読み出した、オブジェクトの輝度に対応する色情報に基づいて、画面の画素ごとに色を決定する色決定部と、を有する。
また、本発明に係る情報処理装置は、3次元仮想空間の視点を取得する視点取得部と、3次元仮想空間に配置され、視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも視点に入射する仮想光の経路を計算して決定し、オブジェクトの輝度を含むオブジェクト情報を取得するオブジェクト情報取得部と、オブジェクトの輝度に応じた色を反映させたオブジェクトを含む画面を、オブジェクト情報に基づいて描画する画面描画部と、表示装置に画面を出力する画面出力部と、を備え、画面描画部は、オブジェクトの輝度ごと、かつ視点からオブジェクトまでの距離ごとに色情報が格納された輝度-距離-色対応情報と、輝度-距離-色対応情報を参照して読み出した、オブジェクトの輝度及びオブジェクトまでの距離に対応する色情報に基づいて、画面の画素ごとに色を決定する色決定部と、を有する。
【発明の効果】
【0009】
本発明によれば、制作者が意図した画像の表現が可能となる。
上記した以外の課題、構成及び効果は、以下の実施の形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】本発明の第1の実施の形態に係る画像描画システムの概要を示す全体構成図である。
【
図2】本発明の第1の実施の形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【
図3】本発明の第1の実施の形態に係る3次元仮想空間におけるオブジェクトの配置例を示す上面図と画面の例を示す図である。
【
図4】本発明の第1の実施の形態に係る情報処理装置の機能構成例を示す機能ブロック図である。
【
図5】本発明の第1の実施の形態に係る距離-濃度カーブを近似した近似カーブの例を示す図である。
【
図6】本発明の第1の実施の形態に係る情報処理装置全体の処理の例を示すフローチャートである。
【
図7】本発明の第1の実施の形態に係るオブジェクト情報取得処理の詳細な処理の例を示すフローチャートである。
【
図8】本発明の第1の実施の形態に係る画面描画処理の詳細な処理の例を示すフローチャートである。
【
図9】本発明の第1の実施の形態に係る濃度決定処理の詳細な処理の例を示すフローチャートである。
【
図10】本発明の第2の実施の形態に係る情報処理装置の構成例を示すブロック図である。
【
図11】本発明の第2の実施の形態に係るLUTの構成例を示す図である。
【
図12】本発明の第2の実施の形態に係る画面描画処理の詳細な処理の例を示すフローチャートである。
【
図13】本発明の第2の実施の形態に係る画面描画処理の詳細な処理の例を示すフローチャートである。
【
図14】本発明の第2の実施の形態の第1の変形例に係るLUTの構成例を示す図である。
【
図15】本発明の第2の実施の形態の第2の変形例に係るLUTの構成例を示す図である。
【
図16】本発明の第2の実施の形態の第3の変形例に係るLUTの構成例を示す図である。
【
図17】本発明の第3の実施の形態に係るコンテンツ配信システムのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態について、添付図面を参照して説明する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
【0012】
[第1の実施の形態]
<画像描画システムの全体構成例>
図1は、第1の実施の形態に係る画像描画システム1の概要を示す全体構成図である。
画像描画システム1は、情報処理装置2、操作コントローラ3及び表示装置4を備える。情報処理装置2には、操作コントローラ3及び表示装置4が無線又は有線により接続されている。情報処理装置2として、例えば、ゲーム専用端末、PC(Personal Computer)等が用いられる。操作コントローラ3は、情報処理装置2を使用するユーザが行った操作の入力情報を情報処理装置2に入力するための入力装置の一例として用いられる。
【0013】
画像描画システム1では、光ディスク等の記録媒体に記録されたプログラムを情報処理装置2が読み出して実行する処理、情報処理装置2が操作コントローラ3からの入力情報に合わせて画面を描画する処理、表示装置4が画面を表示する処理が行われる。本明細書では、テキスト、静止画、動画、音楽、音声、及びそれらを組み合わせた情報をコンテンツと称する。コンテンツは、情報処理装置2が記録媒体から読み出したプログラムを実行することで表現される。また、コンテンツ特有の動作は、コンテンツ自体のプログラムによって制御される。このため、以下の説明では、プログラムとコンテンツを同じ意味として用いることがある。
【0014】
本実施の形態では、情報処理装置2が処理するプログラムがコンピューターゲームであるとする。情報処理装置2は、後述する
図2に示す光学ドライブ29に装填された光ディスク等の外部記録媒体からプログラムを読み込んで、所定の処理を行い、表示装置4に処理結果としての映像を表示する。なお、情報処理装置2は、自身が有する内部記録媒体にプログラムを記録しておき、内部記録媒体からプログラムを読み込んで所定の処理を行うこともできる。
【0015】
情報処理装置2は、操作コントローラ3から入力される操作信号に基づいてプログラムを選択し、表示装置4の画面に合わせた映像信号を表示装置4に出力する。操作コントローラ3により操作されるプログラムがコンピューターゲームである場合、情報処理装置2は、操作コントローラ3からの入力情報に応じて画面を描画し、この画面の映像を表示装置4に表示するための映像信号を出力する。
表示装置4は、情報処理装置2から入力する映像信号に基づいて、映像を表示する。
【0016】
例えば、情報処理装置2で読み込まれるコンピューターゲームでは、情報処理装置2のユーザが操作コントローラ3を通じて、表示装置4に表示される特定のキャラクター(「プレイヤー」と呼ぶ)に対する操作を行うことで、プレイヤーを含めた様々なシーンが描画された画面が表示装置4に表示される。プレイヤーは、3次元仮想空間内を自由に移動できるオブジェクトである。操作コントローラ3からのプレイヤーに対する操作として、例えば、プレイヤーの上下左右斜め方向への移動の他、プレイヤーを含むシーンを俯瞰する視点の移動、各種のコマンド入力等がある。操作コントローラ3で行われた操作により、表示装置4に表示されるプレイヤー及びシーンがほぼリアルタイムで変化する。このため、ユーザが意図した位置、コマンド等に対応したプレイヤーを含むシーンが表示装置4に表示される。
【0017】
<情報処理装置及びコンテンツ配信サーバのハードウェア構成例>
次に、画像描画システム1を構成する情報処理装置2のハードウェア構成例を説明する。
図2は、情報処理装置2のハードウェア構成例を示すブロック図である。
【0018】
(情報処理装置の構成例)
情報処理装置2は、各種のプログラムを実行可能なコンピューターとして動作する計算機の一例である。この情報処理装置2は、バス25にそれぞれ接続されたCPU(Central Processing Unit)21、GPU(Graphics Processing Unit)22、ROM(Read Only Memory)23、RAM(Random Access Memory)24、ネットワークインターフェイス26、入出力インターフェイス27、不揮発性ストレージ28及び光学ドライブ29を備える。
【0019】
CPU21は、本実施の形態に係る各機能を実現するソフトウェアのプログラムコードをROM23から読み出してRAM24にロードし、実行する。RAM24には、CPU21又はGPU22の演算処理の途中で発生した変数やパラメーター等が一時的に書き込まれ、これらの変数やパラメーター等がCPU21又はGPU22によって適宜読み出される。CPU21は、情報処理装置2のOS(Operating System)の処理、情報処理装置2内の各部で行われるデータの入出力の管理等の処理を行う。
【0020】
GPU22は、例えば、3次元オブジェクトを画面に描画するために必要な処理を行う。以下の説明で、描画処理とは、CPU21の指示によりGPU22によって行われる処理を指す。
図2に示すようにGPU22とCPU21とは別体で構成されてもよいし、CPU21の内部にGPU22が組み込まれた構成としてもよい。
【0021】
ネットワークインターフェイス26には、例えば、NIC(Network Interface Card)等が用いられ、NICの端子に接続されたLAN(Local Area Network)、専用線等を介して各種のデータを取得したり、他の情報処理装置2との間で通信を行ったりすることが可能である。
【0022】
入出力インターフェイス27は、操作コントローラ3から受け取った操作信号を所定の形式のデータに変換し、CPU21に渡す。また、入出力インターフェイス27は、GPU22で描画された画面のデータを映像信号に変換し、表示装置4に出力する。表示装置4は、入出力インターフェイス27から受け取った映像信号に基づいた映像を画面に表示する。なお、入出力インターフェイス27は、音声信号を表示装置4に出力することもできる。表示装置4は、入出力インターフェイス27から受け取った音声信号に基づいて、表示装置4に構成される不図示のスピーカから音声を放音することができる。
【0023】
不揮発性ストレージ28としては、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フレキシブルディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R又は不揮発性のメモリ等が用いられる。この不揮発性ストレージ28には、OS、各種のパラメーターの他に、情報処理装置2を機能させるためのプログラムが記録されている。ROM23及び不揮発性ストレージ28は、CPU21が動作するために必要なプログラムやデータ等を記録しており、情報処理装置2によって実行されるプログラムを格納したコンピューター読取可能な非一過性の記憶媒体の一例として用いられる。
【0024】
不揮発性ストレージ28が光ディスク等で構成された外部記録媒体である場合、光学ドライブ29は、この不揮発性ストレージ28を読み込んで、データを取り出す。光学ドライブ29が取り出したデータは、CPU21又はGPU22による所定の演算処理に用いられる。
【0025】
<3次元仮想空間の例>
次に、第1の実施形態に係る3次元仮想空間の例について説明する。
図3は、3次元仮想空間におけるオブジェクトの配置例を示す上面図と画面32の例を示す図である。
図3の上側には、3次元仮想空間の上面図が示される。
【0026】
3次元仮想空間には、多数のオブジェクトが配置されている。ここで、不透明オブジェクトとして用いられる円柱オブジェクト51、半透明オブジェクトとして用いられる雲オブジェクト50,52,53、半透明オブジェクトとして用いられる炎オブジェクト54が3次元仮想空間に配置された例について説明する。図中には、視点から円柱オブジェクト51までの距離L1、視点から雲オブジェクト53までの距離L2、視点から炎オブジェクト54までの距離L3が示されている。ここで、距離L1は、仮想カメラ30から矢印41に沿った円柱オブジェクト51までの線分の長さを表す。同様に、距離L2は、仮想カメラ30から矢印42に沿った雲オブジェクト53までの線分の長さを表し、距離L3は、仮想カメラ30から矢印43に沿った炎オブジェクト54までの線分の長さを表す。
【0027】
3次元仮想空間内には仮想カメラ30が配置される。仮想カメラ30は、3次元仮想空間内に配置されるカメラを仮想的に表現したものであり、例えば、プレイヤーの向きに合わせて3次元仮想空間内を撮影する。この仮想カメラ30は、3次元仮想空間の任意の位置の視点に合わせて配置され、プレイヤーの向きに合わせた画像、プレイヤーを俯瞰する画像等を撮影可能である。そこで、仮想カメラ30の位置を「視点」と呼ぶ。後述する
図4に示す画面描画部14は、視点の移動に合わせて画像を描画する。
【0028】
仮想カメラ30は、画角31内のオブジェクトを撮影可能である。そして、仮想カメラ30が撮影したオブジェクトは、図中に破線で示す画面32に描画される。画面32の描画領域は、表示装置4の表示領域にほぼ一致するものと想定する。
図3では、表示装置4に表示される画面と、画面描画部14が描画する画面32のサイズ及び画素数は同じものとして表している。ただし、表示装置4に表示される画面と、画面描画部14が描画する画面32のサイズ及び画素数は異なっていてもよい。
【0029】
次に、仮想カメラ30の視点を基準として、画角31内に3本の矢印41~43を想定し、複数のオブジェクトが矢印方向で並ぶときに表示装置4に表示される画面32の例を説明する。
図3の下側には、画面32の例が示される。画面32は、
図3の上側に示した3次元仮想空間を視点から見たものである。この画面32は、複数の画素Pにより構成される。
【0030】
(1)半透明オブジェクト-不透明オブジェクト-半透明オブジェクトの並び
視点から矢印41の方向に、雲オブジェクト50(半透明オブジェクト)、円柱オブジェクト51(不透明オブジェクト)、雲オブジェクト52(半透明オブジェクト)が並んでいる。円柱オブジェクト51は不透明であるので、円柱オブジェクト51の奥側にある雲オブジェクト52の円柱オブジェクト51と重なる部分は描画されていない。一方、円柱オブジェクト51より手前側にある雲オブジェクト50は半透明である。このため、画素P1では、雲オブジェクト50から円柱オブジェクト51の一部が透けて描画される。
【0031】
(2)半透明オブジェクト-半透明オブジェクトの並び
視点から矢印42の方向に、雲オブジェクト50(半透明オブジェクト)、雲オブジェクト53(半透明オブジェクト)が並んでいる。雲オブジェクト50は半透明である。このため、画素P2では、雲オブジェクト50から雲オブジェクト53の一部が透けて描画される。そして、雲オブジェクト53のうち、雲オブジェクト50と重ならない部分の濃度は、雲オブジェクト50と重なる部分の濃度とは異なって描画される。例えば、雲オブジェクト50と雲オブジェクト53が重なる部分は、それぞれの雲オブジェクト50,53が透けて描画されるため、
図3の下部に示すように画素毎の濃度が濃く描画される。一方、雲オブジェクト50と雲オブジェクト53が重ならない部分は、それぞれの雲オブジェクト50,53のみが描画されるため、雲オブジェクト50,53が重なる部分よりも画素毎の濃度が薄く描画される。ただし、個々の雲オブジェクト50,53の濃度はコンポジション合成等の手法によって決まるので、雲オブジェクト50,53の画素毎の濃度が濃くなるか薄くなるかは断定できない。このため、個々の雲オブジェクト50,53の重ならない部分の濃度が、重なる部分の濃度よりも薄く描画されるとは限らない。
【0032】
(3)半透明オブジェクトの内部に半透明オブジェクトが含まれる並び
視点から矢印43の方向に、雲オブジェクト50(半透明オブジェクト)、炎オブジェクト54(半透明オブジェクト)が並んでいる。ただし、雲オブジェクト50の内部に炎オブジェクト54が含まれた状態である。雲オブジェクト50は半透明である。このため、画素P3では、炎オブジェクト54が雲オブジェクト53から透けて描画される。
【0033】
<第1の実施形態に係る情報処理装置の機能構成例>
次に、第1の実施形態に係る情報処理装置2の機能構成例について説明する。
図4は、情報処理装置2の機能構成例を示す機能ブロック図である。
【0034】
情報処理装置2は、入力受付部11、視点取得部12、オブジェクト情報取得部13、画面描画部14、画面出力部15を備える。
【0035】
入力受付部11は、操作コントローラ3から入力情報を受付ける。入力受付部11の機能は、主に
図2に示した入出力インターフェイス27により実現される。また、入力受付部11は、あるシーンで発生する割り込み処理等の開始情報も入力情報として受付ける。この場合、操作コントローラ3からの入力情報が無くても、シーンが切り替わったり、視点が移動したりすることがある。このため、CPU21の内部処理によっても実現される。
【0036】
視点取得部12は、3次元仮想空間内におけるプレイヤーオブジェクトの位置に合わせて視点を取得する。上述したように視点取得部12が取得する視点は、
図3に示した仮想カメラ30の位置にほぼ一致するものとする。
【0037】
オブジェクト情報取得部13は、3次元仮想空間に配置される複数のオブジェクトが、それぞれ不透明オブジェクト又は半透明オブジェクトのいずれであるかを示すオブジェクト情報を取得する。なお、オブジェクト情報には、例えば、オブジェクトが雲オブジェクト、円柱オブジェクト、炎オブジェクトのいずれであるかといったオブジェクト自体の属性情報が含まれる。
【0038】
他にも、オブジェクト情報には、オブジェクト情報取得部13が決定したオブジェクトの輝度の情報が含まれる。オブジェクトの輝度は、オブジェクト情報取得部13が計算可能である。例えば、オブジェクト情報取得部13は、3次元仮想空間に配置され、視点を基準として画面に描画されるオブジェクトの輝度を、少なくとも視点に入射する仮想光の経路を計算して決定する。ここで、オブジェクト情報取得部13がレイマーチ処理又はレイトレーシング処理を実行してオブジェクトの輝度を決定することができる。
【0039】
画面描画部14は、複数のオブジェクトのうち、一のオブジェクト及び他のオブジェクトが半透明オブジェクトであることをオブジェクト情報から判定した場合に、一のオブジェクト及び他のオブジェクトの濃度を求める。一のオブジェクトとは、例えば、
図3に示した雲オブジェクト50が想定される。また、他のオブジェクトとは、例えば、
図3に示した雲オブジェクト52,53、炎オブジェクト54が想定される。
【0040】
そして、画面描画部14は、視点から他のオブジェクトまでの距離(例えば、
図3に示した距離L1~L3)に応じて、一のオブジェクトの距離と濃度との関係から一のオブジェクトの濃度及び他のオブジェクトの濃度を求める。距離と濃度との関係は、後述する
図5に示す近似カーブ65で表される。そして、画面描画部14は、それぞれの濃度を求めた一のオブジェクト及び他のオブジェクトを含む画面32を描画する。
画面出力部15は、画面描画部14により描画された画面を表示装置4に出力する。
【0041】
入力受付部11及び画面出力部15の機能は、
図2に示した入出力インターフェイス27により実現される。また、視点取得部12、オブジェクト情報取得部13及び画面描画部14の機能は、
図2に示したGPU22により実現されるが、情報処理装置2がGPU22を有さない構成であれば、CPU21により実現されてもよい。
【0042】
<画面描画部の処理の詳細>
図4に示した画面描画部14は、上述した一のオブジェクト及び他のオブジェクトが半透明オブジェクトであることをオブジェクト情報から判定した場合に、視点からの距離に応じて濃度が変化する変化点が設定された距離と濃度との関係を決定して、一のオブジェクトの濃度及び他のオブジェクトの濃度を求める。そこで、距離と濃度との関係を表す近似カーブの作成方法、及び半透明オブジェクトの濃度の決定方法について説明する。
【0043】
図5は、距離-濃度カーブを近似した近似カーブの例を示す図である。
図5のグラフの横軸は距離、縦軸は濃度[%]を表す。
図5Aは、距離-濃度カーブ60と、RGBの3つの要素を持つ画素Pにより表現される近似カーブ65の例を示す。
図5Bは、距離-濃度カーブ70と、RGBAの4つの要素を持つ画素Pにより表現される近似カーブ75の例を示す。以下の説明では、距離-濃度カーブ60,70を共に「真の濃度カーブ」とも呼ぶ。
【0044】
始めに、
図5Aに示す近似カーブ65について説明する。
図5Aに細線で表す距離-濃度カーブ60は、
図5Aに太線で表す距離と濃度との関係を表した近似カーブ65で近似される。そして、距離と濃度との関係は、一のオブジェクトの画素ごとに保存される。また、近似カーブ65を構成する変化点は、画素の要素数に合わせて設定される。
図5で説明する距離とは、情報処理装置2が認識可能な最遠地点を基準(1.0)とした小数で表される値である。この距離は、地点距離(例えば、仮想カメラ30から雲オブジェクトまでの距離)/最遠距離で求まる小数で表されるため、無次元量の値である。ただし、
図5で説明する距離をメートル単位の値とする変形例を用いてもよい。
【0045】
一般的に画素には、RGBの画素値が格納される。そして、画素値は、RGBのそれぞれの要素に対して「0」~「255」の範囲で値をとる。
一方、本実施の形態では、RGBの画素値を格納可能な画素のそれぞれの要素に対して3個の変化点61~63が格納される。例えば、Rの要素には、濃度が0%である時の変化点61に対応する「0.25」が格納される。同様に、Gの要素には濃度が50%である時の変化点62に対応する「0.4」が格納され、Bの要素には濃度が100%である時の変化点63に対応する「0.8」が格納される。
【0046】
RGBの各要素に格納される距離は、浮動小数点で表される値である。本実施の形態では、浮動小数点がfloat型で表される。float型のデータは、4バイト(32ビット)のサイズを持つ。また、float型のデータは、符号部(1ビット)、指数部(8ビット)、仮数部(23ビット)で構成される。このため、RGBの各要素は、32ビットのデータを格納可能としている。距離をfloat型の浮動小数点で表現することで、距離の値を細かく設定できるようになり、距離の確度が向上する。例えば、仮想カメラ30から雲オブジェクトまでの距離を3kmのように表現することが可能となる。なお、距離を浮動小数点で表さなければ、距離を表現可能な桁数が少なくなる。このため、例えば、雲オブジェクトの距離を3km先と表現したとしても、実際の値に対する誤差が大きくなり、距離の確度が下がる。
【0047】
ここで、一のオブジェクトの濃度と、他のオブジェクトの濃度との関係について説明する。
まず、一のオブジェクト(例えば、雲オブジェクト)については、距離と濃度の関係が予め決められている。つまり、一のオブジェクトにおける真の濃度カーブが定められている。したがって、画面描画部14は、一のオブジェクト単体であって、他のオブジェクトと重なりのない画素Pについては、一のオブジェクトの真の濃度カーブを参照して一のオブジェクトの濃度を決定する。
【0048】
一方で、一のオブジェクトと他のオブジェクトが重なる画素Pの濃度を決定するにあたって、画面描画部14が一のオブジェクトの真の濃度カーブを参照する点までは、一のオブジェクト単体であって、他のオブジェクトと重なりのない場合における上述した濃度決定処理と同様である。ただし、画面描画部14は、一のオブジェクトと他のオブジェクトとの重なりを考慮する必要があるので、一のオブジェクトの濃度を直ちに決定できない。そこで、画面描画部14は、
図5Aに示す変化点61~63をRGBのそれぞれの要素に保存する。その後、画面描画部14は、他のオブジェクトの描画処理において、変化点61~63から近似カーブ65を決定することで、一のオブジェクトと他のオブジェクトの濃度を決定する。このように近似カーブ65が、視点からの距離に応じて濃度が変化する変化点が設定された距離と濃度との関係の一例として用いられる。
【0049】
例えば、画面描画部14は、
図3に示した視点側に存在する雲オブジェクト50の画素Pに基づいて、
図5Aに示す近似カーブ65を決定したとする。そして、
図3に示した雲オブジェクト50より奥側に存在する雲オブジェクト53が距離L2の位置で
図5Aに示されると想定する。
図3に示したように視点側にある雲オブジェクト50の奥行き方向の厚み、濃度等により、奥側にある雲オブジェクト53の濃度が変化する。また、画素毎にZバッファが設けられているので、画面描画部14は、複数のオブジェクトの重なり順序が分かる。そこで、画面描画部14は、視点を基準としてある画素Pで雲オブジェクト50,53が重なって並んでいると判定すると、画素Pにおける近似カーブ65を作成する。
【0050】
ここで、雲オブジェクト50の濃度が0[%]の距離にあるオブジェクト55は、不透明オブジェクト又は半透明オブジェクトのいずれであっても、このオブジェクト55の元の濃度で描画される。一方、雲オブジェクト50の濃度が100[%]の距離にあるオブジェクト56は、不透明オブジェクト又は半透明オブジェクトのいずれであっても、描画されないか、透明で描画される。
【0051】
雲オブジェクト50の濃度が0[%]~100[%]の範囲内であれば、雲オブジェクト50に重なる雲オブジェクト53の濃度が影響される。そこで、画面描画部14は、画素Pの要素に格納された変化点61~63を用いて近似カーブ65を決定した後、雲オブジェクト50より奥側にある雲オブジェクト53までの距離L2を近似カーブ65に当てはめる。そして、画面描画部14は、距離L2における近似カーブ65により雲オブジェクト50の濃度x[%]を求める。濃度x[%]が濃度100[%]より低い値であることは、雲オブジェクト50を透過して、奥側にある雲オブジェクト53が描かれることを意味する。そこで、画面描画部14は、奥側にある雲オブジェクト53の元の濃度を100[%]とした時に、雲オブジェクト53の濃度を、100[%]-x[%]と算出し、濃度100[%]-x[%]で雲オブジェクト53を描画する。
【0052】
ここで、視点側に存在する一の半透明オブジェクトの濃度に対して、奥側に存在する他の半透明オブジェクトの濃度を求める式は、上記の加算合成の式(元の濃度の100[%]-x[%])に限らない。他の半透明オブジェクトの濃度は、他にも乗算合成などの様々な手法を用いてよい。
【0053】
なお、上記の考察は、複数の半透明オブジェクトがある画素Pで重なるときに描画される様子を説明したものである。雲オブジェクト53が視点から距離L2の場所に配置されていても、雲オブジェクト53が雲オブジェクト50と重ならない部分は、雲オブジェクト50の濃度の影響を受けない。このため、雲オブジェクト50と重ならない部分は、雲オブジェクト53の元の濃度で描画される。
【0054】
また、画素毎に真の濃度カーブが異なる。このため、雲オブジェクト50の奥行き方向の厚みによっても、雲オブジェクト50に重なる他の半透明オブジェクト(雲オブジェクト53等)の濃度が画素毎に異なるので、画面描画部14が画素毎に処理する必要がある。例えば、奥行き方向に厚い雲オブジェクト50が視点側に存在する場合は、他の半透明オブジェクトの濃度は薄くなる。逆に、奥行き方向に薄い雲オブジェクト50が視点側にある場合は、他の半透明オブジェクトの濃度は濃くなる。
【0055】
次に、
図5Bに示す近似カーブ75について説明する。
図5Bでは、細線で表す距離-濃度カーブ70が、
図5Bに太線で表す距離と濃度との関係を表した近似カーブ75で近似される。なお、
図5Bに示す距離-濃度カーブ70は、
図5Aに示した距離-濃度カーブ60とは少し異なる。
【0056】
図5Bに示す形態では、RGBAの画素値を格納可能な画素のそれぞれの要素に対して4個の変化点71~74が格納される。例えば、Rの要素には、濃度が0%である時の変化点71に対応する「0.25」が格納され、Gの要素には濃度が33%である時の変化点72に対応する「0.44」が格納される。同様に、Bの要素には濃度が66%である時の変化点73に対応する「0.55」が格納され、Aの要素には濃度が100%である時の変化点74に対応する「0.8」が格納される。
【0057】
図5Bに示す近似カーブ75は、変化点の数が多いので、
図5Aに示した近似カーブ65よりも距離-濃度カーブ70を良好に近似できている。ただし、RGBAの要素に変化点71~74が格納されるので、画素毎のデータサイズが大きくなる。
【0058】
なお、
図5では、RGB又はRGBAの各要素に格納される距離をfloat型の浮動小数点で表した例を示したが、RGB又はRGBAの各要素に格納される距離をdouble型の浮動小数点で表すことも可能である。double型のデータは、4バイト(32ビット)のサイズを持つ。また、double型のデータは、符号部(1ビット)、指数部(11ビット)、仮数部(52ビット)で構成される。このため、double型の浮動小数点は、float型の浮動小数点の倍の精度を持っており、float型より遠くの距離を表すことも可能となる。
【0059】
画面描画部14が
図5Bに示す近似カーブ75を用いて、複数の半透明オブジェクトがある画素で重なるときに描画する時の処理は、
図5Aに示す近似カーブ65を用いて複数の半透明オブジェクトを描画する時の処理と同様である。
【0060】
また、
図5Aでは、RGBの各要素に格納される距離として、濃度を0%、50%、100%で等分割した時の距離を用いた。しかし、RGBの各要素に格納される距離として、画素のRGBの要素に対して、それぞれ濃度を10%、50%、90%のように不等分割した時の距離を用いてもよい。同様に、RGBAの各要素に格納される距離にも、画素のRGBAの要素に対して、濃度を不等分割した時の距離を用いてもよい。
【0061】
なお、近似カーブは、
図5に示したような折れ線で表してもよいし、所定の曲線回帰手法(例えば、カーブフィッティング)を用いて、より精度の高い曲線関数で表してもよい。
【0062】
また、真の濃度カーブを距離と濃度との関係の一例として用いてもよい。この場合、画面描画部14は、真の濃度カーブに基づいて、一のオブジェクトの濃度及び他のオブジェクトの濃度を求めることが可能である。
【0063】
<情報処理装置における処理の流れ>
以上の考察を踏まえて、本実施の形態に係る情報処理装置2で行われる画面32の描画方法に係る処理について、以下の
図6~
図9に示すフローチャートを参照して説明する。以下の説明では、
図5Aに示したRGBの3つの要素を持つ画素Pにより表現される近似カーブ65を用いて処理が行われるものとする。
図6は、情報処理装置2全体の処理の例を示すフローチャートである。
【0064】
始めに、入力受付部11は、操作コントローラ3から入力情報を受付ける(S1)。上述したように入力情報には、操作コントローラ3から入力される情報だけでなく、例えば、現在のシーンから別のシーンに切り替わることを示す情報、3次元仮想空間内で発生したイベントにより光や地形が変化することを示す情報等が含まれる。次に、視点取得部12は、3次元仮想空間における視点を取得する(S2)。
【0065】
次に、オブジェクト情報取得部13は、
図3に示した仮想カメラ30の画角内に配置された全てのオブジェクトのオブジェクト情報を取得する(S3)。オブジェクト情報として、例えば、視点からオブジェクトまでの距離等の情報がある。また、オブジェクト情報取得部13は、オブジェクトの輝度を算出して取得する。
【0066】
次に、画面描画部14は、画面を描画する(S4)。この時、画面描画部14は、複数の半透明オブジェクトが並んで配置されている場合に、
図5Aに示した近似カーブ65を用いて、複数の半透明オブジェクトの濃度を画素毎に算出する。
【0067】
最後に、画面出力部15は、画面描画部14により描画された画面を表示装置4に出力する(S5)。ここで、画面出力部15は、表示装置4が受け付け可能な映像信号を表示装置4に送信することで、画面を出力する。表示装置4は、映像信号を受信すると画面を表示する。
【0068】
なお、画面描画部14が描画する画面32の解像度と、表示装置4が表示可能な画面の解像度は同じでもよいし、異なっていてもよい。例えば、画面描画部14が2Kサイズの画面を描画して出力した場合であっても、画面出力部15が画面を4Kサイズにアップコンバートすることで、4K映像を表示可能な表示装置4が4Kサイズの画面を表示することも可能である。
【0069】
次に、
図6のステップS3に示したオブジェクト情報取得処理の詳細例について説明する。
図7は、オブジェクト情報取得処理の詳細な処理の例を示すフローチャートである。
【0070】
始めに、オブジェクト情報取得部13は、3次元仮想空間に配置されたオブジェクトの属性情報をオブジェクト毎に取得する(S11)。オブジェクトの属性情報には、オブジェクトを規定するための様々な情報が含まれる。例えば、オブジェクトには、不透明オブジェクト又は半透明オブジェクトのいずれであるかを示す属性情報が設定されている。このため、オブジェクト情報取得部13は、注目するオブジェクトの属性情報に基づいて、このオブジェクトが不透明オブジェクト又は半透明オブジェクトのいずれであるかを判定する。
【0071】
また、オブジェクト情報取得部13は、注目するオブジェクトの属性情報に基づいて、このオブジェクトが岩オブジェクト、人オブジェクト、雲オブジェクトのいずれであるかを判断することも可能である。また、オブジェクト情報取得部13は、視点からオブジェクトまでの距離を画素Pごとに取得することで、オブジェクトの並び、オブジェクトの重なり等を把握できる。
【0072】
次に、オブジェクト情報取得部13は、画角内のオブジェクトに対してレイマーチ処理を行い、
図3に示した画面32の画素Pごとに輝度を算出する(S12)。
【0073】
次に、オブジェクト情報取得部13は、視点からオブジェクトまでの距離を画素毎に取得する(S13)。
図3に示したように、オブジェクト情報取得部13は、画面32の画素Pごとに視点から各オブジェクトまでの距離を取得する。
その後、オブジェクト情報取得部13は、
図6に示した描画処理(S4)に処理を戻す。
【0074】
次に、
図6のステップS4に示した画面描画処理の詳細例について説明する。
図8は、画面描画処理の詳細な処理の例を示すフローチャートである。
【0075】
始めに、画面描画部14は、
図3に示した1枚の画面32内の全ての画素Pを処理したか否かを判断する(S21)。画面32内の全ての画素Pを処理していなければ(S21のNO)、画面描画部14は、未処理の画素Pに注目して複数のオブジェクトが重なる画素Pがあるか否かを判断する(S22)。
【0076】
複数のオブジェクトが重なる画素Pがなければ(S22のNO)、画面描画部14は、再びステップS21に戻って処理を続ける。
一方、複数のオブジェクトが重なる画素Pがあれば(S22のYES)、画面描画部14は、重なる複数のオブジェクトが半透明オブジェクトであるか否かを判断する(S23)。例えば、
図3に示した画素P2,P3が、重なる複数のオブジェクトが半透明オブジェクトを表している。
【0077】
重なる複数のオブジェクトが半透明オブジェクトでなければ(S23のNO)、画面描画部14は、再びステップS21に戻って処理を続ける。
一方、重なる複数のオブジェクトのいずれかが半透明オブジェクトであれば(S23のYES)、画面描画部14は、各オブジェクトの濃度を画素ごとに決定する処理を行う(S24)。その後、画面描画部14は、再びステップS21に戻って処理を続ける。
【0078】
そして、画面32内の全ての画素Pを処理していれば(S21のYES)、画面描画部14は、ステップS24で決定したオブジェクトの濃度に基づき、プレイヤーの位置に合わせて画面を描画する(S25)。
その後、画面描画部14は、
図6に示した画面出力処理(S5)に処理を戻す。
【0079】
次に、
図8のステップS24に示した濃度決定処理の詳細例について説明する。
図9は、濃度決定処理の詳細な処理の例を示すフローチャートである。
【0080】
始めに、画面描画部14は、画素Pに格納されたRGBの要素ごとに、
図5に示した変化点61~63を取得する(S31)。次に、画面描画部14は、取得した変化点61~63を用いて、近似カーブ65を決定する(S32)。
【0081】
そして、画面描画部14は、視点からオブジェクトまでの距離を近似カーブ65に当てはめて、その画素Pにおけるオブジェクトの濃度を決定する(S33)。このように画面描画部14は、従来のようなアルファ値の透明度を記録するのでなく、視点からの半透明オブジェクトの距離を記録した上で、これらの距離と、近似カーブ65とを用いて、半透明オブジェクトの濃度を決定する。決定したオブジェクトの濃度は、例えば、
図2に示したRAM24に画素Pごとに保存される。
その後、画面描画部14は、
図8に示した画面描画処理のステップS21に処理を戻す。
【0082】
以上説明した第1の実施形態に係る画像描画システム1では、複数の半透明オブジェクトが重なっていても、それぞれの濃度が違和感のないように各半透明オブジェクトが描画される。ある画素Pで重なる複数の半透明オブジェクトのうち、視点側に配置された半透明オブジェクトの濃度による影響は、奥側に配置された半透明オブジェクトまでの距離によって決まる。このため、複数の半透明オブジェクトが視点側から奥側に並んで配置されたシーンだけでなく、ある半透明オブジェクトの内部に別の半透明オブジェクトを含むように配置されたシーンであっても、各半透明オブジェクトの濃度が自然に描画される。
【0083】
ここで、画面描画部14は、画素PからRGBの要素ごとに取得した変化点61~63を用いて、
図5に示した距離-濃度カーブ60を近似した近似カーブ65を作成する。この近似カーブ65は、変化点61~63の間を補間するだけで作成可能である。このため、画面描画部14は、近似カーブ65の作成負荷を抑えることができる。
【0084】
また、画素P毎に半透明オブジェクトの濃度が決定されるので、複雑な濃度変化が描画されるようになる。このため、従来のような広い範囲で一定の濃度で描画されるオブジェクトと比べて、立体感のあるオブジェクトが表現可能となる。例えば、雲や霧の中を移動するキャラクターや、霧の中で燃える炎、時間経過により形状や濃度が変化する雲オブジェクト等の立体感のある表現が可能となる。このように、従来は平面的に塗りつぶされたり、パンチングされたりして表現されていた半透明オブジェクトが、本実施の形態では、立体的に表現されるようになる。
【0085】
また、本実施の形態では、画面描画部14が奥側にある雲オブジェクト53を先に描画した後、雲オブジェクト53より手前にある雲オブジェクト50が描画される。ただし、画面描画部14は、複数の半透明オブジェクトが重なっていると判定した場合であっても、各半透明オブジェクトの描画順を定めなくてもよい。例えば、画面描画部14は、手前にある雲オブジェクト50を先に描画した後、奥側にある雲オブジェクト53を描画してもよい。
【0086】
また、画素Pの各要素には、RGBの値の代わりに、浮動小数点で距離が格納される。従来の256段階でしか表現できないRGBの値に比べて、非常に大きな値まで浮動小数点で距離を表すことが可能となる。このため、画面描画部14は、視点から非常に遠い場所に配置された雲オブジェクトの距離を正しく表すことができ、この雲オブジェクトの濃度も適切に表現して描画できる。
【0087】
なお、上述した実施の形態では、半透明オブジェクトの濃度を決定した。しかし、濃度は、100%-透明度の式でも表される。このため、濃度を透明度に置き換えて、半透明オブジェクトの透明度を決定してもよい。
【0088】
[第2の実施形態]
次に、本発明の第2の実施形態に係る画像描画システムの構成例について、
図10~
図16を参照して説明する。第2の実施形態に係る画像描画システムでは、イラスト調で表現された画像に着色して、従来よりも色彩感が豊かな画像を描画することができる。
【0089】
<第2の実施形態に係る情報処理装置の機能構成例>
図10は、第2の実施形態に係る情報処理装置2Aの構成例を示すブロック図である。情報処理装置2Aは、第1の実施形態に係る画像描画システム1の情報処理装置2を置き替えたものである。
【0090】
情報処理装置2Aは、第1の実施形態に係る情報処理装置2と同様の構成としている。そして、オブジェクト情報取得部13は、オブジェクトの輝度を含むオブジェクト情報を取得する。
【0091】
画面描画部14Aは、オブジェクトの輝度に応じた色を反映させたオブジェクトを含む画面を、オブジェクト情報に基づいて描画する。第2の実施形態に係る画面描画部14Aは、LUT(Look Up Table)141及び色決定部142を有する。
【0092】
LUT141は、オブジェクトの輝度ごとに色情報が格納されたテーブルであり、輝度-色対応情報の一例として用いられる。LUT141は、オブジェクトごと、又はオブジェクトの種類ごとに設けられる。LUT141の詳細な構成は、
図11にて後述する。
【0093】
色決定部142は、LUT141を参照して読み出した、オブジェクトの輝度に対応する色情報に基づいて、画面32の画素Pごとに色を決定する。
【0094】
オブジェクト情報取得部13により行われるレイマーチ処理の間は輝度計算のみが行われるので、半透明オブジェクトは陰影のついたグレースケールで表される。その後、色決定部142が雲オブジェクトの輝度に対して色を決定するため、例えば、暗い部分は影色、アーティスティックな着彩が施された明るい部分は光源に合わせた高い明度での彩色が実現される。
【0095】
図11は、LUT141の構成例を示す図である。
LUT141は、例えば、0%~100%の間で表される輝度ごとに色情報が格納される1次元テーブルである。色情報は、輝度ごとに「a10」、「a11」、…「a1100」のように設定される。色情報は、輝度ごとに異なってもよいし、一部の異なる輝度で同一であってもよい。
【0096】
従来、輝度が0%に近い値であればオブジェクトの表面は黒色が強く表現され、輝度が100%に近い値であればオブジェクトの表面は白色が強く表現されがちであった。しかし、色決定部142がLUT141を参照して色を決定することで、例えば、輝度が0%に近い値であればオブジェクトの表面は紫色が強く表現され、輝度が100%に近い値であればオブジェクトの表面は黄色が表現されるようになる。このため、例えば、コンテンツの制作者(イラストレーター等)が意図した色彩表現が可能となる。
【0097】
また、オブジェクトごとにLUT141が設定される。
図11では、オブジェクトobjA1,objA2,objB1,…のように異なるオブジェクトに対してLUT141が設定される。ただし、オブジェクトobjA1,objB2のように異なるオブジェクトであっても、同じLUT141が設定されてもよい。
【0098】
<第2の実施形態に係る画面描画処理の例>
次に、第2の実施の形態に係る画面描画処理の詳細例について説明する。
図12は、第2の実施の形態に係る画面描画処理の詳細な処理の例を示すフローチャートである。
図12に示す画面描画処理は、
図6と
図8に示した第1の実施の形態に係る画面描画部14で行われる画面描画処理(S4)を入れ替えたものである。
【0099】
ステップS21~S24の処理は、既に
図8を参照して説明した処理であるため、詳細な説明を省略する。
【0100】
ステップS21にて画面32内の全ての画素Pを処理していれば(S21のYES)、画面描画部14Aは、
図3に示した1枚の画面32内の全ての画素Pに対して色を決定したか否かを判断する(S26)。画面32内の全ての画素Pの色を決定していなければ(S26のNO)、画面描画部14Aは、未処理の画素Pに対して色決定処理を行い(S27)、再びステップS26に戻って処理を続ける。
【0101】
一方、画面32内の全ての画素Pの色を決定していれば(S26のYES)、画面描画部14Aは、ステップS24で決定したオブジェクトの濃度と、ステップS27で決定した色とに基づき、プレイヤーの位置に合わせて画面を描画する(S25)。
その後、画面描画部14Aは、
図6に示した画面出力処理(S5)に処理を戻す。画面出力処理により、第2の実施形態にて画素Pごとに決定された色で表示装置4に画面32が表示される。
【0102】
次に、
図12のステップS27に示した色決定処理の詳細例について説明する。
図13は、色決定処理の詳細な処理の例を示すフローチャートである。
【0103】
始めに、画面描画部14Aは、色を決定するオブジェクトに紐づけたLUT141を、
図2に示したRAM24又は不揮発性ストレージ28等から取得する(S41)。
【0104】
そして、画面描画部14Aは、LUT141を参照し、輝度に対応する画素Pの色を決定する(S42)。
その後、画面描画部14Aは、
図12に示した画素P毎の色決定の判断処理(S26)に処理を戻す。
【0105】
以上説明した第2の実施形態に係る情報処理装置2Aでは、画面描画部14Aが輝度に対して色を決定して画面を描画することで、従来の色合いとは異なる、コンテンツの制作者が意図した画像の表現が可能となる。
【0106】
また、イラストレーターが画面を描く時は明度や彩度という観点で陰影や距離感を表現する。このような表現に柔軟に対応できるようにするためにLUT141を採用している。輝度を色に割り当てることで、中間色に別の色を挿入することも可能となり、描画される色彩の表情を高めることができる。
【0107】
また、画面描画部14Aは、オブジェクトの輝度に合わせてオブジェクトの色を決定し、決定した色でオブジェクトを描画する。このため、オブジェクトの色を決定する処理の負荷を抑制することができる。このように情報処理装置2Aでは、輝度のみを計算するレイマーチ処理を行うだけであるので、計算に要する情報量を削減することができる。このため、情報処理装置2Aで行われるオブジェクトの色決定方法は、レイマーチ処理の高速化にも寄与することができる。
【0108】
なお、画面描画部14Aは、第1の実施の形態に係るオブジェクトの濃度決定の処理とは別に、単独で用いられてもよい。すなわち、画面描画部14Aは、第1の実施の形態に係るオブジェクトの濃度決定の処理を行わない形態であっても、LUT141を読み出し、画素Pごとの輝度から色を決定することが可能である。
【0109】
[LUTの変形例]
なお、LUT141には様々な形態が想定される。ここで、LUT141の3つの変形例について順に説明する。また、以下の説明では、あるオブジェクト(例えば、オブジェクトobjA1)に対して設定されるLUT141の変形例を示す。
【0110】
(LUTの第1の変形例)
図14は、第1の変形例に係るLUT141Aの構成例を示す図である。
LUT141Aは、オブジェクトの輝度ごと、かつ色味ごとに色情報が格納されたテーブルであり、輝度-色味-色対応情報の一例として用いられる。LUT141Aは、0%~100%の間で表される輝度ごと、かつシーンに設定される色味ごとに色情報が格納される2次元テーブルである。色味は、例えば、コンテンツの制作者によりシーンごとに指定される値である。そして、色味は、RGB表色系により、RGBの各要素が「0」~「255」の範囲で設定される。
図14以降に示す箱は、
図11に示したLUT141のテーブルを構成するセルを表現したものであり、各箱には一つの色情報が格納されるものとする。
【0111】
LUT141Aは、オブジェクトごと、又はオブジェクトの種類ごとに設けられる。そして、
図10に示した画面描画部14Aは、LUT141A及び色決定部142を有する。
このため、色決定部142は、LUT141Aを参照して読み出した、オブジェクトの輝度に対応する色情報に基づいて、画面32の画素Pごとに色を決定する。
【0112】
このように画面描画部14AがLUT141Aを有することで、シーンごとにコンテンツの制作者が意図した色彩表現が可能となる。例えば、シーンに設定される色味として、夕方のシーンである時に設定されるオレンジ色や、快晴のシーンである時に設定される黄色等の様々な色が想定される。
【0113】
(LUTの第2の変形例)
図15は、第2の変形例に係るLUT141Bの構成例を示す図である。
LUT141Bは、オブジェクトの輝度ごと、かつ視点からオブジェクトまでの距離ごとに色情報が格納されたテーブルであり、輝度-距離-色対応情報の一例として用いられる。LUT141Bは、0%~100%の間で表される輝度ごと、かつ視点から着色対象のオブジェクトまでの距離ごとに色情報が格納される2次元テーブルである。着色対象のオブジェクトまでの距離は、近い距離(例えば、数m)から遠い距離(例えば、数km)まで規定される。
【0114】
LUT141Bは、オブジェクトごと、又はオブジェクトの種類ごとに設けられる。そして、
図10に示した画面描画部14Aは、LUT141B及び色決定部142を有する。
このため、色決定部142は、LUT141Bを参照して読み出した、オブジェクトの輝度に対応する色情報に基づいて、画面32の画素Pごとに色を決定する。
【0115】
このように画面描画部14AがLUT141Bを有することによっても、シーンごとにコンテンツの制作者が意図した色彩表現が可能となる。例えば、通常の景色における物の見え方では、視点から近い距離にある物は、その物自体の色がハッキリ見え、視点から遠い距離の物は、空気等により青味がかって見えたりする。一方、LUT141Bに視点からオブジェクトまでの距離ごとに色情報が格納されることで、例えば、視点から近い距離にあるオブジェクトを青味がかって表現し、視点から近い距離にあるオブジェクトを赤みがかって表現するような、通常とは異なる表現が可能となる。
【0116】
(LUTの第3の変形例)
図16は、第3の変形例に係るLUT141Cの構成例を示す図である。
LUT141Cは、オブジェクトの輝度ごと、色味ごと、かつ視点からオブジェクトまでの距離ごとに色情報が格納されたテーブルであり、輝度-色味-距離-色対応情報の一例として用いられる。LUT141Cは、
図14に示したLUT141Aと、
図15に示したLUT141Bとを組み合わせた3次元テーブルである。そして、LUT141Cについても、オブジェクトごと、又はオブジェクトの種類ごとに設けられる。そして、
図10に示した画面描画部14Aは、LUT141C及び色決定部142を有する。
このため、色決定部142は、LUT141Cを参照して読み出した、オブジェクトの輝度に対応する色情報に基づいて、画面32の画素Pごとに色を決定する。
【0117】
色決定部142は、LUT141Cを参照して色を決定することで、例えば、画面描画部14Aは、近景を色の起伏を少なくしたガス状に描画し、遠景の明暗や色彩を豊かにして描画する等の色の調整と、描画色のコントロールも可能となる。
【0118】
なお、LUT141,141A~141Cは、それぞれテーブルで構成したが、輝度ごとに色情報を決定する関数が用いられてもよい。この場合、色決定部142は、画素P毎に算出された輝度に対して、それぞれ関数を適用して色を決定することが可能である。
【0119】
[第3の実施形態]
<コンテンツ配信システムの構成例>
次に、本発明の第3の実施形態に係る画像描画システムの構成例について、
図17を参照して説明する。第3の実施形態に係る画像描画システムでは、コンテンツを配信するコンテンツ配信サーバと組み合わせてコンテンツ配信システムを構成する。
【0120】
図17は、コンテンツ配信システム10のハードウェア構成例を示すブロック図である。
画像描画システム1は、インターネット等のネットワークNを介してコンテンツ配信サーバ8に接続可能である。以下、画像描画システム1が情報処理装置2を備える構成として説明するが、画像描画システム1が情報処理装置2Aを備える構成であってもよい。
【0121】
コンテンツ配信サーバ8は、コンテンツを管理しており、認証した情報処理装置2からのコンテンツ取得要求に基づいて、情報処理装置2にコンテンツを配信する。このため、情報処理装置2は、コンテンツ配信サーバ8からダウンロードしたコンテンツを、情報処理装置2の内部記録媒体(不揮発性ストレージ28等)に保存し、コンテンツ再生時には内部記録媒体からコンテンツを読み込んでもよい。あるいは、情報処理装置2は、コンテンツ配信サーバ8からストリーミング配信されるコンテンツを受信し、表示装置4にコンテンツを表示させてもよい。
【0122】
(コンテンツ配信サーバの構成例)
コンテンツ配信サーバ8は、コンピューターとして動作する計算機の一例である。このコンテンツ配信サーバ8は、バス85にそれぞれ接続されたCPU81、GPU82、ROM83、及びRAM84、不揮発性ストレージ86及びネットワークインターフェイス87を備える。
【0123】
CPU81は、本実施の形態に係る各機能を実現するソフトウェアのプログラムコードをROM83から読み出してRAM84にロードし、実行する。RAM84には、CPU81又はGPU82の演算処理の途中で発生した変数やパラメーター等が一時的に書き込まれ、これらの変数やパラメーター等がCPU81又はGPU82によって適宜読み出される。
【0124】
コンテンツ配信サーバ8が情報処理装置2にコンテンツをストリーミング配信する構成である場合、コンテンツ配信サーバ8が情報処理装置2から受け取った操作データに基づいて、ほぼリアルタイムで3次元画像を演算する処理を行う。そこで、GPU82は、例えば、ネットワークインターフェイス87を介して情報処理装置2から受信した操作信号に基づいて、3次元オブジェクトを描画するために必要な処理を行う。そして、GPU82が描いた画像は、画像データとしてネットワークインターフェイス87を介して情報処理装置2にストリーミング配信され、情報処理装置2に接続された表示装置4に画像が表示される。
図2に示すようにGPU82とCPU81とは別体で構成されてもよいし、CPU81の内部にGPU82が組み込まれた構成としてもよい。
【0125】
不揮発性ストレージ86としては、例えば、HDD、SSD、フレキシブルディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ又は不揮発性のメモリ等が用いられる。この不揮発性ストレージ86には、OS、各種のパラメーターの他に、コンテンツ配信サーバ8を機能させるためのプログラムが記録されている。ROM83及び不揮発性ストレージ86は、CPU81が動作するために必要なプログラムやデータ等を記録しており、コンテンツ配信サーバ8によって実行されるプログラムを格納したコンピューター読取可能な非一過性の記憶媒体の一例として用いられる。
【0126】
ネットワークインターフェイス87には、例えば、NIC等が用いられ、NICの端子に接続されたLAN、専用線等を介して各種のデータを、情報処理装置2との間で送受信することが可能である。
【0127】
以上説明した第3の実施形態に係るコンテンツ配信システム10では、コンテンツ配信サーバ8から配信されたコンテンツを情報処理装置2が受信する。このため、情報処理装置2は、コンテンツの追加や修正パッチの適用等をしやすくなる。
【0128】
また、情報処理装置2は、コンテンツ配信サーバ8からストリーミング配信されたコンテンツをそのまま表示装置4に出力することができる。このため、情報処理装置2は、高性能なCPU21、GPU22を必要としない。そこで、情報処理装置2をスマートフォンのような端末で構成してもよい。また、コンテンツ配信サーバ8からコンテンツが配信されるので、情報処理装置2は、光学ドライブ29を備えない構成としてもよい。
【0129】
なお、本発明は上述した各実施の形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した各実施の形態は本発明を分かりやすく説明するために装置及びシステムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されない。また、ここで説明した実施の形態の構成の一部を他の実施の形態の構成に置き換えることは可能であり、さらにはある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0130】
1…画像描画システム、2,2A…情報処理装置、3…操作コントローラ、4…表示装置、8…コンテンツ配信サーバ、10…コンテンツ配信システム、11…入力受付部、12…視点取得部、13…オブジェクト情報取得部、14…画面描画部、15…画面出力部、30…仮想カメラ、31…画角、32…画面、60…距離-濃度カーブ、65…近似カーブ、141,141A~141C…LUT、142…色決定部