説明

画像処理装置、画像処理方法および画像処理プログラム

【課題】ポストエフェクト処理を基本としつつ、輪郭線が必要とされる部分に任意のカラーの輪郭線を描画する。
【解決手段】第1のワークバッファに元画像、第2のワークバッファにマテリアルID、第3のワークバッファに法線値、第4のワークバッファにデプス値、第5のワークバッファに輪郭線カラーIDをそれぞれ描画する第1の描画手段と、少なくとも上下左右のピクセルにおいてマテリアルIDが同じで、法線値の距離が所定の閾値以下で、デプス値の距離が所定の閾値以下である場合に、第1のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第2の描画手段と、それ以外のピクセルにおいて、少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の第5のワークバッファにおける輪郭線カラーIDのカラー情報をフレームバッファの現在ピクセル位置に描画する第3の描画手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想3次元空間内のモデルを投影面上の2次元画像として描画するCG(Computer Graphics)技術に関する。
【背景技術】
【0002】
ビデオゲームやCGビデオ等においては、モデルを忠実に描画するだけでなく、モデルの周辺等に輪郭線を描画することでアニメ的な表現(アニメ調表現、トゥーンレンダリング)とすることが望まれる場合がある。
【0003】
このような輪郭線の描画手法としては、大きく分けて、反転モデル描画処理によるもの(例えば、特許文献1参照。)とポストエフェクト処理によるもの(例えば、非特許文献1参照。)とが存在する。反転モデル描画処理による輪郭線の描画は、輪郭線を描画するためのモデル(反転モデル)を追加し、モデルの描画の一環として輪郭線を描画するものである。ポストエフェクト処理による輪郭線の描画は、モデルを描画した後に、画像処理(エフェクト処理)により輪郭線を描画するものである。ポストエフェクト処理は輪郭線の描画に限らず、各種の表現に用いられている(例えば、特許文献2参照。)。
【0004】
図1は従来の反転モデル描画処理による輪郭線の描画の例を示す図である。すなわち、ポリゴンの法線(法線ベクトル)が外側を向いたモデルMの周囲に輪郭線を描画しようとする場合、モデルMより一回り大きく、かつ法線が内側を向いたモデルM'を新たに設ける。そして、視点Vの方向に正となる法線成分を持つ両モデルM、M'の部分を描画する。これにより、モデルMの周囲に、モデルM'の内側の面に設定したカラー(色)の輪郭線が描画される。
【0005】
図2は従来のポストエフェクト処理による輪郭線の描画の例を示す図であり、図2(a)はモデル描画後の画像の一部を拡大して示している。一つのマスは一つのピクセル(画素)を表している。
【0006】
図2(a)において、領域A1を背景のモデルの部分、領域A3を例えばキャラクタの顔のモデルの部分、領域A4をキャラクタが被った帽子のモデルの部分とする。ここで、例えば、左上のピクセルから順次に各ピクセルに着目し(着目しているピクセルを「現在ピクセル」)、現在ピクセルのカラーと、現在ピクセルの右に隣接するピクセルまたは上に隣接するピクセルのカラーとを比較し、所定値以上の差がある場合には、現在ピクセルが境界上にあるものとして、現在ピクセルのカラーを、予め設定された輪郭線のカラーに変更する。図2(b)は上記の処理を行った結果、輪郭線Bが描画された状態を示している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第3804328号公報
【特許文献2】特開2006−252427号公報
【非特許文献】
【0008】
【非特許文献1】"Real-Time Image-Space Outlining for Non-Photorealistic Rendering", Jason L. Mitchell, Chris Brennan, Drew Card, http://ati.amd.com/developer/SIGGRAPH02/SIGGRAPH2002_Sketch-Mitchell.pdf(掲載日不詳)
【発明の概要】
【発明が解決しようとする課題】
【0009】
上述した反転モデル描画処理による輪郭線の描画は、輪郭線に任意のカラーを付けられるものの、事前の反転モデルの作成に工数がかかり、更に描画対象のモデルの増加により処理負荷が高いという問題がある。また、独立したモデルの周辺にしか輪郭線が描画できないことから、例えば、モデル表面の急な起伏のあるような部分に輪郭線を描画することはできず、輪郭線が描画できる場所に対する制限が多くあるという問題がある。
【0010】
一方、ポストエフェクト処理による輪郭線の描画は、モデルの増加を来すものではないため、処理負荷が小さいという利点がある。しかし、各ピクセルのカラーの違いに着目して認識された境界に予め設定されたカラーの輪郭線を描画するため、原則として単色の輪郭線しか描画できないという問題がある。この点、昨今ではモデルに応じて異なるカラーの輪郭線を付すことが要望される傾向にあるが、それに充分に対応することができない。また、周囲(上下左右)のピクセルに関係なくそのまま輪郭線色を設定すると、輪郭線が2重の色になってしまうという問題がある。
【0011】
更に、各ピクセルのカラーの違いに着目しているため、カラーのほぼ同じモデルが重なった部分や、モデル内の急な起伏や凹凸のある部分(カラーはほぼ同じ)には輪郭線が描画できないという問題もあった。
【0012】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、処理負荷の小さいポストエフェクト処理を基本としつつ、輪郭線が必要とされる部分に任意のカラーの輪郭線を描画することのできる画像処理装置、画像処理方法および画像処理プログラムを提供することにある。
【課題を解決するための手段】
【0013】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置であって、第1のワークバッファに元画像を描画し、第2のワークバッファにモデル毎に設定されたマテリアルIDをカラー情報とみなして描画し、第3のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第4のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第5のワークバッファにモデルの頂点毎に設定された輪郭線カラーIDをカラー情報とみなして描画する第1の描画手段と、フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じで、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第1のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第2の描画手段と、フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じでないか、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第5のワークバッファにおける輪郭線カラーIDのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第3の描画手段とを備える画像処理装置を要旨としている。
【0014】
また、請求項2に記載されるように、請求項1に記載の画像処理装置において、前記第3の描画手段は、前記一のピクセル位置の特定として、前記第4のワークバッファにおける現在ピクセル位置の少なくとも上下左右のピクセル位置のデプス値の中からデプス値が最小となるピクセル位置を特定するようにすることができる。
【0015】
また、請求項3に記載されるように、請求項1に記載の画像処理装置において、前記輪郭線カラーIDは、輪郭線カラーを決定する優先度の高い順に昇順もしくは降順に値を設定してあり、前記第3の描画手段は、前記一のピクセル位置の特定として、前記第5のワークバッファにおける現在ピクセル位置の少なくとも上下左右のピクセル位置の輪郭線カラーIDの中から輪郭線カラーIDの値に基づいて最も優先度の高いピクセル位置を特定するようにすることができる。
【0016】
また、請求項4に記載されるように、請求項1乃至3のいずれか一項に記載の画像処理装置において、前記第1の描画手段は、更に、第6のワークバッファにモデルの頂点毎に設定された輪郭線強度をカラー情報とみなして描画し、前記第3の描画手段は、特定された一のピクセル位置の前記第5のワークバッファにおける輪郭線カラーIDを前記第1のワークバッファのカラー情報と前記第6のワークバッファの輪郭線強度で線形補間したカラー情報を前記フレームバッファの現在ピクセル位置に描画するようにすることができる。
【0017】
また、請求項5に記載されるように、仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置の処理方法であって、第1のワークバッファに元画像を描画し、第2のワークバッファにモデル毎に設定されたマテリアルIDをカラー情報とみなして描画し、第3のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第4のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第5のワークバッファにモデルの頂点毎に設定された輪郭線カラーIDをカラー情報とみなして描画する第1の描画工程と、フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じで、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第1のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第2の描画工程と、フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じでないか、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第5のワークバッファにおける輪郭線カラーIDのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第3の描画工程とを備える画像処理方法として構成することができる。
【0018】
また、請求項6に記載されるように、仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置を構成するコンピュータを、第1のワークバッファに元画像を描画し、第2のワークバッファにモデル毎に設定されたマテリアルIDをカラー情報とみなして描画し、第3のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第4のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第5のワークバッファにモデルの頂点毎に設定された輪郭線カラーIDをカラー情報とみなして描画する第1の描画手段、フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じで、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第1のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第2の描画手段、フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じでないか、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第5のワークバッファにおける輪郭線カラーIDのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第3の描画手段として機能させる画像処理プログラムとして構成することができる。
【発明の効果】
【0019】
本発明の画像処理装置、画像処理方法および画像処理プログラムにあっては、処理負荷の小さいポストエフェクト処理を基本としつつ、輪郭線が必要とされる部分に任意のカラーの輪郭線を描画することができる。
【図面の簡単な説明】
【0020】
【図1】従来の反転モデル描画処理による輪郭線の描画の例を示す図である。
【図2】従来のポストエフェクト処理による輪郭線の描画の例を示す図である。
【図3】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図4】輪郭線カラーテーブルのデータ構造例を示す図である。
【図5】実施形態の描画処理の例を示すフローチャートである。
【図6】元画像の例を示す図である。
【図7】実施形態におけるピクセル毎の処理例を示す図である。
【発明を実施するための形態】
【0021】
以下、本発明の好適な実施形態につき説明する。
【0022】
<構成>
図3は本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【0023】
図3において、画像処理装置は、ゲームアプリケーション等の3D(3 Dimension)オブジェクトの描画命令を含む3Dアプリケーション2と、この3Dアプリケーション2から描画命令等を受け取るOpenGL、Direct3D等の3D−API(Application Program Interface)3と、描画処理を実行するGPU(Graphics Processing Unit)4とを備えている。
【0024】
GPU4は、3D−API3からGPUコマンドおよびデータストリームを受け付けるGPUフロントエンド部41と、このGPUフロントエンド部41から3D頂点データを受け取って2Dスクリーン空間に投影した座標変換(行列の転置)等を行うプログラマブル頂点プロセッサ(VS:Vertex Processor)42と、GPUフロントエンド部41から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ42で座標変換された頂点データとを組み立てる基本アセンブリ部43とを備えている。プログラマブル頂点プロセッサ42および基本アセンブリ部43の部分は、バーテックスシェーダと呼ばれている。
【0025】
また、GPU4は、基本アセンブリ部43で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ/補間部44と、このラスタライズ/補間部44からラスタライズ済のピクセル(フラグメント)データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ(PS:Pixel Processor)45と、ラスタライズ/補間部44から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ45から与えられるテクスチャマッピング済のデータからラスタ演算(ピクセルデータの画面上での配置)を行うラスタ演算部46とを備えている。ラスタライズ/補間部44、プログラマブルピクセルプロセッサ45およびラスタ演算部46の部分は、ピクセルシェーダと呼ばれている。
【0026】
また、GPU4は、ラスタ演算部46により描画内容が書込・更新されるとともに、GPU4内の各部から参照可能なワークバッファ471〜476と、ラスタ演算部46により描画内容が書込・更新されるフレームバッファ48とを備えている。ワークバッファ471〜476は、ポストエフェクト処理のための途中データを保持するために用いられる。フレームバッファ48に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。
【0027】
また、処理に必要なデータがデータ保持部5に保持されている。主なデータとしては、モデルデータと、モデル姿勢と、視点・画角と、法線距離閾値と、デプス距離閾値と、輪郭線カラーテーブルとがある。モデルデータには、マテリアルIDと、頂点座標と、法線と、テクスチャと、頂点カラーと、輪郭線カラーIDと、輪郭線強度とが含まれる。
【0028】
モデルデータは、仮想3次元空間内のモデルの標準姿勢における形態を表現したポリゴンデータである。マテリアルIDは、モデルの種別(例えば、「肌」「髪」等)を区別する識別子である。頂点座標は、モデルのポリゴンの頂点の座標(X座標、Y座標、Z座標)である。法線は、各頂点の面する方向を示すベクトル値である。テクスチャは、ポリゴンの面に貼り付けられる画像データである。頂点カラーは、各頂点のカラーを示すRGB(Red Green Blue)等の値である。輪郭線カラーIDは、輪郭線に用いられるカラーを特定する識別子であり、各頂点に対応付けられる。輪郭線強度は、輪郭線の表現の強さを制御するための値であり、各頂点に対応付けられる。
【0029】
モデル姿勢は、各モデルの仮想3次元空間内における位置および回転角度を示す値である。視点・画角は、仮想3次元空間内のモデルを投影面上の2次元画像として描画する際の仮想カメラの3次元位置および視野角である。法線距離閾値は、ポストエフェクト処理において、隣接するピクセル間の法線値の違いにより輪郭線を描画するか否かの判定に用いられる値である。デプス距離閾値は、ポストエフェクト処理において、隣接するピクセル間のデプス値(視点からの奥行きを示す値であり、小さい値であるほど視点に近い)の違いにより輪郭線を描画するか否かの判定に用いられる値である。輪郭線カラーテーブルは、図4に示すように、輪郭線カラーIDとRGB等のカラー情報とを対応付けるデータテーブルである。
【0030】
なお、画像処理装置1にGPU4を用いた構成について説明したが、汎用的なコンピュータのハードウェア上でソフトウェア的にグラフィックエンジンを実現した場合にも本発明を適用できることは言うまでもない。この場合、GPU4の機能は3Dアプリケーション2や3D−API3と同様にソフトウェア的に実現され、ワークバッファ471〜476やフレームバッファ48はメモリ(RAM)上に配置される。
【0031】
<動作>
図5は上記の実施形態の描画処理の例を示すフローチャートである。
【0032】
図5において、GPU4は、ある画面フレームの描画処理を開始すると(ステップS101)、視点・画角に基づいて、2Dスクリーン空間に入る複数のモデルについて、投影面と同じサイズのワークバッファ471に元画像を描画する(ステップS102)。元画像の描画は、通常の3Dグラフィックスの描画と同じであり、モデルのポリゴンの各頂点をバーテックスシェーダ(プログラマブル頂点プロセッサ42、基本アセンブリ部43)により2Dスクリーン空間上の座標に変換し、ピクセルシェーダ(ラスタライズ/補間部44、プログラマブルピクセルプロセッサ45、ラスタ演算部46)によりラスタライズ、補間、テクスチャマッピングおよびラスタ演算等を行って、ワークバッファ471上にピクセル毎にカラー情報を設定する。
【0033】
次いで、GPU4は、ワークバッファ472にマテリアルIDをカラー情報とみなして描画する(ステップS103)。すなわち、カラー情報を描画する代わりに、マテリアルIDを描画する。マテリアルIDは一つのモデルでは一つであるため、同じモデルの描画ピクセルのマテリアルIDは均一になる。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、マテリアルIDをカラー情報のデータフォーマットにエンコードして用いる。
【0034】
次いで、GPU4は、ワークバッファ473に法線値をカラー情報とみなして描画する(ステップS104)。すなわち、カラー情報を描画する代わりに、法線値を描画する。法線値は一つのモデルであっても表面の起伏に応じて変化するため、同じモデルの描画ピクセルであっても値が個々に異なるものとなるのが普通である。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、法線値をカラー情報のデータフォーマットにエンコードして用いる。
【0035】
次いで、GPU4は、ワークバッファ474にデプス値をカラー情報とみなして描画する(ステップS105)。すなわち、カラー情報を描画する代わりに、デプス値を描画する。デプス値は一つのモデルであっても表面の起伏や凹凸に応じて変化するため、同じモデルの描画ピクセルであっても値が個々に異なるものとなるのが普通である。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、デプス値をカラー情報のデータフォーマットにエンコードして用いる。
【0036】
次いで、GPU4は、ワークバッファ475に輪郭線カラーIDをカラー情報とみなして描画する(ステップS106)。すなわち、カラー情報を描画する代わりに、輪郭線カラーIDを描画する。輪郭線カラーIDは一つのモデルであっても頂点毎に設定されるものであるため、同じモデルの描画ピクセルであっても値が個々に異なるものとなるのが普通である。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、輪郭線カラーIDをカラー情報のデータフォーマットにエンコードして用いる。
【0037】
次いで、GPU4は、ワークバッファ476に輪郭線強度をカラー情報とみなして描画する(ステップS107)。すなわち、カラー情報を描画する代わりに、輪郭線強度を描画する。輪郭線強度は一つのモデルであっても頂点毎に設定されるものであるため、同じモデルの描画ピクセルであっても値が個々に異なるものとなるのが普通である。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、輪郭線強度をカラー情報のデータフォーマットにエンコードして用いる。
【0038】
なお、フローチャートではワークバッファ471〜476への描画を個別のステップとして記載したが、実際上は各モデルについての一連の描画処理の中でほぼ同時に行われるものであり(モデルデータから使用するデータと出力先のワークバッファが異なるのみ)、処理負荷の大幅な上昇にはつながらない。
【0039】
次いで、GPU4は、最終出力用のフレームバッファ48内の全てのピクセルについて以下の処理を繰り返す(ステップS108)。なお、各処理の時点で着目するピクセルを現在ピクセルと呼ぶこととする。
【0040】
先ず、ワークバッファ472における現在ピクセル位置のマテリアルIDと上下左右のピクセル位置のマテリアルIDが全て同じかどうか判断する(ステップS109)。ワークバッファ472からのマテリアルIDの参照にあたり、マテリアルIDがカラー情報にエンコードされている場合は、元のマテリアルIDにデコードしてから判断を行ってもよいし、カラー情報にエンコードされた状態で比較を行ってもよい。同じモデルの描画ピクセルであればマテリアルIDは同一となり、異なるモデルの境界部分ではマテリアルIDが異なることとなる。
【0041】
マテリアルIDが同じであると判断した場合(ステップS109のYes)、続いて、ワークバッファ473における現在ピクセル位置の法線値と上下左右のピクセル位置の法線値の距離(差)が法線距離閾値以下であるかどうか判断する(ステップS110)。ワークバッファ473からの法線値の参照にあたり、法線値がカラー情報にエンコードされている場合は、元の法線値にデコードしてから判断を行う。カラー情報にエンコードされた状態で法線距離が算出できるのであれば、デコードしなくてもよい。同じモデルの描画ピクセルであっても、表面の起伏により法線値は異なり、起伏が緩やかであれば隣接する法線値の差は小さくなり、起伏が急であれば隣接する法線値の差は大きくなる。
【0042】
法線値の距離が法線距離閾値以下であると判断した場合(ステップS110のYes)、続いて、ワークバッファ474における現在ピクセル位置のデプス値と上下左右のピクセル位置のデプス値の距離(差)がデプス閾値以下であるかどうか判断する(ステップS111)。ワークバッファ474からのデプス値の参照にあたり、デプス値がカラー情報にエンコードされている場合は、元のデプス値にデコードしてから判断を行う。カラー情報にエンコードされた状態でデプス値の距離が算出できるのであれば、デコードしなくてもよい。同じモデルの描画ピクセルであっても、表面の凹凸によりデプス値は異なり、凹凸が小さければ隣接するデプス値の差は小さくなり、凹凸が大きければ隣接するデプス値の差は大きくなる。
【0043】
デプス値の距離がデプス閾値以下であると判断した場合(ステップS111のYes)、ワークバッファ471における現在ピクセル位置のカラーをフレームバッファ48の現在ピクセル位置に描画する(ステップS112)。すなわち、元画像のピクセルのカラーをそのまま出力し、輪郭線を描画しない。
【0044】
一方、マテリアルIDが同じでないと判断した場合(ステップS109のNo)、法線値の距離が法線距離閾値以下でないと判断した場合(ステップS110のNo)、もしくは、デプス値の距離がデプス閾値以下でないと判断した場合(ステップS111のNo)には、輪郭線を描画すべきピクセルであると判断し、以下の処理を行う。
【0045】
先ず、ワークバッファ474における現在ピクセル位置の上下左右のデプス値の中から最小となるピクセル位置を特定するか、ワークバッファ475における現在ピクセル位置の上下左右の輪郭線カラーIDの中から最小(or最大)となるピクセル位置を特定する(ステップS113)。前者はデプス値の大小比較を行わなければならないが、後者は輪郭線カラーIDの単なる比較で済むため、処理を簡略化することができる。ただし、後者の場合は、予め輪郭線を決定すべきマテリアルIDの優先度(髪は顔よりも優先度が高い等)に応じて輪郭線カラーIDの値を設定しておくことが必要となる。
【0046】
次いで、特定したピクセル位置のワークバッファ475の輪郭線カラーIDに対応するカラーを、現在ピクセル位置のワークバッファ471のカラーとワークバッファ476の輪郭線強度で線形補間したカラーをフレームバッファ48の現在ピクセル位置に描画する(ステップS114)。輪郭線強度がゼロの場合はワークバッファ471の現在ピクセル位置のカラーとなり、輪郭線強度が最大の場合はワークバッファ475の特定したピクセル位置の輪郭線カラーIDに対応するカラーとなり、輪郭線強度の値に応じてその間のカラーに線形補間される。これにより、輪郭線強度が大きいほど輪郭線カラーIDに対応するカラーに近づき、濃くなることで、輪郭線の見た目の太さ(ピクセル的な太さは変わらない)が大きくなる。なお、輪郭線強度を用いずに、特定したピクセル位置のワークバッファ475の輪郭線カラーIDに対応するカラーを現在ピクセル位置に直接に描画するようにしてもよい。この場合、輪郭線強度の描画(ステップS107)は不要となる。
【0047】
ここで、現在ピクセル位置の上下左右のデプス値あるいは輪郭線カラーIDの中から最小(or最大)となるピクセル位置を特定し、その特定したピクセル位置の輪郭線カラーIDに対応するカラーを輪郭線のカラーに用いるのは、次の理由による。すなわち、単純に現在ピクセル位置の輪郭線カラーIDに対応するカラーを輪郭線のカラーに用いると、境界両側に輪郭線を描画するという性質上、輪郭線が2色に分かれてしまう不都合がある。そのため、現在ピクセル位置の上下左右のピクセル位置の中から優先度の最も高いピクセル位置を決めるべく、デプス値が最も小さい位置(最も手前にある位置)か、予め優先度を考慮して設定された輪郭線カラーIDからピクセル位置を特定し、輪郭線が2色に分かれてしまわないようにしている。
【0048】
次いで、全てのピクセルについて処理しかたどうか判断し(ステップS115)、まだである場合(ステップS115のNo)は繰り返し開始点(ステップS108)に戻り、全てのピクセルについて処理した場合(ステップS115のYes)は描画処理を終了する(ステップS116)。
【0049】
なお、図5ではマテリアルID、法線値、デプス値の順に判断しているが(ステップS109〜S111)、判断の順番を変えてもよい。
【0050】
また、現在ピクセル位置の上下左右のピクセル位置についてのみ判断しているが、上下左右に限らず、境界領域において周辺ピクセルの十分な情報が得られれば、同様の判定は可能である。
【0051】
図6はワークバッファ471に描画される元画像の例を示す図であり、領域A1を背景のモデルの部分、領域A2をキャラクタの胴体のモデルの部分、領域A3をキャラクタの顔のモデルの部分、領域A4をキャラクタが被った帽子のモデルの部分としている。
【0052】
図7は実施形態におけるピクセル毎の処理例を示す図であり、図7(a)は図6における破線の丸で囲った部分を拡大した図である。一つのマスは一つのピクセルを表している。
【0053】
図7(a)において、左上のピクセルから順次に各ピクセルに着目し、図5に示したステップS108〜S115の処理を行う場合、ステップS109、S110、S111を全て「Yes」で通貨するのは図7(b)の白抜きのマスとなり、濃い網掛けを付したBの領域が輪郭線を付すべきピクセルと判断される。
【0054】
また、輪郭線を付すべきと判断されたピクセルでは、上下左右のデプス値あるいは輪郭線カラーIDの中から最小(or最大)となるピクセル位置が特定され、ここでは帽子の領域A4、顔の領域A3、背景の領域A1の順に優先度が高くなるため、領域A1と領域A4の接する境界と領域A1と領域A3と領域A4の接する境界では、図7(c)に示すように、領域A4の輪郭線カラーIDに対応するカラーによる輪郭線B1となり、領域A1と領域A3の接する境界では、領域A3の輪郭線カラーIDに対応するカラーによる輪郭線B2となる。
【0055】
<総括>
以上説明したように、本実施形態によれば、次のようなメリットがある。
(1)ポストエフェクト処理を基本としているため、事前の工数も少なく、処理負荷も小さい。
(2)各ピクセルのマテリアルID、法線値およびデプス値に着目して境界を認識し、上下左右のピクセル位置の輪郭線カラーIDの中から最も優先度の高いものに対応するカラーを輪郭線のカラーに用いているため、任意のカラーを輪郭線に用いることができるとともに、輪郭線が2色に分かれてしまう不都合もない。
(3)各ピクセルのマテリアルID、法線値およびデプス値に着目して境界を認識するため、カラーのほぼ同じモデルが重なった部分や、モデル内の急な起伏や凹凸のある部分にも輪郭線を描画することができる。より詳しくは、次のような部分に輪郭線を描画することができる。
・マテリアルIDに基づいて境界を判定することで、異なる物体が連続でなめらかに接している部分(法線値とデプス値がそれぞれ一致)に輪郭線を描画することができる。例えば、厚みのない靴下と脚の境界の部分が該当する。
・デプス値に基づいて境界を判定することで、画面に対して同じ面の向きであって同じ物体だが3次元的には離れている部分(マテリアルIDと法線値がそれぞれ一致)に輪郭線を描画することができる。例えば、画面に正対するあごと首の間の部分が該当する。
・法線値に基づいて境界を判定することで、同じ物体で連続しているが、起伏や急な凹凸などにより、人の視覚によって稜線だと判断する部分(マテリアルIDとデプス値がそれぞれ一致)に輪郭線を描画することができる。例えば、折り目や服のシワの部分が該当する。
(4)上下左右のピクセルについて判定しているため、上右もしくは下右等で判定する場合に比して、次のようなメリットがある。すなわち、上および右で判定した場合は、境界領域の下側および左側の1ピクセルに輪郭線が偏って描画されるが、上下左右で判定した場合は、境界の上側、下側、左側および右側のそれぞれのピクセルに描画されることにより、幅2ピクセルの輪郭線が描画され、境界に対して中央に輪郭線が引かれているように見え、見栄えが向上する。また、近傍の中で、最小(or最大)の輪郭線カラーIDまたは最小のデプス値を別途計算する場合は、上右のみの判定でもカラーを付けることには問題ないが、上下左右で判定すると、判定時に得た情報が、隣接ピクセルにおいてもそのまま近傍の値として再利用できるため、処理負荷が軽減される。つまり、上右より上下左右を参照する方が、品質が向上し、処理負荷も軽減されるというメリットがある。
(5)モデルの各頂点に設定した輪郭線強度を用いて元画像のカラーと輪郭線カラーIDに対応するカラーとの間で線形補間することで、輪郭線の見た目の太さを微妙に変化させることができる。
【0056】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【0057】
1 画像処理装置
2 3Dアプリケーション
3 3D−API
4 GPU
41 GPUフロントエンド部
42 プログラマブル頂点プロセッサ
43 基本アセンブリ部
44 ラスタライズ/補間部
45 プログラマブルピクセルプロセッサ
46 ラスタ演算部
471〜476 ワークバッファ
48 フレームバッファ
5 データ保持部

【特許請求の範囲】
【請求項1】
仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置であって、
第1のワークバッファに元画像を描画し、第2のワークバッファにモデル毎に設定されたマテリアルIDをカラー情報とみなして描画し、第3のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第4のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第5のワークバッファにモデルの頂点毎に設定された輪郭線カラーIDをカラー情報とみなして描画する第1の描画手段と、
フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じで、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第1のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第2の描画手段と、
フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じでないか、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第5のワークバッファにおける輪郭線カラーIDのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第3の描画手段と
を備えたことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記第3の描画手段は、前記一のピクセル位置の特定として、前記第4のワークバッファにおける現在ピクセル位置の少なくとも上下左右のピクセル位置のデプス値の中からデプス値が最小となるピクセル位置を特定する
ことを特徴とする画像処理装置。
【請求項3】
請求項1に記載の画像処理装置において、
前記輪郭線カラーIDは、輪郭線カラーを決定する優先度の高い順に昇順もしくは降順に値を設定してあり、
前記第3の描画手段は、前記一のピクセル位置の特定として、前記第5のワークバッファにおける現在ピクセル位置の少なくとも上下左右のピクセル位置の輪郭線カラーIDの中から輪郭線カラーIDの値に基づいて最も優先度の高いピクセル位置を特定する
ことを特徴とする画像処理装置。
【請求項4】
請求項1乃至3のいずれか一項に記載の画像処理装置において、
前記第1の描画手段は、更に、第6のワークバッファにモデルの頂点毎に設定された輪郭線強度をカラー情報とみなして描画し、
前記第3の描画手段は、特定された一のピクセル位置の前記第5のワークバッファにおける輪郭線カラーIDを前記第1のワークバッファのカラー情報と前記第6のワークバッファの輪郭線強度で線形補間したカラー情報を前記フレームバッファの現在ピクセル位置に描画する
ことを特徴とする画像処理装置。
【請求項5】
仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置の処理方法であって、
第1のワークバッファに元画像を描画し、第2のワークバッファにモデル毎に設定されたマテリアルIDをカラー情報とみなして描画し、第3のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第4のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第5のワークバッファにモデルの頂点毎に設定された輪郭線カラーIDをカラー情報とみなして描画する第1の描画工程と、
フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じで、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第1のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第2の描画工程と、
フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じでないか、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第5のワークバッファにおける輪郭線カラーIDのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第3の描画工程と
を備えたことを特徴とする画像処理方法。
【請求項6】
仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置を構成するコンピュータを、
第1のワークバッファに元画像を描画し、第2のワークバッファにモデル毎に設定されたマテリアルIDをカラー情報とみなして描画し、第3のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第4のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第5のワークバッファにモデルの頂点毎に設定された輪郭線カラーIDをカラー情報とみなして描画する第1の描画手段、
フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じで、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第1のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第2の描画手段、
フレームバッファの全ピクセルにつき、前記第2のワークバッファにおける現在ピクセル位置のマテリアルIDと少なくとも上下左右のピクセル位置のマテリアルIDが同じでないか、前記第3のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第4のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第5のワークバッファにおける輪郭線カラーIDのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第3の描画手段
として機能させる画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−238110(P2010−238110A)
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願番号】特願2009−87417(P2009−87417)
【出願日】平成21年3月31日(2009.3.31)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】