(57)【要約】【課題】ポストエフェクト処理を基本としつつ、輪郭線が必要とされる部分に任意のカラーの輪郭線を描画する。【解決手段】第１のワークバッファに元画像、第２のワークバッファにマテリアルＩＤ、第３のワークバッファに法線値、第４のワークバッファにデプス値、第５のワークバッファに輪郭線カラーＩＤをそれぞれ描画する第１の描画手段と、少なくとも上下左右のピクセルにおいてマテリアルＩＤが同じで、法線値の距離が所定の閾値以下で、デプス値の距離が所定の閾値以下である場合に、第１のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第２の描画手段と、それ以外のピクセルにおいて、少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の第５のワークバッファにおける輪郭線カラーＩＤのカラー情報をフレームバッファの現在ピクセル位置に描画する第３の描画手段とを備える。【選択図】図３
2010238110.tif 000002
【特許請求の範囲】
【請求項１】
仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置であって、
第１のワークバッファに元画像を描画し、第２のワークバッファにモデル毎に設定されたマテリアルＩＤをカラー情報とみなして描画し、第３のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第４のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第５のワークバッファにモデルの頂点毎に設定された輪郭線カラーＩＤをカラー情報とみなして描画する第１の描画手段と、
フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じで、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第１のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第２の描画手段と、
フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じでないか、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第５のワークバッファにおける輪郭線カラーＩＤのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第３の描画手段と
を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記第３の描画手段は、前記一のピクセル位置の特定として、前記第４のワークバッファにおける現在ピクセル位置の少なくとも上下左右のピクセル位置のデプス値の中からデプス値が最小となるピクセル位置を特定する
ことを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置において、
前記輪郭線カラーＩＤは、輪郭線カラーを決定する優先度の高い順に昇順もしくは降順に値を設定してあり、
前記第３の描画手段は、前記一のピクセル位置の特定として、前記第５のワークバッファにおける現在ピクセル位置の少なくとも上下左右のピクセル位置の輪郭線カラーＩＤの中から輪郭線カラーＩＤの値に基づいて最も優先度の高いピクセル位置を特定する
ことを特徴とする画像処理装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の画像処理装置において、
前記第１の描画手段は、更に、第６のワークバッファにモデルの頂点毎に設定された輪郭線強度をカラー情報とみなして描画し、
前記第３の描画手段は、特定された一のピクセル位置の前記第５のワークバッファにおける輪郭線カラーＩＤを前記第１のワークバッファのカラー情報と前記第６のワークバッファの輪郭線強度で線形補間したカラー情報を前記フレームバッファの現在ピクセル位置に描画する
ことを特徴とする画像処理装置。
【請求項５】
仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置の処理方法であって、
第１のワークバッファに元画像を描画し、第２のワークバッファにモデル毎に設定されたマテリアルＩＤをカラー情報とみなして描画し、第３のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第４のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第５のワークバッファにモデルの頂点毎に設定された輪郭線カラーＩＤをカラー情報とみなして描画する第１の描画工程と、
フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じで、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第１のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第２の描画工程と、
フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じでないか、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第５のワークバッファにおける輪郭線カラーＩＤのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第３の描画工程と
を備えたことを特徴とする画像処理方法。
【請求項６】
仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置を構成するコンピュータを、
第１のワークバッファに元画像を描画し、第２のワークバッファにモデル毎に設定されたマテリアルＩＤをカラー情報とみなして描画し、第３のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第４のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第５のワークバッファにモデルの頂点毎に設定された輪郭線カラーＩＤをカラー情報とみなして描画する第１の描画手段、
フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じで、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第１のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第２の描画手段、
フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じでないか、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第５のワークバッファにおける輪郭線カラーＩＤのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第３の描画手段
として機能させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想３次元空間内のモデルを投影面上の２次元画像として描画するＣＧ（Computer Graphics）技術に関する。
【背景技術】
【０００２】
ビデオゲームやＣＧビデオ等においては、モデルを忠実に描画するだけでなく、モデルの周辺等に輪郭線を描画することでアニメ的な表現（アニメ調表現、トゥーンレンダリング）とすることが望まれる場合がある。
【０００３】
このような輪郭線の描画手法としては、大きく分けて、反転モデル描画処理によるもの（例えば、特許文献１参照。）とポストエフェクト処理によるもの（例えば、非特許文献１参照。）とが存在する。反転モデル描画処理による輪郭線の描画は、輪郭線を描画するためのモデル（反転モデル）を追加し、モデルの描画の一環として輪郭線を描画するものである。ポストエフェクト処理による輪郭線の描画は、モデルを描画した後に、画像処理（エフェクト処理）により輪郭線を描画するものである。ポストエフェクト処理は輪郭線の描画に限らず、各種の表現に用いられている（例えば、特許文献２参照。）。
【０００４】
図１は従来の反転モデル描画処理による輪郭線の描画の例を示す図である。すなわち、ポリゴンの法線（法線ベクトル）が外側を向いたモデルＭの周囲に輪郭線を描画しようとする場合、モデルＭより一回り大きく、かつ法線が内側を向いたモデルＭ'を新たに設ける。そして、視点Ｖの方向に正となる法線成分を持つ両モデルＭ、Ｍ'の部分を描画する。これにより、モデルＭの周囲に、モデルＭ'の内側の面に設定したカラー（色）の輪郭線が描画される。
【０００５】
図２は従来のポストエフェクト処理による輪郭線の描画の例を示す図であり、図２（ａ）はモデル描画後の画像の一部を拡大して示している。一つのマスは一つのピクセル（画素）を表している。
【０００６】
図２（ａ）において、領域Ａ１を背景のモデルの部分、領域Ａ３を例えばキャラクタの顔のモデルの部分、領域Ａ４をキャラクタが被った帽子のモデルの部分とする。ここで、例えば、左上のピクセルから順次に各ピクセルに着目し（着目しているピクセルを「現在ピクセル」）、現在ピクセルのカラーと、現在ピクセルの右に隣接するピクセルまたは上に隣接するピクセルのカラーとを比較し、所定値以上の差がある場合には、現在ピクセルが境界上にあるものとして、現在ピクセルのカラーを、予め設定された輪郭線のカラーに変更する。図２（ｂ）は上記の処理を行った結果、輪郭線Ｂが描画された状態を示している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３８０４３２８号公報
【特許文献２】特開２００６−２５２４２７号公報
【非特許文献】
【０００８】
【非特許文献１】"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（掲載日不詳）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した反転モデル描画処理による輪郭線の描画は、輪郭線に任意のカラーを付けられるものの、事前の反転モデルの作成に工数がかかり、更に描画対象のモデルの増加により処理負荷が高いという問題がある。また、独立したモデルの周辺にしか輪郭線が描画できないことから、例えば、モデル表面の急な起伏のあるような部分に輪郭線を描画することはできず、輪郭線が描画できる場所に対する制限が多くあるという問題がある。
【００１０】
一方、ポストエフェクト処理による輪郭線の描画は、モデルの増加を来すものではないため、処理負荷が小さいという利点がある。しかし、各ピクセルのカラーの違いに着目して認識された境界に予め設定されたカラーの輪郭線を描画するため、原則として単色の輪郭線しか描画できないという問題がある。この点、昨今ではモデルに応じて異なるカラーの輪郭線を付すことが要望される傾向にあるが、それに充分に対応することができない。また、周囲（上下左右）のピクセルに関係なくそのまま輪郭線色を設定すると、輪郭線が２重の色になってしまうという問題がある。
【００１１】
更に、各ピクセルのカラーの違いに着目しているため、カラーのほぼ同じモデルが重なった部分や、モデル内の急な起伏や凹凸のある部分（カラーはほぼ同じ）には輪郭線が描画できないという問題もあった。
【００１２】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、処理負荷の小さいポストエフェクト処理を基本としつつ、輪郭線が必要とされる部分に任意のカラーの輪郭線を描画することのできる画像処理装置、画像処理方法および画像処理プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置であって、第１のワークバッファに元画像を描画し、第２のワークバッファにモデル毎に設定されたマテリアルＩＤをカラー情報とみなして描画し、第３のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第４のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第５のワークバッファにモデルの頂点毎に設定された輪郭線カラーＩＤをカラー情報とみなして描画する第１の描画手段と、フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じで、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第１のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第２の描画手段と、フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じでないか、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第５のワークバッファにおける輪郭線カラーＩＤのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第３の描画手段とを備える画像処理装置を要旨としている。
【００１４】
また、請求項２に記載されるように、請求項１に記載の画像処理装置において、前記第３の描画手段は、前記一のピクセル位置の特定として、前記第４のワークバッファにおける現在ピクセル位置の少なくとも上下左右のピクセル位置のデプス値の中からデプス値が最小となるピクセル位置を特定するようにすることができる。
【００１５】
また、請求項３に記載されるように、請求項１に記載の画像処理装置において、前記輪郭線カラーＩＤは、輪郭線カラーを決定する優先度の高い順に昇順もしくは降順に値を設定してあり、前記第３の描画手段は、前記一のピクセル位置の特定として、前記第５のワークバッファにおける現在ピクセル位置の少なくとも上下左右のピクセル位置の輪郭線カラーＩＤの中から輪郭線カラーＩＤの値に基づいて最も優先度の高いピクセル位置を特定するようにすることができる。
【００１６】
また、請求項４に記載されるように、請求項１乃至３のいずれか一項に記載の画像処理装置において、前記第１の描画手段は、更に、第６のワークバッファにモデルの頂点毎に設定された輪郭線強度をカラー情報とみなして描画し、前記第３の描画手段は、特定された一のピクセル位置の前記第５のワークバッファにおける輪郭線カラーＩＤを前記第１のワークバッファのカラー情報と前記第６のワークバッファの輪郭線強度で線形補間したカラー情報を前記フレームバッファの現在ピクセル位置に描画するようにすることができる。
【００１７】
また、請求項５に記載されるように、仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置の処理方法であって、第１のワークバッファに元画像を描画し、第２のワークバッファにモデル毎に設定されたマテリアルＩＤをカラー情報とみなして描画し、第３のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第４のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第５のワークバッファにモデルの頂点毎に設定された輪郭線カラーＩＤをカラー情報とみなして描画する第１の描画工程と、フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じで、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第１のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第２の描画工程と、フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じでないか、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第５のワークバッファにおける輪郭線カラーＩＤのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第３の描画工程とを備える画像処理方法として構成することができる。
【００１８】
また、請求項６に記載されるように、仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置を構成するコンピュータを、第１のワークバッファに元画像を描画し、第２のワークバッファにモデル毎に設定されたマテリアルＩＤをカラー情報とみなして描画し、第３のワークバッファにモデルの頂点毎に設定された法線値をカラー情報とみなして描画し、第４のワークバッファに視点から見たデプス値をカラー情報とみなして描画し、第５のワークバッファにモデルの頂点毎に設定された輪郭線カラーＩＤをカラー情報とみなして描画する第１の描画手段、フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じで、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下で、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下である場合に、前記第１のワークバッファにおける現在ピクセル位置のカラー情報をフレームバッファの現在ピクセル位置に描画する第２の描画手段、フレームバッファの全ピクセルにつき、前記第２のワークバッファにおける現在ピクセル位置のマテリアルＩＤと少なくとも上下左右のピクセル位置のマテリアルＩＤが同じでないか、前記第３のワークバッファにおける現在ピクセル位置の法線値と少なくとも上下左右のピクセル位置の法線値の距離が所定の閾値以下でないか、前記第４のワークバッファにおける現在ピクセル位置のデプス値と少なくとも上下左右のピクセル位置のデプス値の距離が所定の閾値以下でないかのいずれかである場合に、現在ピクセル位置の少なくとも上下左右のピクセル位置の中から一のピクセル位置を特定し、当該一のピクセル位置の前記第５のワークバッファにおける輪郭線カラーＩＤのカラー情報を前記フレームバッファの現在ピクセル位置に描画する第３の描画手段として機能させる画像処理プログラムとして構成することができる。
【発明の効果】
【００１９】
本発明の画像処理装置、画像処理方法および画像処理プログラムにあっては、処理負荷の小さいポストエフェクト処理を基本としつつ、輪郭線が必要とされる部分に任意のカラーの輪郭線を描画することができる。
【図面の簡単な説明】
【００２０】
【図１】従来の反転モデル描画処理による輪郭線の描画の例を示す図である。
【図２】従来のポストエフェクト処理による輪郭線の描画の例を示す図である。
【図３】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図４】輪郭線カラーテーブルのデータ構造例を示す図である。
【図５】実施形態の描画処理の例を示すフローチャートである。
【図６】元画像の例を示す図である。
【図７】実施形態におけるピクセル毎の処理例を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の好適な実施形態につき説明する。
【００２２】
＜構成＞
図３は本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【００２３】
図３において、画像処理装置は、ゲームアプリケーション等の３Ｄ（3 Dimension）オブジェクトの描画命令を含む３Ｄアプリケーション２と、この３Ｄアプリケーション２から描画命令等を受け取るＯｐｅｎＧＬ、Ｄｉｒｅｃｔ３Ｄ等の３Ｄ−ＡＰＩ（Application Program Interface）３と、描画処理を実行するＧＰＵ（Graphics Processing Unit）４とを備えている。
【００２４】
ＧＰＵ４は、３Ｄ−ＡＰＩ３からＧＰＵコマンドおよびデータストリームを受け付けるＧＰＵフロントエンド部４１と、このＧＰＵフロントエンド部４１から３Ｄ頂点データを受け取って２Ｄスクリーン空間に投影した座標変換（行列の転置）等を行うプログラマブル頂点プロセッサ（ＶＳ：Vertex Processor）４２と、ＧＰＵフロントエンド部４１から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ４２で座標変換された頂点データとを組み立てる基本アセンブリ部４３とを備えている。プログラマブル頂点プロセッサ４２および基本アセンブリ部４３の部分は、バーテックスシェーダと呼ばれている。
【００２５】
また、ＧＰＵ４は、基本アセンブリ部４３で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ／補間部４４と、このラスタライズ／補間部４４からラスタライズ済のピクセル（フラグメント）データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ（ＰＳ：Pixel Processor）４５と、ラスタライズ／補間部４４から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ４５から与えられるテクスチャマッピング済のデータからラスタ演算（ピクセルデータの画面上での配置）を行うラスタ演算部４６とを備えている。ラスタライズ／補間部４４、プログラマブルピクセルプロセッサ４５およびラスタ演算部４６の部分は、ピクセルシェーダと呼ばれている。
【００２６】
また、ＧＰＵ４は、ラスタ演算部４６により描画内容が書込・更新されるとともに、ＧＰＵ４内の各部から参照可能なワークバッファ４７１〜４７６と、ラスタ演算部４６により描画内容が書込・更新されるフレームバッファ４８とを備えている。ワークバッファ４７１〜４７６は、ポストエフェクト処理のための途中データを保持するために用いられる。フレームバッファ４８に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。
【００２７】
また、処理に必要なデータがデータ保持部５に保持されている。主なデータとしては、モデルデータと、モデル姿勢と、視点・画角と、法線距離閾値と、デプス距離閾値と、輪郭線カラーテーブルとがある。モデルデータには、マテリアルＩＤと、頂点座標と、法線と、テクスチャと、頂点カラーと、輪郭線カラーＩＤと、輪郭線強度とが含まれる。
【００２８】
モデルデータは、仮想３次元空間内のモデルの標準姿勢における形態を表現したポリゴンデータである。マテリアルＩＤは、モデルの種別（例えば、「肌」「髪」等）を区別する識別子である。頂点座標は、モデルのポリゴンの頂点の座標（Ｘ座標、Ｙ座標、Ｚ座標）である。法線は、各頂点の面する方向を示すベクトル値である。テクスチャは、ポリゴンの面に貼り付けられる画像データである。頂点カラーは、各頂点のカラーを示すＲＧＢ（Red Green Blue）等の値である。輪郭線カラーＩＤは、輪郭線に用いられるカラーを特定する識別子であり、各頂点に対応付けられる。輪郭線強度は、輪郭線の表現の強さを制御するための値であり、各頂点に対応付けられる。
【００２９】
モデル姿勢は、各モデルの仮想３次元空間内における位置および回転角度を示す値である。視点・画角は、仮想３次元空間内のモデルを投影面上の２次元画像として描画する際の仮想カメラの３次元位置および視野角である。法線距離閾値は、ポストエフェクト処理において、隣接するピクセル間の法線値の違いにより輪郭線を描画するか否かの判定に用いられる値である。デプス距離閾値は、ポストエフェクト処理において、隣接するピクセル間のデプス値（視点からの奥行きを示す値であり、小さい値であるほど視点に近い）の違いにより輪郭線を描画するか否かの判定に用いられる値である。輪郭線カラーテーブルは、図４に示すように、輪郭線カラーＩＤとＲＧＢ等のカラー情報とを対応付けるデータテーブルである。
【００３０】
なお、画像処理装置１にＧＰＵ４を用いた構成について説明したが、汎用的なコンピュータのハードウェア上でソフトウェア的にグラフィックエンジンを実現した場合にも本発明を適用できることは言うまでもない。この場合、ＧＰＵ４の機能は３Ｄアプリケーション２や３Ｄ−ＡＰＩ３と同様にソフトウェア的に実現され、ワークバッファ４７１〜４７６やフレームバッファ４８はメモリ（ＲＡＭ）上に配置される。
【００３１】
＜動作＞
図５は上記の実施形態の描画処理の例を示すフローチャートである。
【００３２】
図５において、ＧＰＵ４は、ある画面フレームの描画処理を開始すると（ステップＳ１０１）、視点・画角に基づいて、２Ｄスクリーン空間に入る複数のモデルについて、投影面と同じサイズのワークバッファ４７１に元画像を描画する（ステップＳ１０２）。元画像の描画は、通常の３Ｄグラフィックスの描画と同じであり、モデルのポリゴンの各頂点をバーテックスシェーダ（プログラマブル頂点プロセッサ４２、基本アセンブリ部４３）により２Ｄスクリーン空間上の座標に変換し、ピクセルシェーダ（ラスタライズ／補間部４４、プログラマブルピクセルプロセッサ４５、ラスタ演算部４６）によりラスタライズ、補間、テクスチャマッピングおよびラスタ演算等を行って、ワークバッファ４７１上にピクセル毎にカラー情報を設定する。
【００３３】
次いで、ＧＰＵ４は、ワークバッファ４７２にマテリアルＩＤをカラー情報とみなして描画する（ステップＳ１０３）。すなわち、カラー情報を描画する代わりに、マテリアルＩＤを描画する。マテリアルＩＤは一つのモデルでは一つであるため、同じモデルの描画ピクセルのマテリアルＩＤは均一になる。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、マテリアルＩＤをカラー情報のデータフォーマットにエンコードして用いる。
【００３４】
次いで、ＧＰＵ４は、ワークバッファ４７３に法線値をカラー情報とみなして描画する（ステップＳ１０４）。すなわち、カラー情報を描画する代わりに、法線値を描画する。法線値は一つのモデルであっても表面の起伏に応じて変化するため、同じモデルの描画ピクセルであっても値が個々に異なるものとなるのが普通である。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、法線値をカラー情報のデータフォーマットにエンコードして用いる。
【００３５】
次いで、ＧＰＵ４は、ワークバッファ４７４にデプス値をカラー情報とみなして描画する（ステップＳ１０５）。すなわち、カラー情報を描画する代わりに、デプス値を描画する。デプス値は一つのモデルであっても表面の起伏や凹凸に応じて変化するため、同じモデルの描画ピクセルであっても値が個々に異なるものとなるのが普通である。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、デプス値をカラー情報のデータフォーマットにエンコードして用いる。
【００３６】
次いで、ＧＰＵ４は、ワークバッファ４７５に輪郭線カラーＩＤをカラー情報とみなして描画する（ステップＳ１０６）。すなわち、カラー情報を描画する代わりに、輪郭線カラーＩＤを描画する。輪郭線カラーＩＤは一つのモデルであっても頂点毎に設定されるものであるため、同じモデルの描画ピクセルであっても値が個々に異なるものとなるのが普通である。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、輪郭線カラーＩＤをカラー情報のデータフォーマットにエンコードして用いる。
【００３７】
次いで、ＧＰＵ４は、ワークバッファ４７６に輪郭線強度をカラー情報とみなして描画する（ステップＳ１０７）。すなわち、カラー情報を描画する代わりに、輪郭線強度を描画する。輪郭線強度は一つのモデルであっても頂点毎に設定されるものであるため、同じモデルの描画ピクセルであっても値が個々に異なるものとなるのが普通である。なお、カラー情報として使用できるデータフォーマットに制限がある場合には、輪郭線強度をカラー情報のデータフォーマットにエンコードして用いる。
【００３８】
なお、フローチャートではワークバッファ４７１〜４７６への描画を個別のステップとして記載したが、実際上は各モデルについての一連の描画処理の中でほぼ同時に行われるものであり（モデルデータから使用するデータと出力先のワークバッファが異なるのみ）、処理負荷の大幅な上昇にはつながらない。
【００３９】
次いで、ＧＰＵ４は、最終出力用のフレームバッファ４８内の全てのピクセルについて以下の処理を繰り返す（ステップＳ１０８）。なお、各処理の時点で着目するピクセルを現在ピクセルと呼ぶこととする。
【００４０】
先ず、ワークバッファ４７２における現在ピクセル位置のマテリアルＩＤと上下左右のピクセル位置のマテリアルＩＤが全て同じかどうか判断する（ステップＳ１０９）。ワークバッファ４７２からのマテリアルＩＤの参照にあたり、マテリアルＩＤがカラー情報にエンコードされている場合は、元のマテリアルＩＤにデコードしてから判断を行ってもよいし、カラー情報にエンコードされた状態で比較を行ってもよい。同じモデルの描画ピクセルであればマテリアルＩＤは同一となり、異なるモデルの境界部分ではマテリアルＩＤが異なることとなる。
【００４１】
マテリアルＩＤが同じであると判断した場合（ステップＳ１０９のＹｅｓ）、続いて、ワークバッファ４７３における現在ピクセル位置の法線値と上下左右のピクセル位置の法線値の距離（差）が法線距離閾値以下であるかどうか判断する（ステップＳ１１０）。ワークバッファ４７３からの法線値の参照にあたり、法線値がカラー情報にエンコードされている場合は、元の法線値にデコードしてから判断を行う。カラー情報にエンコードされた状態で法線距離が算出できるのであれば、デコードしなくてもよい。同じモデルの描画ピクセルであっても、表面の起伏により法線値は異なり、起伏が緩やかであれば隣接する法線値の差は小さくなり、起伏が急であれば隣接する法線値の差は大きくなる。
【００４２】
法線値の距離が法線距離閾値以下であると判断した場合（ステップＳ１１０のＹｅｓ）、続いて、ワークバッファ４７４における現在ピクセル位置のデプス値と上下左右のピクセル位置のデプス値の距離（差）がデプス閾値以下であるかどうか判断する（ステップＳ１１１）。ワークバッファ４７４からのデプス値の参照にあたり、デプス値がカラー情報にエンコードされている場合は、元のデプス値にデコードしてから判断を行う。カラー情報にエンコードされた状態でデプス値の距離が算出できるのであれば、デコードしなくてもよい。同じモデルの描画ピクセルであっても、表面の凹凸によりデプス値は異なり、凹凸が小さければ隣接するデプス値の差は小さくなり、凹凸が大きければ隣接するデプス値の差は大きくなる。
【００４３】
デプス値の距離がデプス閾値以下であると判断した場合（ステップＳ１１１のＹｅｓ）、ワークバッファ４７１における現在ピクセル位置のカラーをフレームバッファ４８の現在ピクセル位置に描画する（ステップＳ１１２）。すなわち、元画像のピクセルのカラーをそのまま出力し、輪郭線を描画しない。
【００４４】
一方、マテリアルＩＤが同じでないと判断した場合（ステップＳ１０９のＮｏ）、法線値の距離が法線距離閾値以下でないと判断した場合（ステップＳ１１０のＮｏ）、もしくは、デプス値の距離がデプス閾値以下でないと判断した場合（ステップＳ１１１のＮｏ）には、輪郭線を描画すべきピクセルであると判断し、以下の処理を行う。
【００４５】
先ず、ワークバッファ４７４における現在ピクセル位置の上下左右のデプス値の中から最小となるピクセル位置を特定するか、ワークバッファ４７５における現在ピクセル位置の上下左右の輪郭線カラーＩＤの中から最小（or最大）となるピクセル位置を特定する（ステップＳ１１３）。前者はデプス値の大小比較を行わなければならないが、後者は輪郭線カラーＩＤの単なる比較で済むため、処理を簡略化することができる。ただし、後者の場合は、予め輪郭線を決定すべきマテリアルＩＤの優先度（髪は顔よりも優先度が高い等）に応じて輪郭線カラーＩＤの値を設定しておくことが必要となる。
【００４６】
次いで、特定したピクセル位置のワークバッファ４７５の輪郭線カラーＩＤに対応するカラーを、現在ピクセル位置のワークバッファ４７１のカラーとワークバッファ４７６の輪郭線強度で線形補間したカラーをフレームバッファ４８の現在ピクセル位置に描画する（ステップＳ１１４）。輪郭線強度がゼロの場合はワークバッファ４７１の現在ピクセル位置のカラーとなり、輪郭線強度が最大の場合はワークバッファ４７５の特定したピクセル位置の輪郭線カラーＩＤに対応するカラーとなり、輪郭線強度の値に応じてその間のカラーに線形補間される。これにより、輪郭線強度が大きいほど輪郭線カラーＩＤに対応するカラーに近づき、濃くなることで、輪郭線の見た目の太さ（ピクセル的な太さは変わらない）が大きくなる。なお、輪郭線強度を用いずに、特定したピクセル位置のワークバッファ４７５の輪郭線カラーＩＤに対応するカラーを現在ピクセル位置に直接に描画するようにしてもよい。この場合、輪郭線強度の描画（ステップＳ１０７）は不要となる。
【００４７】
ここで、現在ピクセル位置の上下左右のデプス値あるいは輪郭線カラーＩＤの中から最小（or最大）となるピクセル位置を特定し、その特定したピクセル位置の輪郭線カラーＩＤに対応するカラーを輪郭線のカラーに用いるのは、次の理由による。すなわち、単純に現在ピクセル位置の輪郭線カラーＩＤに対応するカラーを輪郭線のカラーに用いると、境界両側に輪郭線を描画するという性質上、輪郭線が２色に分かれてしまう不都合がある。そのため、現在ピクセル位置の上下左右のピクセル位置の中から優先度の最も高いピクセル位置を決めるべく、デプス値が最も小さい位置（最も手前にある位置）か、予め優先度を考慮して設定された輪郭線カラーＩＤからピクセル位置を特定し、輪郭線が２色に分かれてしまわないようにしている。
【００４８】
次いで、全てのピクセルについて処理しかたどうか判断し（ステップＳ１１５）、まだである場合（ステップＳ１１５のＮｏ）は繰り返し開始点（ステップＳ１０８）に戻り、全てのピクセルについて処理した場合（ステップＳ１１５のＹｅｓ）は描画処理を終了する（ステップＳ１１６）。
【００４９】
なお、図５ではマテリアルＩＤ、法線値、デプス値の順に判断しているが（ステップＳ１０９〜Ｓ１１１）、判断の順番を変えてもよい。
【００５０】
また、現在ピクセル位置の上下左右のピクセル位置についてのみ判断しているが、上下左右に限らず、境界領域において周辺ピクセルの十分な情報が得られれば、同様の判定は可能である。
【００５１】
図６はワークバッファ４７１に描画される元画像の例を示す図であり、領域Ａ１を背景のモデルの部分、領域Ａ２をキャラクタの胴体のモデルの部分、領域Ａ３をキャラクタの顔のモデルの部分、領域Ａ４をキャラクタが被った帽子のモデルの部分としている。
【００５２】
図７は実施形態におけるピクセル毎の処理例を示す図であり、図７（ａ）は図６における破線の丸で囲った部分を拡大した図である。一つのマスは一つのピクセルを表している。
【００５３】
図７（ａ）において、左上のピクセルから順次に各ピクセルに着目し、図５に示したステップＳ１０８〜Ｓ１１５の処理を行う場合、ステップＳ１０９、Ｓ１１０、Ｓ１１１を全て「Ｙｅｓ」で通貨するのは図７（ｂ）の白抜きのマスとなり、濃い網掛けを付したＢの領域が輪郭線を付すべきピクセルと判断される。
【００５４】
また、輪郭線を付すべきと判断されたピクセルでは、上下左右のデプス値あるいは輪郭線カラーＩＤの中から最小（or最大）となるピクセル位置が特定され、ここでは帽子の領域Ａ４、顔の領域Ａ３、背景の領域Ａ１の順に優先度が高くなるため、領域Ａ１と領域Ａ４の接する境界と領域Ａ１と領域Ａ３と領域Ａ４の接する境界では、図７（ｃ）に示すように、領域Ａ４の輪郭線カラーＩＤに対応するカラーによる輪郭線Ｂ１となり、領域Ａ１と領域Ａ３の接する境界では、領域Ａ３の輪郭線カラーＩＤに対応するカラーによる輪郭線Ｂ２となる。
【００５５】
＜総括＞
以上説明したように、本実施形態によれば、次のようなメリットがある。
（１）ポストエフェクト処理を基本としているため、事前の工数も少なく、処理負荷も小さい。
（２）各ピクセルのマテリアルＩＤ、法線値およびデプス値に着目して境界を認識し、上下左右のピクセル位置の輪郭線カラーＩＤの中から最も優先度の高いものに対応するカラーを輪郭線のカラーに用いているため、任意のカラーを輪郭線に用いることができるとともに、輪郭線が２色に分かれてしまう不都合もない。
（３）各ピクセルのマテリアルＩＤ、法線値およびデプス値に着目して境界を認識するため、カラーのほぼ同じモデルが重なった部分や、モデル内の急な起伏や凹凸のある部分にも輪郭線を描画することができる。より詳しくは、次のような部分に輪郭線を描画することができる。
・マテリアルＩＤに基づいて境界を判定することで、異なる物体が連続でなめらかに接している部分（法線値とデプス値がそれぞれ一致）に輪郭線を描画することができる。例えば、厚みのない靴下と脚の境界の部分が該当する。
・デプス値に基づいて境界を判定することで、画面に対して同じ面の向きであって同じ物体だが３次元的には離れている部分（マテリアルＩＤと法線値がそれぞれ一致）に輪郭線を描画することができる。例えば、画面に正対するあごと首の間の部分が該当する。
・法線値に基づいて境界を判定することで、同じ物体で連続しているが、起伏や急な凹凸などにより、人の視覚によって稜線だと判断する部分（マテリアルＩＤとデプス値がそれぞれ一致）に輪郭線を描画することができる。例えば、折り目や服のシワの部分が該当する。
（４）上下左右のピクセルについて判定しているため、上右もしくは下右等で判定する場合に比して、次のようなメリットがある。すなわち、上および右で判定した場合は、境界領域の下側および左側の１ピクセルに輪郭線が偏って描画されるが、上下左右で判定した場合は、境界の上側、下側、左側および右側のそれぞれのピクセルに描画されることにより、幅２ピクセルの輪郭線が描画され、境界に対して中央に輪郭線が引かれているように見え、見栄えが向上する。また、近傍の中で、最小（or最大）の輪郭線カラーＩＤまたは最小のデプス値を別途計算する場合は、上右のみの判定でもカラーを付けることには問題ないが、上下左右で判定すると、判定時に得た情報が、隣接ピクセルにおいてもそのまま近傍の値として再利用できるため、処理負荷が軽減される。つまり、上右より上下左右を参照する方が、品質が向上し、処理負荷も軽減されるというメリットがある。
（５）モデルの各頂点に設定した輪郭線強度を用いて元画像のカラーと輪郭線カラーＩＤに対応するカラーとの間で線形補間することで、輪郭線の見た目の太さを微妙に変化させることができる。
【００５６】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００５７】
１                  画像処理装置
２                  ３Ｄアプリケーション
３                  ３Ｄ−ＡＰＩ
４                  ＧＰＵ
４１                ＧＰＵフロントエンド部
４２                プログラマブル頂点プロセッサ
４３                基本アセンブリ部
４４                ラスタライズ／補間部
４５                プログラマブルピクセルプロセッサ
４６                ラスタ演算部
４７１〜４７６      ワークバッファ
４８                フレームバッファ
５                  データ保持部
【図１】
2010238110.tif 000003
【図２】
2010238110.tif 000004
【図３】
2010238110.tif 000005
【図４】
2010238110.tif 000006
【図５】
2010238110.tif 000007
【図６】
2010238110.tif 000008
【図７】
2010238110.tif 000009