画像処理プログラムおよびコンピュータ読み取り可能な記録媒体
【課題】簡易な処理により、街灯等の発する光によって光源周囲の雨筋が光る雨グレアを表現する。
【解決手段】コンピュータを、少なくとも自己発光オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記自己発光オブジェクトの周囲を通過する通過オブジェクトを前記仮想空間に発生させる通過オブジェクト発生手段、前記投影平面のピクセル毎に前記仮想空間における前記自己発光オブジェクトの色情報および前記オブジェクトの深度情報をメモリに保持する保持手段、前記投影平面上における前記通過オブジェクトの近傍座標を算出する近傍座標計算手段、前記保持手段から算出された前記近傍座標における前記自己発光オブジェクトの色情報と深度情報を取得し、当該色情報と深度情報を乗算して影響色情報を取得する色情報取得手段、取得した影響色情報を前記通過オブジェクトの色に反映させる色設定手段として機能させる。
【解決手段】コンピュータを、少なくとも自己発光オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記自己発光オブジェクトの周囲を通過する通過オブジェクトを前記仮想空間に発生させる通過オブジェクト発生手段、前記投影平面のピクセル毎に前記仮想空間における前記自己発光オブジェクトの色情報および前記オブジェクトの深度情報をメモリに保持する保持手段、前記投影平面上における前記通過オブジェクトの近傍座標を算出する近傍座標計算手段、前記保持手段から算出された前記近傍座標における前記自己発光オブジェクトの色情報と深度情報を取得し、当該色情報と深度情報を乗算して影響色情報を取得する色情報取得手段、取得した影響色情報を前記通過オブジェクトの色に反映させる色設定手段として機能させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオゲームやCG(Computer Graphics)ビデオ等における表示画像の生成技術に関する。
【背景技術】
【0002】
ビデオゲームやCGビデオ等においては、雨が降る画像が必要とされるシーンがしばしば存在する。更に、単に雨が降るだけでなく、夜のシーンにおいて街灯等の発する光によって光源周囲の雨筋が光る雨グレアと呼ばれる表現が要望される場合がある。
【0003】
特許文献1には、雪や雨が降っている様子をゲーム画面に表示する場合に、3次元ゲーム空間全体に雪オブジェクト等を配置することによる処理負荷の増大を抑制するため、仮想カメラの面前の限られた領域にのみ雪オブジェクト等を配置する技術が開示されている。
【0004】
また、特許文献2には、剣等のオブジェクトに光源からの反射光(グレア)をインパクトのある形で表現する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−82859号公報
【特許文献2】特開2006−323514号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した特許文献1に開示された技術によれば、少ない処理負荷で雪や雨が降っている様子を表示することができるが、夜のシーンにおいて街灯等の発する光によって光源周囲の雨筋が光る雨グレアを表現することはできない。
【0007】
また、特許文献2に開示された技術は剣等のオブジェクトによる光源の反射光を表現するものである。特許文献2に開示された技術を街灯等の発する光によって光源周囲の雨筋が光る雨グレアに適用する場合には、反射光を表現するための複雑な計算を3次元ゲーム空間に多数設定される全ての雨筋オブジェクト毎に行う必要があり、計算処理の負荷が増大してしまう。
【0008】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、簡易な処理により、街灯等の発する光によって光源周囲の雨筋が光る雨グレアを表現することのできる画像処理プログラムおよびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【0009】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、コンピュータを、少なくとも自己発光オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記自己発光オブジェクトの周囲を通過する通過オブジェクトを前記仮想空間に発生させる通過オブジェクト発生手段、前記投影平面のピクセル毎に前記仮想空間における前記自己発光オブジェクトの色情報および前記オブジェクトの深度情報をメモリに保持する保持手段、前記投影平面上における前記通過オブジェクトの近傍座標を算出する近傍座標計算手段、前記保持手段から算出された前記近傍座標における前記自己発光オブジェクトの色情報と深度情報を取得し、当該色情報と深度情報を乗算して影響色情報を取得する色情報取得手段、取得した影響色情報を前記通過オブジェクトの色に反映させる色設定手段として機能させる画像処理プログラムを要旨としている。
【0010】
また、請求項2に記載されるように、請求項1に記載の画像処理プログラムであって、前記色情報取得手段は、前記近傍座標における前記自己発光オブジェクトの深度が小さいほど前記通過オブジェクトの色を明るくする影響色情報を取得し、前記色設定手段は、前記通過オブジェクトの深度が小さいほど前記通過オブジェクトの色を明るく設定するようにすることができる。
【0011】
また、請求項3に記載されるように、請求項2に記載の画像処理プログラムであって、前記通過オブジェクト発生手段は、前記通過オブジェクトを複数の頂点から構成されるラインポリゴンとしてランダムに発生させ、前記仮想空間で落下する速度を与え、前記色情報取得手段は、前記頂点ごとに前記近傍座標の色情報と輝度情報を乗算して影響色情報を取得し、前記色設定手段は、前記影響色情報を前記通過オブジェクトの各頂点の色に反映させるようにすることができる。
【0012】
また、請求項4に記載されるように、請求項3に記載の画像処理プログラムであって、コンピュータを、前記通過オブジェクトの一番上の頂点に対してy軸の値に正方向の値、一番下の頂点に対してy軸の値に負方向の値のベクトルを設定し、その間の頂点に連続してベクトルを設定するベクトル設定手段として機能させ、前記近傍座標計算手段は、それぞれx軸の値が正方向の値とx軸の値が負方向の値の2つのベクトルを、前記通過オブジェクトの各頂点に設定されたベクトルに加算し、前記色情報取得手段は、2つの前記加算したベクトルに対応する前記投影平面上の座標から得た色情報と深度情報との乗算値を加算して影響色情報を取得するようにすることができる。
【0013】
また、請求項5に記載されるように、請求項4に記載の画像処理プログラムであって、コンピュータを、前記通過オブジェクトの一番上の頂点に対してy軸の値を+1、一番下の頂点に対してy軸の値を−1としてベクトルを設定し、その間の頂点に連続してベクトルを設定するベクトル設定手段として機能させ、前記近傍座標計算手段は、それぞれx軸の値が+1とx軸の値が−1の2つのベクトルを、前記通過オブジェクトの各頂点に設定されたベクトルに加算し、前記色情報取得手段は、2つの前記加算したベクトルに対応する前記投影平面上の座標から得た色情報と深度情報との乗算値を加算して影響色情報を取得するようにすることができる。
【0014】
また、請求項6に記載されるように、請求項1乃至5のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体として構成することができる。
【発明の効果】
【0015】
本発明の画像処理プログラムおよびコンピュータ読み取り可能な記録媒体にあっては、簡易な処理により、街灯等の発する光によって光源周囲の雨筋が光る雨グレアを表現することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図2】グレアテクスチャの生成処理の例を示すフローチャートである。
【図3】グレアテクスチャの例を示す図である。
【図4】通過オブジェクトの描画処理の例を示すフローチャートである。
【図5】雨オブジェクトの頂点および法線の例を示す図である。
【図6】雨オブジェクトの頂点および法線に基づく処理例を示す図(その1)である。
【図7】ビュー空間および射影空間の例を示す図である。
【図8】雨オブジェクトの頂点および法線に基づく処理例を示す図(その2)である。
【図9】深度情報テクスチャの例を示す図である。
【図10】生成画像例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の好適な実施形態につき説明する。
【0018】
<構成>
図1は本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【0019】
図1において、画像処理装置は、ゲームアプリケーション等の3D(3 Dimension)オブジェクトの描画命令を含む3Dアプリケーション(3Dアプリケーションプログラム)2と、この3Dアプリケーション2から描画命令等を受け取るOpenGL、Direct3D等の3D−API(Application Program Interface)3と、描画処理を実行するGPU(Graphics Processing Unit)4とを備えている。なお、図示を省略しているが、3Dアプリケーション2および3D−API3の実行環境として、一般的なコンピュータのCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等のハードウェア資源が設けられている。
【0020】
GPU4は、3D−API3からGPUコマンドおよびデータストリームを受け付けるGPUフロントエンド部41と、このGPUフロントエンド部41から3D頂点データを受け取って2Dスクリーン空間に投影した座標変換(行列の転置)等を行うプログラマブル頂点プロセッサ(VS:Vertex Processor)42と、GPUフロントエンド部41から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ42で座標変換された頂点データとを組み立てる基本アセンブリ部43とを備えている。プログラマブル頂点プロセッサ42および基本アセンブリ部43の部分は、バーテックスシェーダと呼ばれている。
【0021】
また、GPU4は、基本アセンブリ部43で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ/補間部44と、このラスタライズ/補間部44からラスタライズ済のピクセル(フラグメント)データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ(PS:Pixel Processor)45と、ラスタライズ/補間部44から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ45から与えられるテクスチャマッピング済のデータからラスタ演算(ピクセルデータの画面上での配置)を行うラスタ演算部46とを備えている。ラスタライズ/補間部44、プログラマブルピクセルプロセッサ45およびラスタ演算部46の部分は、ピクセルシェーダと呼ばれている。
【0022】
また、GPU4は、ラスタ演算部46により描画内容が書込・更新されるとともに、GPU4内の各部から参照・更新が可能なグレアテクスチャ471および深度情報テクスチャ472と、ラスタ演算部46により描画内容が書込・更新されるフレームバッファ48とを備えている。
【0023】
グレアテクスチャ471および深度情報テクスチャ472は、雨オブジェクトの描画処理において使用される。グレアテクスチャ471については、その生成処理を含め、後述する。
【0024】
深度情報テクスチャ472は、描画フレームの各ピクセルの深度情報(視点からのz方向距離)を保持するテクスチャである。テクスチャは、テクスチャ空間のU座標(一般的に、0≦U≦1)とV座標(一般的に、0≦V≦1)に対応して値を保持するマップデータである。テクスチャは一般に色情報のデータを保持する形式となっているため、色情報以外の情報を保持する場合には色情報の形式に変換されて格納される。
【0025】
フレームバッファ48に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。
【0026】
また、処理に必要なデータがデータ保持部5に保持されている。主なデータとしては、モデルデータと、モデル姿勢と、視点・視方向・画角とがある。モデルデータには、マテリアルと、頂点座標と、法線と、テクスチャと、頂点カラー(ディフューズ色)とが含まれる。
【0027】
モデルデータは、仮想3次元空間内のモデルの標準姿勢における形態を表現したポリゴンデータである。インスタンス化されて仮想3次元空間内に配置されたモデルはオブジェクトと呼ぶ場合がある。後述する雨オブジェクトは、単純な構成であるため、モデルとして保持しておかなくても、プログラムから直接に生成することができる。マテリアルは、モデルの種別を区別する情報であり、街灯のように発光するオブジェクトである場合には自己発光値(Emissive)が設定される。頂点座標は、モデルのポリゴンの頂点の座標(x座標、y座標、z座標)である。法線は、各頂点の面する方向を示すベクトル値である。テクスチャは、ポリゴンの面に貼り付けられる画像データである。頂点カラーは、各頂点のカラーを示すRGB(Red Green Blue)等の値である。
【0028】
モデル姿勢は、各モデルの仮想3次元空間内における位置および回転角度を示す値である。視点・視方向・画角は、仮想3次元空間内のモデルを投影面上の2次元画像として描画する際の仮想カメラ(仮想視点)の3次元位置、視線中心方向および視野角である。
【0029】
なお、画像処理装置1にGPU4を用いた構成について説明したが、汎用的なコンピュータのハードウェア上でソフトウェア的にグラフィックエンジンを実現した場合にも本発明を適用できることは言うまでもない。この場合、GPU4の機能は3Dアプリケーション2や3D−API3と同様にソフトウェア的に実現され、テクスチャ471、472やフレームバッファ48はメモリ(RAM)上に配置される。
【0030】
<動作>
図2はグレアテクスチャ471の生成処理の例を示すフローチャートである。グレアテクスチャ471は、マテリアルに自己発光値が設定されたモデル(自己発光オブジェクト)の発光部分のピクセル毎の色情報を格納したテクスチャである。グレアテクスチャ471の生成処理は、主にピクセルシェーダにより行われる。
【0031】
図2において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS101)、マテリアルに自己発光値が設定されたモデルのピクセルを、予め用意されたテクスチャバッファであるグレアテクスチャ471に描画し(ステップS102)、処理を終了する(ステップS103)。
【0032】
図3はグレアテクスチャ471の例を示す図であり、ピクセル毎の発光色を示している。図では、6個の立方体状の発光部を持つ街灯が画面中央に配置され、画面の右端にも他の街灯の一部が見えている。図において、白い部分は発光強度が高い部分であり、黒い部分は発光強度が低い部分である。
【0033】
図4は通過オブジェクトの描画処理の例を示すフローチャートである。通過オブジェクトとして、例えば、雨筋を表現する雨オブジェクト、雪の粒を表現する雪オブジェクト、噴水等で生じる水しぶきを表現する水滴オブジェクトなどが想定される。以下、通過オブジェクトの一例として、雨オブジェクトに関して本発明の詳細な説明を行う。
【0034】
なお、通過オブジェクトを除くその他のモデルのポリゴンについては通常の描画処理が行われ、通過オブジェクトの描画処理結果とフレームバッファ48上で合成される。
【0035】
図4において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS201)、降雨範囲(x、y、z値の範囲)を設定する(ステップS202)。
【0036】
次いで、設定した降雨範囲内で雨オブジェクトを生成する(ステップS203)。雨オブジェクトは、降雨範囲の最大y座標から開始し、最小y座標に達して消滅するまで、座標を所定の速度ベクトルに基づいて毎回更新する。図5(a)は雨オブジェクトの例を示しており、ここでは5つの頂点VT1〜VT5を結んだラインポリゴンにより雨のライン(雨筋)を表現している。なお、頂点の数は5つに限られず、頂点の間隔も等間隔である必要はない。頂点が直線状のラインに沿う必要もなく、曲線状のラインに沿うようにしてもよい。また、図では垂直方向に落ちる雨のラインを示しているが、斜め方向に雨が落ちるようにしてもよく、その場合、頂点は斜め方向に配置される。
【0037】
次いで、頂点座標の周囲に位置する近傍座標を求める処理を行う。図4に戻り、雨オブジェクトの各頂点と対になる法線に、y軸にのみ値を設定したベクトルを設定する(ステップS204)。ベクトルのy軸の値は、例えば、一番上の頂点から一番下の頂点にかけて1.0〜−1.0とする。図5(b)は頂点VT1に法線(0,1,0)、頂点VT2に法線(0,0.5,0)、頂点VT3に法線(0,0,0)、頂点VT4に法線(0,−0.5,0)、頂点VT5に法線(0,−1,0)を設定した状態を示している。
【0038】
次いで、図4に戻り、バーテックスシェーダによる処理を行う(ステップS205)。
【0039】
先ず、x軸の正方向に値を設定したベクトルv1と、x軸の負方向に値を設定したベクトルv2を、雨オブジェクトの各頂点の法線にそれぞれ加算したベクトルv1'、v2'を計算する(ステップS206)。ベクトルv1とベクトルv2のx軸の値の絶対値は所定のスケーリング値とする。図6は処理内容を概念的に示しており、頂点VT1の法線(ベクトル)にベクトルv1とベクトルv2をそれぞれ加算し、ベクトルv1'、v2'を求めた状態を示している。ここで求めたベクトルv1'、v2'が3次元空間内の近傍座標である。他の頂点VT2〜VT5についても同様にベクトルv1'、v2'を求める。なお、上記手順で求めたベクトルv1'、v2'にさらに係数を乗算した各ベクトルを近傍座標としてもよい。
【0040】
次いで、図4に戻り、雨オブジェクトの各頂点に周知のビュー変換行列を乗算し、ビュー空間に移動した雨オブジェクトの頂点座標を計算する(ステップS207)。
【0041】
図7(a)はビュー空間の例を示している。ビュー空間は視点(仮想カメラ)VPを基準とした座標空間であり、視点VPから視方向に対して横軸がx軸、縦軸がy軸、奥行きがz軸となる。視点VPの視方向に対してx軸方向およびy軸方向にそれぞれ画角だけ振った範囲の、視点VPに近い側には近クリップ平面CP1が設定され、遠い側には遠クリップ平面CP2が設定される。近クリップ平面CP1と遠クリップ平面CP2と画角を示す面で囲われる6面体は視錐台と呼ばれ、その内部に配置されるモデル(オブジェクト)が描画対象となる。視錐台の位置は、ビデオゲームの場合、プレイヤ(遊戯者)が操作手段により操作するプレイヤキャラクタを含むように決定される。図7(b)は射影空間の例を示しており、図7(a)に示したビュー空間を、−1≦x≦1、−1≦y≦1、0≦z≦1の範囲に変換したものである。
【0042】
次いで、図4に戻り、ベクトルv1'、v2'にビュー空間の雨オブジェクトの各頂点座標を加算したビュー空間座標p1、p2を算出する(ステップS208)。
【0043】
次いで、ビュー空間座標p1、p2に周知の射影変換行列を乗算して射影空間座標p1'、p2'を算出する(ステップS209)。
【0044】
次いで、射影空間座標p1'、p2'からテクスチャ空間座標p1"、p2"を算出する(ステップS210)。変換式は、例えば、
pi"(x)=0.5・pi'(x)+0.5
pi"(y)=−0.5・pi'(y)+0.5
を用いる。図8は、雨オブジェクトの頂点VT1の法線にベクトルv1、v2をそれぞれ加算し、種々の変換を経て、テクスチャ空間座標p1"、p2"が求められた状態を示している。ここで求めたp1"、p2"がテクスチャ空間上での近傍座標である。
【0045】
次いで、図4に戻り、ピクセルシェーダによるピクセル毎の処理を行う(ステップS211)。
【0046】
先ず、テクスチャ空間座標p1"、p2"を使用してグレアテクスチャ471(図3)から色情報c1、c2を取得する(ステップS212)。
【0047】
次いで、テクスチャ空間座標p1"、p2"を使用して深度情報テクスチャ472から深度情報d1、d2を取得する(ステップS213)。図9は深度情報テクスチャ472の例を示しており、図3のグレアテクスチャ471の例と同じシーンでの値を示している。深度情報テクスチャ472では、視点側により近い自己発光オブジェクトに対応するピクセルほど高い輝度が設定されている。つまり、図9において、白い部分は視点側に近い位置にオブジェクトが存在することを示し、黒い部分は視点から遠い位置にオブジェクトが存在することを示している。
【0048】
次いで、図4に戻り、色情報c1に深度情報d1を輝度値として乗算して色情報c1・d1を計算するとともに、色情報c2に深度情報d2を輝度値として乗算して色情報c2・d2を計算し、色情報c1・d1と色情報c2・d2を加算した色情報Dを計算する(ステップS214)。色情報に深度情報を乗算するのは、抽出した自己発光オブジェクトの色情報に対し、隔たった距離によって強弱を持たせるためである。
【0049】
次いで、色情報Dを雨オブジェクトの頂点のディフューズ色に加算し、その色を頂点の出力色(フレームバッファ48への出力色)に設定する(ステップS215)。
【0050】
そして、雨オブジェクトに設定された全ての頂点に対し出力色の設定が行われた後に、既に設定された各頂点の出力色をもとに各頂点間のピクセルの出力色を補間して算出し、雨オブジェクト全体の出力色を設定し(ステップS216)、処理を終了する(ステップS217)。
【0051】
以上のように、図4に記載した処理では、雨オブジェクトの各頂点の近傍に位置する近傍座標(テクスチャ空間座標p1"、p2")を算出し、近傍座標の色情報を加味して雨オブジェクトの頂点の出力色を設定する処理を実行する。これにより、街灯などの光源の周辺を雨オブジェクト等の通過オブジェクトが通過した場合において、雨筋が光る雨グレア等を表現することができる。
【0052】
図10は生成画像例を示す図であり、画面中央の街灯の周辺を落ちる雨のラインが、街灯の明かりにより部分的に照らされている状態が表現されている。
【0053】
<総括>
以上説明したように、本実施形態によれば、雨オブジェクトの各頂点座標と、その近傍の座標における色情報、および深度情報から雨オブジェクトの出力色を決定するため、簡易な処理により、街灯等の発する光によって光源周囲の雨筋が光る雨グレアを表現することができるという利点がある。
【0054】
なお、本実施形態によれば、雨オブジェクトの出力色の設定をより簡易な処理とするために、雨筋をラインポリゴンで形成する場合について述べたが、本発明はこれに限らず、幅を持ったポリゴン(例えば、矩形状、円形状)で雨筋や雪の粒を表現する場合にも適用が可能である。
【0055】
また、本実施形態によれば、雨ポリゴンの上端の頂点は、より上方位置の座標の光源の影響を受け、雨ポリゴンの下端の頂点はより下方位置の座標の光源の影響を受けることで、より自然な雨グレアを表現するために、上端の位置ではより上方の、下端の位置では寄り下方の座標を近傍座標と設定するべく法線値を設定する場合について述べたが、本発明はこれに限らず、頂点座標の近傍の座標を取得できる範囲であれば各頂点の法線値はどのような値であってもよい。
【0056】
また、本実施形態によれば、ラインポリゴンでは通常使用されない法線値を用いて近傍座標を求めることで、より無駄のない処理で雨グレアを表現している場合について述べたが、本発明はこれに限らず、各頂点の法線値を設定せずに、各頂点座標に所定のベクトルを加算することで、近傍座標を求める構成する場合にも適用可能である。
【0057】
また、本実施形態によれば、簡易な処理でより自然な雨オブジェクトを生成するために、頂点ごとに法線の値を使用して近傍座標を2点算出し、各近傍座標の色情報を頂点の出力色に加味する場合について述べたが、近傍座標の数は2点に限らず1点でもよいし、3点以上算出してもよい。
【0058】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【0059】
1 画像処理装置
2 3Dアプリケーション
3 3D−API
4 GPU
41 GPUフロントエンド部
42 プログラマブル頂点プロセッサ
43 基本アセンブリ部
44 ラスタライズ/補間部
45 プログラマブルピクセルプロセッサ
46 ラスタ演算部
471 グレアテクスチャ
472 深度情報テクスチャ
48 フレームバッファ
5 データ保持部
【技術分野】
【0001】
本発明は、ビデオゲームやCG(Computer Graphics)ビデオ等における表示画像の生成技術に関する。
【背景技術】
【0002】
ビデオゲームやCGビデオ等においては、雨が降る画像が必要とされるシーンがしばしば存在する。更に、単に雨が降るだけでなく、夜のシーンにおいて街灯等の発する光によって光源周囲の雨筋が光る雨グレアと呼ばれる表現が要望される場合がある。
【0003】
特許文献1には、雪や雨が降っている様子をゲーム画面に表示する場合に、3次元ゲーム空間全体に雪オブジェクト等を配置することによる処理負荷の増大を抑制するため、仮想カメラの面前の限られた領域にのみ雪オブジェクト等を配置する技術が開示されている。
【0004】
また、特許文献2には、剣等のオブジェクトに光源からの反射光(グレア)をインパクトのある形で表現する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−82859号公報
【特許文献2】特開2006−323514号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した特許文献1に開示された技術によれば、少ない処理負荷で雪や雨が降っている様子を表示することができるが、夜のシーンにおいて街灯等の発する光によって光源周囲の雨筋が光る雨グレアを表現することはできない。
【0007】
また、特許文献2に開示された技術は剣等のオブジェクトによる光源の反射光を表現するものである。特許文献2に開示された技術を街灯等の発する光によって光源周囲の雨筋が光る雨グレアに適用する場合には、反射光を表現するための複雑な計算を3次元ゲーム空間に多数設定される全ての雨筋オブジェクト毎に行う必要があり、計算処理の負荷が増大してしまう。
【0008】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、簡易な処理により、街灯等の発する光によって光源周囲の雨筋が光る雨グレアを表現することのできる画像処理プログラムおよびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【0009】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、コンピュータを、少なくとも自己発光オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記自己発光オブジェクトの周囲を通過する通過オブジェクトを前記仮想空間に発生させる通過オブジェクト発生手段、前記投影平面のピクセル毎に前記仮想空間における前記自己発光オブジェクトの色情報および前記オブジェクトの深度情報をメモリに保持する保持手段、前記投影平面上における前記通過オブジェクトの近傍座標を算出する近傍座標計算手段、前記保持手段から算出された前記近傍座標における前記自己発光オブジェクトの色情報と深度情報を取得し、当該色情報と深度情報を乗算して影響色情報を取得する色情報取得手段、取得した影響色情報を前記通過オブジェクトの色に反映させる色設定手段として機能させる画像処理プログラムを要旨としている。
【0010】
また、請求項2に記載されるように、請求項1に記載の画像処理プログラムであって、前記色情報取得手段は、前記近傍座標における前記自己発光オブジェクトの深度が小さいほど前記通過オブジェクトの色を明るくする影響色情報を取得し、前記色設定手段は、前記通過オブジェクトの深度が小さいほど前記通過オブジェクトの色を明るく設定するようにすることができる。
【0011】
また、請求項3に記載されるように、請求項2に記載の画像処理プログラムであって、前記通過オブジェクト発生手段は、前記通過オブジェクトを複数の頂点から構成されるラインポリゴンとしてランダムに発生させ、前記仮想空間で落下する速度を与え、前記色情報取得手段は、前記頂点ごとに前記近傍座標の色情報と輝度情報を乗算して影響色情報を取得し、前記色設定手段は、前記影響色情報を前記通過オブジェクトの各頂点の色に反映させるようにすることができる。
【0012】
また、請求項4に記載されるように、請求項3に記載の画像処理プログラムであって、コンピュータを、前記通過オブジェクトの一番上の頂点に対してy軸の値に正方向の値、一番下の頂点に対してy軸の値に負方向の値のベクトルを設定し、その間の頂点に連続してベクトルを設定するベクトル設定手段として機能させ、前記近傍座標計算手段は、それぞれx軸の値が正方向の値とx軸の値が負方向の値の2つのベクトルを、前記通過オブジェクトの各頂点に設定されたベクトルに加算し、前記色情報取得手段は、2つの前記加算したベクトルに対応する前記投影平面上の座標から得た色情報と深度情報との乗算値を加算して影響色情報を取得するようにすることができる。
【0013】
また、請求項5に記載されるように、請求項4に記載の画像処理プログラムであって、コンピュータを、前記通過オブジェクトの一番上の頂点に対してy軸の値を+1、一番下の頂点に対してy軸の値を−1としてベクトルを設定し、その間の頂点に連続してベクトルを設定するベクトル設定手段として機能させ、前記近傍座標計算手段は、それぞれx軸の値が+1とx軸の値が−1の2つのベクトルを、前記通過オブジェクトの各頂点に設定されたベクトルに加算し、前記色情報取得手段は、2つの前記加算したベクトルに対応する前記投影平面上の座標から得た色情報と深度情報との乗算値を加算して影響色情報を取得するようにすることができる。
【0014】
また、請求項6に記載されるように、請求項1乃至5のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体として構成することができる。
【発明の効果】
【0015】
本発明の画像処理プログラムおよびコンピュータ読み取り可能な記録媒体にあっては、簡易な処理により、街灯等の発する光によって光源周囲の雨筋が光る雨グレアを表現することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図2】グレアテクスチャの生成処理の例を示すフローチャートである。
【図3】グレアテクスチャの例を示す図である。
【図4】通過オブジェクトの描画処理の例を示すフローチャートである。
【図5】雨オブジェクトの頂点および法線の例を示す図である。
【図6】雨オブジェクトの頂点および法線に基づく処理例を示す図(その1)である。
【図7】ビュー空間および射影空間の例を示す図である。
【図8】雨オブジェクトの頂点および法線に基づく処理例を示す図(その2)である。
【図9】深度情報テクスチャの例を示す図である。
【図10】生成画像例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の好適な実施形態につき説明する。
【0018】
<構成>
図1は本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【0019】
図1において、画像処理装置は、ゲームアプリケーション等の3D(3 Dimension)オブジェクトの描画命令を含む3Dアプリケーション(3Dアプリケーションプログラム)2と、この3Dアプリケーション2から描画命令等を受け取るOpenGL、Direct3D等の3D−API(Application Program Interface)3と、描画処理を実行するGPU(Graphics Processing Unit)4とを備えている。なお、図示を省略しているが、3Dアプリケーション2および3D−API3の実行環境として、一般的なコンピュータのCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等のハードウェア資源が設けられている。
【0020】
GPU4は、3D−API3からGPUコマンドおよびデータストリームを受け付けるGPUフロントエンド部41と、このGPUフロントエンド部41から3D頂点データを受け取って2Dスクリーン空間に投影した座標変換(行列の転置)等を行うプログラマブル頂点プロセッサ(VS:Vertex Processor)42と、GPUフロントエンド部41から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ42で座標変換された頂点データとを組み立てる基本アセンブリ部43とを備えている。プログラマブル頂点プロセッサ42および基本アセンブリ部43の部分は、バーテックスシェーダと呼ばれている。
【0021】
また、GPU4は、基本アセンブリ部43で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ/補間部44と、このラスタライズ/補間部44からラスタライズ済のピクセル(フラグメント)データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ(PS:Pixel Processor)45と、ラスタライズ/補間部44から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ45から与えられるテクスチャマッピング済のデータからラスタ演算(ピクセルデータの画面上での配置)を行うラスタ演算部46とを備えている。ラスタライズ/補間部44、プログラマブルピクセルプロセッサ45およびラスタ演算部46の部分は、ピクセルシェーダと呼ばれている。
【0022】
また、GPU4は、ラスタ演算部46により描画内容が書込・更新されるとともに、GPU4内の各部から参照・更新が可能なグレアテクスチャ471および深度情報テクスチャ472と、ラスタ演算部46により描画内容が書込・更新されるフレームバッファ48とを備えている。
【0023】
グレアテクスチャ471および深度情報テクスチャ472は、雨オブジェクトの描画処理において使用される。グレアテクスチャ471については、その生成処理を含め、後述する。
【0024】
深度情報テクスチャ472は、描画フレームの各ピクセルの深度情報(視点からのz方向距離)を保持するテクスチャである。テクスチャは、テクスチャ空間のU座標(一般的に、0≦U≦1)とV座標(一般的に、0≦V≦1)に対応して値を保持するマップデータである。テクスチャは一般に色情報のデータを保持する形式となっているため、色情報以外の情報を保持する場合には色情報の形式に変換されて格納される。
【0025】
フレームバッファ48に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。
【0026】
また、処理に必要なデータがデータ保持部5に保持されている。主なデータとしては、モデルデータと、モデル姿勢と、視点・視方向・画角とがある。モデルデータには、マテリアルと、頂点座標と、法線と、テクスチャと、頂点カラー(ディフューズ色)とが含まれる。
【0027】
モデルデータは、仮想3次元空間内のモデルの標準姿勢における形態を表現したポリゴンデータである。インスタンス化されて仮想3次元空間内に配置されたモデルはオブジェクトと呼ぶ場合がある。後述する雨オブジェクトは、単純な構成であるため、モデルとして保持しておかなくても、プログラムから直接に生成することができる。マテリアルは、モデルの種別を区別する情報であり、街灯のように発光するオブジェクトである場合には自己発光値(Emissive)が設定される。頂点座標は、モデルのポリゴンの頂点の座標(x座標、y座標、z座標)である。法線は、各頂点の面する方向を示すベクトル値である。テクスチャは、ポリゴンの面に貼り付けられる画像データである。頂点カラーは、各頂点のカラーを示すRGB(Red Green Blue)等の値である。
【0028】
モデル姿勢は、各モデルの仮想3次元空間内における位置および回転角度を示す値である。視点・視方向・画角は、仮想3次元空間内のモデルを投影面上の2次元画像として描画する際の仮想カメラ(仮想視点)の3次元位置、視線中心方向および視野角である。
【0029】
なお、画像処理装置1にGPU4を用いた構成について説明したが、汎用的なコンピュータのハードウェア上でソフトウェア的にグラフィックエンジンを実現した場合にも本発明を適用できることは言うまでもない。この場合、GPU4の機能は3Dアプリケーション2や3D−API3と同様にソフトウェア的に実現され、テクスチャ471、472やフレームバッファ48はメモリ(RAM)上に配置される。
【0030】
<動作>
図2はグレアテクスチャ471の生成処理の例を示すフローチャートである。グレアテクスチャ471は、マテリアルに自己発光値が設定されたモデル(自己発光オブジェクト)の発光部分のピクセル毎の色情報を格納したテクスチャである。グレアテクスチャ471の生成処理は、主にピクセルシェーダにより行われる。
【0031】
図2において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS101)、マテリアルに自己発光値が設定されたモデルのピクセルを、予め用意されたテクスチャバッファであるグレアテクスチャ471に描画し(ステップS102)、処理を終了する(ステップS103)。
【0032】
図3はグレアテクスチャ471の例を示す図であり、ピクセル毎の発光色を示している。図では、6個の立方体状の発光部を持つ街灯が画面中央に配置され、画面の右端にも他の街灯の一部が見えている。図において、白い部分は発光強度が高い部分であり、黒い部分は発光強度が低い部分である。
【0033】
図4は通過オブジェクトの描画処理の例を示すフローチャートである。通過オブジェクトとして、例えば、雨筋を表現する雨オブジェクト、雪の粒を表現する雪オブジェクト、噴水等で生じる水しぶきを表現する水滴オブジェクトなどが想定される。以下、通過オブジェクトの一例として、雨オブジェクトに関して本発明の詳細な説明を行う。
【0034】
なお、通過オブジェクトを除くその他のモデルのポリゴンについては通常の描画処理が行われ、通過オブジェクトの描画処理結果とフレームバッファ48上で合成される。
【0035】
図4において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS201)、降雨範囲(x、y、z値の範囲)を設定する(ステップS202)。
【0036】
次いで、設定した降雨範囲内で雨オブジェクトを生成する(ステップS203)。雨オブジェクトは、降雨範囲の最大y座標から開始し、最小y座標に達して消滅するまで、座標を所定の速度ベクトルに基づいて毎回更新する。図5(a)は雨オブジェクトの例を示しており、ここでは5つの頂点VT1〜VT5を結んだラインポリゴンにより雨のライン(雨筋)を表現している。なお、頂点の数は5つに限られず、頂点の間隔も等間隔である必要はない。頂点が直線状のラインに沿う必要もなく、曲線状のラインに沿うようにしてもよい。また、図では垂直方向に落ちる雨のラインを示しているが、斜め方向に雨が落ちるようにしてもよく、その場合、頂点は斜め方向に配置される。
【0037】
次いで、頂点座標の周囲に位置する近傍座標を求める処理を行う。図4に戻り、雨オブジェクトの各頂点と対になる法線に、y軸にのみ値を設定したベクトルを設定する(ステップS204)。ベクトルのy軸の値は、例えば、一番上の頂点から一番下の頂点にかけて1.0〜−1.0とする。図5(b)は頂点VT1に法線(0,1,0)、頂点VT2に法線(0,0.5,0)、頂点VT3に法線(0,0,0)、頂点VT4に法線(0,−0.5,0)、頂点VT5に法線(0,−1,0)を設定した状態を示している。
【0038】
次いで、図4に戻り、バーテックスシェーダによる処理を行う(ステップS205)。
【0039】
先ず、x軸の正方向に値を設定したベクトルv1と、x軸の負方向に値を設定したベクトルv2を、雨オブジェクトの各頂点の法線にそれぞれ加算したベクトルv1'、v2'を計算する(ステップS206)。ベクトルv1とベクトルv2のx軸の値の絶対値は所定のスケーリング値とする。図6は処理内容を概念的に示しており、頂点VT1の法線(ベクトル)にベクトルv1とベクトルv2をそれぞれ加算し、ベクトルv1'、v2'を求めた状態を示している。ここで求めたベクトルv1'、v2'が3次元空間内の近傍座標である。他の頂点VT2〜VT5についても同様にベクトルv1'、v2'を求める。なお、上記手順で求めたベクトルv1'、v2'にさらに係数を乗算した各ベクトルを近傍座標としてもよい。
【0040】
次いで、図4に戻り、雨オブジェクトの各頂点に周知のビュー変換行列を乗算し、ビュー空間に移動した雨オブジェクトの頂点座標を計算する(ステップS207)。
【0041】
図7(a)はビュー空間の例を示している。ビュー空間は視点(仮想カメラ)VPを基準とした座標空間であり、視点VPから視方向に対して横軸がx軸、縦軸がy軸、奥行きがz軸となる。視点VPの視方向に対してx軸方向およびy軸方向にそれぞれ画角だけ振った範囲の、視点VPに近い側には近クリップ平面CP1が設定され、遠い側には遠クリップ平面CP2が設定される。近クリップ平面CP1と遠クリップ平面CP2と画角を示す面で囲われる6面体は視錐台と呼ばれ、その内部に配置されるモデル(オブジェクト)が描画対象となる。視錐台の位置は、ビデオゲームの場合、プレイヤ(遊戯者)が操作手段により操作するプレイヤキャラクタを含むように決定される。図7(b)は射影空間の例を示しており、図7(a)に示したビュー空間を、−1≦x≦1、−1≦y≦1、0≦z≦1の範囲に変換したものである。
【0042】
次いで、図4に戻り、ベクトルv1'、v2'にビュー空間の雨オブジェクトの各頂点座標を加算したビュー空間座標p1、p2を算出する(ステップS208)。
【0043】
次いで、ビュー空間座標p1、p2に周知の射影変換行列を乗算して射影空間座標p1'、p2'を算出する(ステップS209)。
【0044】
次いで、射影空間座標p1'、p2'からテクスチャ空間座標p1"、p2"を算出する(ステップS210)。変換式は、例えば、
pi"(x)=0.5・pi'(x)+0.5
pi"(y)=−0.5・pi'(y)+0.5
を用いる。図8は、雨オブジェクトの頂点VT1の法線にベクトルv1、v2をそれぞれ加算し、種々の変換を経て、テクスチャ空間座標p1"、p2"が求められた状態を示している。ここで求めたp1"、p2"がテクスチャ空間上での近傍座標である。
【0045】
次いで、図4に戻り、ピクセルシェーダによるピクセル毎の処理を行う(ステップS211)。
【0046】
先ず、テクスチャ空間座標p1"、p2"を使用してグレアテクスチャ471(図3)から色情報c1、c2を取得する(ステップS212)。
【0047】
次いで、テクスチャ空間座標p1"、p2"を使用して深度情報テクスチャ472から深度情報d1、d2を取得する(ステップS213)。図9は深度情報テクスチャ472の例を示しており、図3のグレアテクスチャ471の例と同じシーンでの値を示している。深度情報テクスチャ472では、視点側により近い自己発光オブジェクトに対応するピクセルほど高い輝度が設定されている。つまり、図9において、白い部分は視点側に近い位置にオブジェクトが存在することを示し、黒い部分は視点から遠い位置にオブジェクトが存在することを示している。
【0048】
次いで、図4に戻り、色情報c1に深度情報d1を輝度値として乗算して色情報c1・d1を計算するとともに、色情報c2に深度情報d2を輝度値として乗算して色情報c2・d2を計算し、色情報c1・d1と色情報c2・d2を加算した色情報Dを計算する(ステップS214)。色情報に深度情報を乗算するのは、抽出した自己発光オブジェクトの色情報に対し、隔たった距離によって強弱を持たせるためである。
【0049】
次いで、色情報Dを雨オブジェクトの頂点のディフューズ色に加算し、その色を頂点の出力色(フレームバッファ48への出力色)に設定する(ステップS215)。
【0050】
そして、雨オブジェクトに設定された全ての頂点に対し出力色の設定が行われた後に、既に設定された各頂点の出力色をもとに各頂点間のピクセルの出力色を補間して算出し、雨オブジェクト全体の出力色を設定し(ステップS216)、処理を終了する(ステップS217)。
【0051】
以上のように、図4に記載した処理では、雨オブジェクトの各頂点の近傍に位置する近傍座標(テクスチャ空間座標p1"、p2")を算出し、近傍座標の色情報を加味して雨オブジェクトの頂点の出力色を設定する処理を実行する。これにより、街灯などの光源の周辺を雨オブジェクト等の通過オブジェクトが通過した場合において、雨筋が光る雨グレア等を表現することができる。
【0052】
図10は生成画像例を示す図であり、画面中央の街灯の周辺を落ちる雨のラインが、街灯の明かりにより部分的に照らされている状態が表現されている。
【0053】
<総括>
以上説明したように、本実施形態によれば、雨オブジェクトの各頂点座標と、その近傍の座標における色情報、および深度情報から雨オブジェクトの出力色を決定するため、簡易な処理により、街灯等の発する光によって光源周囲の雨筋が光る雨グレアを表現することができるという利点がある。
【0054】
なお、本実施形態によれば、雨オブジェクトの出力色の設定をより簡易な処理とするために、雨筋をラインポリゴンで形成する場合について述べたが、本発明はこれに限らず、幅を持ったポリゴン(例えば、矩形状、円形状)で雨筋や雪の粒を表現する場合にも適用が可能である。
【0055】
また、本実施形態によれば、雨ポリゴンの上端の頂点は、より上方位置の座標の光源の影響を受け、雨ポリゴンの下端の頂点はより下方位置の座標の光源の影響を受けることで、より自然な雨グレアを表現するために、上端の位置ではより上方の、下端の位置では寄り下方の座標を近傍座標と設定するべく法線値を設定する場合について述べたが、本発明はこれに限らず、頂点座標の近傍の座標を取得できる範囲であれば各頂点の法線値はどのような値であってもよい。
【0056】
また、本実施形態によれば、ラインポリゴンでは通常使用されない法線値を用いて近傍座標を求めることで、より無駄のない処理で雨グレアを表現している場合について述べたが、本発明はこれに限らず、各頂点の法線値を設定せずに、各頂点座標に所定のベクトルを加算することで、近傍座標を求める構成する場合にも適用可能である。
【0057】
また、本実施形態によれば、簡易な処理でより自然な雨オブジェクトを生成するために、頂点ごとに法線の値を使用して近傍座標を2点算出し、各近傍座標の色情報を頂点の出力色に加味する場合について述べたが、近傍座標の数は2点に限らず1点でもよいし、3点以上算出してもよい。
【0058】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【0059】
1 画像処理装置
2 3Dアプリケーション
3 3D−API
4 GPU
41 GPUフロントエンド部
42 プログラマブル頂点プロセッサ
43 基本アセンブリ部
44 ラスタライズ/補間部
45 プログラマブルピクセルプロセッサ
46 ラスタ演算部
471 グレアテクスチャ
472 深度情報テクスチャ
48 フレームバッファ
5 データ保持部
【特許請求の範囲】
【請求項1】
コンピュータを、
少なくとも自己発光オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、
前記自己発光オブジェクトの周囲を通過する通過オブジェクトを前記仮想空間に発生させる通過オブジェクト発生手段、
前記投影平面のピクセル毎に前記仮想空間における前記自己発光オブジェクトの色情報および前記オブジェクトの深度情報をメモリに保持する保持手段、
前記投影平面上における前記通過オブジェクトの近傍座標を算出する近傍座標計算手段、
前記保持手段から算出された前記近傍座標における前記自己発光オブジェクトの色情報と深度情報を取得し、当該色情報と深度情報を乗算して影響色情報を取得する色情報取得手段、
取得した影響色情報を前記通過オブジェクトの色に反映させる色設定手段
として機能させる画像処理プログラム。
【請求項2】
請求項1に記載の画像処理プログラムであって、
前記色情報取得手段は、前記近傍座標における前記自己発光オブジェクトの深度が小さいほど前記通過オブジェクトの色を明るくする影響色情報を取得し、
前記色設定手段は、前記通過オブジェクトの深度が小さいほど前記通過オブジェクトの色を明るく設定する
画像処理プログラム。
【請求項3】
請求項2に記載の画像処理プログラムであって、
前記通過オブジェクト発生手段は、前記通過オブジェクトを複数の頂点から構成されるラインポリゴンとしてランダムに発生させ、前記仮想空間で落下する速度を与え、
前記色情報取得手段は、前記頂点ごとに前記近傍座標の色情報と輝度情報を乗算して影響色情報を取得し、
前記色設定手段は、前記影響色情報を前記通過オブジェクトの各頂点の色に反映させる
画像処理プログラム。
【請求項4】
請求項3に記載の画像処理プログラムであって、
コンピュータを、
前記通過オブジェクトの一番上の頂点に対してy軸の値に正方向の値、一番下の頂点に対してy軸の値に負方向の値のベクトルを設定し、その間の頂点に連続してベクトルを設定するベクトル設定手段
として機能させ、
前記近傍座標計算手段は、それぞれx軸の値が正方向の値とx軸の値が負方向の値の2つのベクトルを、前記通過オブジェクトの各頂点に設定されたベクトルに加算し、
前記色情報取得手段は、2つの前記加算したベクトルに対応する前記投影平面上の座標から得た色情報と深度情報との乗算値を加算して影響色情報を取得する
画像処理プログラム。
【請求項5】
請求項4に記載の画像処理プログラムであって、
コンピュータを、
前記通過オブジェクトの一番上の頂点に対してy軸の値を+1、一番下の頂点に対してy軸の値を−1としてベクトルを設定し、その間の頂点に連続してベクトルを設定するベクトル設定手段
として機能させ、
前記近傍座標計算手段は、それぞれx軸の値が+1とx軸の値が−1の2つのベクトルを、前記通過オブジェクトの各頂点に設定されたベクトルに加算し、
前記色情報取得手段は、2つの前記加算したベクトルに対応する前記投影平面上の座標から得た色情報と深度情報との乗算値を加算して影響色情報を取得する
画像処理プログラム。
【請求項6】
請求項1乃至5のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体。
【請求項1】
コンピュータを、
少なくとも自己発光オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、
前記自己発光オブジェクトの周囲を通過する通過オブジェクトを前記仮想空間に発生させる通過オブジェクト発生手段、
前記投影平面のピクセル毎に前記仮想空間における前記自己発光オブジェクトの色情報および前記オブジェクトの深度情報をメモリに保持する保持手段、
前記投影平面上における前記通過オブジェクトの近傍座標を算出する近傍座標計算手段、
前記保持手段から算出された前記近傍座標における前記自己発光オブジェクトの色情報と深度情報を取得し、当該色情報と深度情報を乗算して影響色情報を取得する色情報取得手段、
取得した影響色情報を前記通過オブジェクトの色に反映させる色設定手段
として機能させる画像処理プログラム。
【請求項2】
請求項1に記載の画像処理プログラムであって、
前記色情報取得手段は、前記近傍座標における前記自己発光オブジェクトの深度が小さいほど前記通過オブジェクトの色を明るくする影響色情報を取得し、
前記色設定手段は、前記通過オブジェクトの深度が小さいほど前記通過オブジェクトの色を明るく設定する
画像処理プログラム。
【請求項3】
請求項2に記載の画像処理プログラムであって、
前記通過オブジェクト発生手段は、前記通過オブジェクトを複数の頂点から構成されるラインポリゴンとしてランダムに発生させ、前記仮想空間で落下する速度を与え、
前記色情報取得手段は、前記頂点ごとに前記近傍座標の色情報と輝度情報を乗算して影響色情報を取得し、
前記色設定手段は、前記影響色情報を前記通過オブジェクトの各頂点の色に反映させる
画像処理プログラム。
【請求項4】
請求項3に記載の画像処理プログラムであって、
コンピュータを、
前記通過オブジェクトの一番上の頂点に対してy軸の値に正方向の値、一番下の頂点に対してy軸の値に負方向の値のベクトルを設定し、その間の頂点に連続してベクトルを設定するベクトル設定手段
として機能させ、
前記近傍座標計算手段は、それぞれx軸の値が正方向の値とx軸の値が負方向の値の2つのベクトルを、前記通過オブジェクトの各頂点に設定されたベクトルに加算し、
前記色情報取得手段は、2つの前記加算したベクトルに対応する前記投影平面上の座標から得た色情報と深度情報との乗算値を加算して影響色情報を取得する
画像処理プログラム。
【請求項5】
請求項4に記載の画像処理プログラムであって、
コンピュータを、
前記通過オブジェクトの一番上の頂点に対してy軸の値を+1、一番下の頂点に対してy軸の値を−1としてベクトルを設定し、その間の頂点に連続してベクトルを設定するベクトル設定手段
として機能させ、
前記近傍座標計算手段は、それぞれx軸の値が+1とx軸の値が−1の2つのベクトルを、前記通過オブジェクトの各頂点に設定されたベクトルに加算し、
前記色情報取得手段は、2つの前記加算したベクトルに対応する前記投影平面上の座標から得た色情報と深度情報との乗算値を加算して影響色情報を取得する
画像処理プログラム。
【請求項6】
請求項1乃至5のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図4】
【図5】
【図6】
【図7】
【図8】
【図3】
【図9】
【図10】
【図2】
【図4】
【図5】
【図6】
【図7】
【図8】
【図3】
【図9】
【図10】
【公開番号】特開2011−65536(P2011−65536A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−217161(P2009−217161)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
[ Back to top ]